首页 > 代码库 > hadoop2.2.0安装笔记

hadoop2.2.0安装笔记

NameNode 192.168.1.122  hadoop/hadoop


VM  192.168.1.123 

DataNode1 192.168.1.124 datanode1/datanode1 hadoop/hadoop

DataNode2 192.168.1.125 datanode2/datanode2 hadoop/hadoop


一、在所有机器上安装openssh-server

sudo apt-get install openssh-server

如果没有找到openssh-server,请先执行sudo apt-get update更新

安装完openssh-server之后,就可以使用ssh和xftp进行远程登录与上传文件了

二、增加hadoop相关用户与用户组

sudo addgroup hadoop
sudo adduser -ingroup hadoop hadoop

给hadoop用户添加权限,打开/etc/sudoers文件

sudo vim /etc/sudoers

增加

hadoop ALL=(ALL:ALL) ALL

三、配置网络映射

vim /etc/hosts

加入

192.168.1.122 NameNode1
192.168.1.124 DataNode1
192.168.1.125 DataNode2

重启网络,

sudo /etc/init.d/networking restart


相应的在各个节点中都加入这个映射配置

四、安装JDK环境

下载jdk-7u60-linux-i586.tar.gz

解压,并把解压后的文件夹移动到/use/java下 

tar -xzf jdk-7-linux-i586.tar.gz

mv JDK文夹 目标地址

打开/etc/profile增加如下脚本

export JAVA_HOME=/usr/java/jdk1.7.0_60
export JRE_HOME=/usr/java/jdk1.7.0_60/jre
export HADOOP_HOME=/home/hadoop/hadoop-2.2.0
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/lib/native:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

使新的配置立即生效 source /etc/profile

如果出现找不到目录之内的,可以先查看路径是否正确,如果是62位系统,而当前安装的是32位的JDK,需安装32位的运行库

sudo apt-get install ia32-libs

五、配置ssh免验证登录

切换到hadoop用户

进入/home/hadoop/.ssh目录(如果没有,新建之)

ssh-keygen -t rsa

之后一路回车(产生秘钥)

在所有的NodeData中也执行ssh-keygen -t rsa,把生成的.pub文件拷到NameNode1上

scp  ~/.ssh/id_rsa.pub hadoop@namenode1:~/.ssh/datanode1.pub

在NameNode服务器把所有服务器的公钥加入到用于认证的公钥文件:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/datanode1.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/datanode2.pub >> ~/.ssh/authorized_keys

对authorized_keys进行授权

chmod 600 ~/.ssh/authorized_keys

再将NameNode的授权文件authorized_keys复制到到其他的机器上:

scp authorized_keys hadoop@datanode1:~/.ssh/

注意:此处需要设置.ssh目录为700权限 .ssh/下所有文件为600权限

六、安装hadoop

下载hadoop2.2.0 并解压到/home/hadoop/用户的目录下

tar -xzf hadoop-2.2.0.tar.gz

进入hadoop2.2.0目录,新建tmp目录 mkdir tmp

七、配置hadoop

进入namenode1的hadoop2.2.0目录,修改hadoop-env.sh与yarn-env.sh文件

cd /home/hadoop/hadoop-2.2.0/etc/hadoop

vim hadoop-env.sh,修改

export JAVA_HOME = ${JAVA_HOME}


export JAVA_HOME=/usr/java/jdk1.7.0_60

在同一路径下找 core-site.xml,修改它在 < configuration >中添加:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode1:9000/</value>
        <description></description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop-2.2.0/tmp</value>
        <description>A base for other temporary directories.</description>
    </property>
</configuration>

同一路径下修改 mapred-site.xml因为缺省是没有这个文件的,要用模板文件造一个,命令为:

mv mapred-site.xml.template mapred-site.xml 

vim mapred-site.xml加入

<configuration>
 
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <final>true</final>
    </property>
</configuration>

~                        

同一路径下修改 hdfs-site.xml, 在 < configuration >中添加:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hadoop-2.2.0/dfs/name</value>
        <final>true</final>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hadoop-2.2.0/dfs/data</value>
    </property>
</configuration>


配置文件yarn-site.xml内容

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>namenode1</value>
    </property>
</configuration>


在主节点namenode1上将上面配置好的程序文件,复制分发到各个从节点上:

scp -r /home/hadoop/hadoop-2.2.0 hadoop@datanode1:/home/hadoop/
scp -r /home/hadoop/hadoop-2.2.0 hadoop@datanode2:/home/hadoop/


八、启动HDFS集群


经过上面配置以后,可以启动HDFS集群。

为了保证集群启动过程中不会出现问题,需要手动关闭每个节点上的防火墙,执行如下命令:

sudo service iptables stop

或者永久关闭防火墙:

sudo chkconfig iptables off
sudo chkconfig ip6tables off


在主节点namenode1上,首先进行文件系统格式化操作,执行如下命令:

hadoop namenode -format

然后,可以启动HDFS集群,执行如下命令:

start-all.sh

在node1(node2)上面运行jps,如果有DataNode、NodeManager二个进程,说明node1(node2)安装好了。