一、本次hadoop集群搭建是在四台linux主机上搭建。分别是
192.168.226.17 Master
192.168.226.18 Slave1
192.168.226.19 Slave2
192.168.226.20 Slave3
二、准备工作,首先在四台linux主机上建立hadood运行帐号
groupadd hadoop
useradd -s /bin/bash-d /home/hadoop -m hadoop -g hadoop
passwd hadoop
这里解释一下3条命令的含义:
(1) 建立一个hadoop的组
(2) 添加一个hadoop的用户,并且在home下面创建hadoop的用户目录,并添加到hadoop组里
(3) 为hadoop设置密码
三、配置ssh免密码
(1) ssh-keygen-t rsa 生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹,每台服务器都要执行该命令。
(2) cd .ssh 进入生成的.ssh文件夹,该文件夹下会有id_rsa和id_rsa.pub两个文件。
(3) cpid_rsa.pub authorized_keys
(4) scp authorized_keyshadoop@192.168.226.18:/home/had
oop/.ssh 然后将authorized_keys拷贝到其他主机上。
(5) catid_rsa.pub >> authorized_keys 将公钥添加到authorized_keys中,然后重复第五步,最终添加所有主机上的公钥即可实现免密。
注意: 当按照以上步骤免密不成功。是因为未将秘钥添加成功, 执行 :ssh-add ~/.ssh/id_rsa
四、安装jdk。
本hadoop安装可使用jdk为1.7
(1) 下载“jdk-7u79-linux-x64.gz”,放到/home/java目录下
(2) 解压,输入命令,tar -zxvf jdk-7u79-linux-x64.gz
(3) 编辑/etc/profile
export JAVA_HOME=/home/java/jdk1.7.0_79
exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME
/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
(4) 使配置生效,输入命令,source /etc/profile
(5) 输入命令,java -version,完成
五、安装Hadoop2.7.2,只在Master服务器解压
(1) 下载“hadoop-2.7.2.tar.gz”,放到/home/hadoop目录下
(2) 解压,输入命令,tar -xzvf hadoop-2.7.2.tar.gz
(3) 在/home/hadoop目录下创建数据存放的文件夹,tmp、hdfs、hdfs/data、hdfs/name
六、配置hadoop相关文件属性
(1) 配置/home/hadoop/hadoop-2.7.2/etc/hadoop下的core-site.xml , 内容如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.226.17:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
</configuration>
(2) 配置/home/hadoop/hadoop-2.7.2/etc/hadoop下的hdfs-site.xml , 内容如下:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.226.17:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
(3) 配置/home/hadoop/hadoop-2.7.2/etc/hadoop下的mapred-site.xml (如果这个文件不存在,就将mapred-site.xml.template拷贝重命名为mapred-site.xml) , 内容如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.226.17:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.226.17:19888</value>
</property>
</configuration>
(4) 配置/home/hadoop/hadoop-2.7.2/etc/hadoop下的yarn-site.xml , 内容如下:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.226.17:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.226.17:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.226.17:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.226.17:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.226.17:8088</value>
</property>
</configuration>
(7) 配置/home/hadoop/hadoop-2.7.2/etc/hadoop下的hadoop-env.sh yarn-env.sh中的JAVA_HOME, 否者启动会可能缺失jdk导致启动失败。 内容如下:
export JAVA_HOME=/home/java/jdk1.7.0_79
(8) 配置/home/hadoop/hadoop-2.7.2/etc/hadoop下的slaves , 删除文件中已有的 localhost, 增加节点, 内容如下:
192.168.226.18
192.168.226.19
192.168.226.20
七、上面工作做完之后,在master上已经将hadoop配置完毕。然后将hadoop-2.7.2文件夹发到各个节点上,命令如下:
scp -r /home/hadoop/hadoop-2.7.2hadoop@192.168.226.18:
/home/hadoop/
scp -r /home/hadoop/hadoop-2.7.2hadoop@192.168.226.19:
/home/hadoop/
scp -r /home/hadoop/hadoop-2.7.2hadoop@192.168.226.20:
/home/hadoop/
注意:发送完毕之后,注意查看各节点中是否存在hadoop-2.7.2
八、在master服务器启动hadoop,从节点会自动启动,进入/home/hadoop/hadoop-2.7.2 做以下操作:
(1) 格式化(格式化)HDFS,输入命令:/bin/hdfs namenode -format
(2) 启动hadoop集群:sbin/start-all.sh
(3) 启动完毕之后查看进程是否如下:
master中执行jps命令:
slave1 中执行jps命令:
slave2 中执行jps命令:
slave3 中执行jps命令:
注意:当需要hadoop集群关闭时执行如下指令:
sbin/stop-all.sh