Hadoop 2.2.0 (单机)安装,配置全过程

时间:2022-09-24 21:33:09

(本次安装是在64位 Cent OS的环境下)

1. 创建用户

useradd -d /home/user1 -s /bin/bash user1

2. 安装JDK

2.1 下载JDK版本

注明: 在下载前先检查本机的信息,再下载正确的版本,我之前就犯了一次错误。具体请参见:点击打开链接

 (该链接为64位 JDK7.45版本)

wget http://download.oracle.com/otn-pub/java/jdk/7u45-b18/jdk-7u45-linux-x64.tar.gz?AuthParam=1389323597_367ccdb7ffa961c61207eb2f36f697a9 

tar -xvf jdk-7u45-linux-x64.tar.gz?AuthParam=1389323597_367ccdb7ffa961c61207eb2f36f697a9

2.2 配置环境变量

以下操作需要用root用户操作

vi /etc/profile


在profile最后加上

JAVA_HOME=/home/shawn/jdk1.7.0_45
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME
export CLASSPATH
export PATH


保存退出后

source /etc/profile


检查安装是否成功

java -version


显示:

Hadoop 2.2.0 (单机)安装,配置全过程

表示安装成功。


3. 安装Hadoop

我选择的是Hadoop当前最新稳定版本2.2.0

如果机器是64位的,那就稍微麻烦一点,需要先进行手动编译,如果是32位的,略过3.1,直接下载安装包,然后,进行3.2的解压就可以了。

wget http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz
tar -xvf hadoop-2.2.0.tar.gz

3.1 编译Hadoop

先从官网下载hadoop源码,解压

wget http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz

tar -xvf hadoop-2.2.0-src.tar.gz
解压后可以看到pom.xml文件,因此用maven打包即可。

如果本机没有安装maven,去网上搜一下吧。:—)

当然如果有maven,也不要着急打包,否则你会很郁闷的中途失败。

hadoop的编译需要依赖以下几个包,用yum安装好就可以了

3.1.1 安装protoc2.5.0

先安装几个依赖包

yum install gcc  
yum intall gcc-c++
yum install make

然后安装protocol2.5.0

wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
tar protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure

执行完了以后分别执行

make
make check
make install

最后设置以下环境变量

我是在/etc/profile中添加

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

保存退出后

source /etc/profile


protoc -version
检查以下安装是否成功

3.1.2 其他

之后,还有另外的三个依赖包

yum install cmake  
yum install openssl-devel
yum install ncurses-devel

3.1.3 修改bug

依赖包,已经安装成功,还是不要先记着编译,经验之谈,先修改编译过程中的一个bug

这是hadoop-auth项目下的一个编译错误。根据你之前的下载地址进入到hadoop-auth项目目录

cd ~/softwares/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth
vi pom.xml

<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<scope>test</scope>
</dependency>

之前添加

<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>

3.1.4 编译

做好以上准备工作以后,就可以开始编译了。当然如果编译的过程中还有其他错误,把错误信息帖出来google一下,应该就可以有解决办法了

mvn clean package -Pdist,native -DskipTests -Dtar  

编译的过程根据机器以及网络环境的情况,我这里用了20分钟。

当显示:

Hadoop 2.2.0 (单机)安装,配置全过程

恭喜你,已经编译成功了

我们可以在../hadoop-dist/target 目录下看到我们最终的项目文件

Hadoop 2.2.0 (单机)安装,配置全过程


3.2 解压Hadoop

 (解压(我是安装在用户家目录下))

将hadoop-2.2.0.tar.gz 解压到你的安装目录下就可以。

4. 配置Hadoop

对于Hadoop的配置来说,这个完全根据实际情况来定,单机,集群的都有所不同,我这里只是示范一下单机版的。

基本是一些必须要配的基础参数。

4.1  hadoop-env.sh

JAVA_HOME=/home/user1/jdk1.7.0_45


4.2 yarn-env.sh

JAVA_HOME=/home/user1/jdk1.7.0_45


4.3 core-site.xml

添加以下配置:(Hadoop 2.2.0 的配置项较之前版本有比较大的区别,可以在官网找到其默认配置。官网:Hadoop官网)

<configuration>
<property>
<name>fs.defaultFS</name>

<value>hdfs://localhost:9000</value>

</property>
<property>
<name>hadoop.tmp.dir</name>
<value>~/temp</value>
</property>

</configuration>



4.4 hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/shawn/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/shawn/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>


5 启动Hadoop

5.1 配置SSH免密码登录

 
cd ~/.ssh

ssh-keygen -t rsa -P ""

cat id_rsa.pub >> authorized_keys

chmod 700 authorized_keys

 

在配置SSH免密码登录的时候,遇到一些很郁闷的问题,总是不能成功,在浏览了/var/log/sercurity 的日志以后,发现,目录的权限有问题。

在试了很多次以后,得出:

chmod -R 710 .ssh

cd .ssh

ls -al

chmod -R 644 authorized_keys

chmod -R 600 id_rsa

chmod -R 644 id_rsa.pub

chmod -R 644 known_hosts

在这样的权限分配下,SSH可以实现免密码登录,否则会有permission too open的问题。我的安装环境是64 CentOS,不知道其他的系统下会不会有这个问题。

5.1 对hdfs进行格式化

cd ~/hadoop2.2.0/bin

./hdfs namenode -format


5.2 启动所有服务

cd ~/hadoop2.2.0/sbin

5.2.1 启动所有服务

./start-all.sh

start-all 是用来启动hadoop下的所有服务的,这样做有风险,就是有些服务项我们并没有配置,但是脚本也会根据默认配置启动,因此会报错。

此处也可以根据官网说明,来根据需要启动所需要的服务,在启动前可以在环境变量中设置$HADOOP_CONF_DIR

这是是hadoop的配置目录,在../hadoop2.2.0/etc/hadoop下

5.2.1 启动namenode

$ ./hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs start namenode


显示:

Hadoop 2.2.0 (单机)安装,配置全过程

可以查看以下输出文件,检查运行是否成功,

如果没有Error的提示,说明已经成功启动,log信息如下

Hadoop 2.2.0 (单机)安装,配置全过程

5.2.2 启动datanode

$ ./hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs start datanode

5.2.3 启动Resource Manager

$./yarn-daemon.sh --config $HADOOP_CONF_DIR start resourcemanager

5.2.4 启动Node Manager

$ ./yarn-daemon.sh --config $HADOOP_CONF_DIR start nodemanager

其他的我不需要了,至此,我们的hadoop就算安装成功了。

5.2.5 验证

对于Hadoop安装的验证有两种方式,第一个是看相应的进程是否已经启动,第二个是通过查看控制台数据

5.2.5.1 JPS

$ jps
当显示

Hadoop 2.2.0 (单机)安装,配置全过程

时,说明我们已经启动了NameNode,ResourceManager,NodeManager,DataNode

5.2.5.2 控制台

我们还可以通过,控制台进行验证,在浏览器上输入以下地址,检查是否启动成功

NameNode

http://ipaddress:50070/

ResourceManager

http://ipaddress:8088

NodeManager

http://ipaddress:19888