三多
技术领域的难题往往代表着经典 而我只是一个伪技术宅!!!

实验概述:

本实验手册是基于Hadoop2.6版本进行分布式配置,Linux系统是基于CentOS6.5 64位的版本。在此设置一个主节点和两个从节点。
准备3台虚拟机,分别为:
主机名
IP地址
master
192.168.80.10
slave1
192.168.80.11
slave2
192.168.80.12

注意:这里的ip根据实际情况进行配置,虚拟机中网络使用nat,虚拟机中网络配置需要注意,网关和DNS需要配置成相同的。

实验步骤:

  1. 修改主机名称,把三个节点分别修改下面的文件,修改主机名为masterslave1slave2root用户操作),重启生效
vi /etc/sysconfig/network
注意:如果在装系统的时候已经设置了主机名,则无需执行此操作
  1. 把三个节点的防火墙关闭,在三个节点分别执行(root用户操作)
/etc/init.d/iptables stop
1
注意:如果已经关闭了防火墙,则此步骤无需执行
这里的防火墙是临时关闭,下次启动会拦截相关数据,建议关闭并且禁止自启动,使用 $chkconfig iptables off  进行禁用,如果Linux基础较好,这里可以直接在防火墙中添加规则即可
  1. 在三个节点修改配置hosts文件,在hosts文件中分别配置三个节点的主机名 ip地址映射(root用户操作)
2
  1. masterslave之间配置SSH互信(hadoop用户操作)
分别在masterslave1masterslave2mastermaster之间配置互信
a) 分别在masterslave1slave2执行下面的命令生成公钥和私钥
ssh-keygen
然后回车,然后会提示输入内容,什么都不用写,一路回车
15
hadoop用户根目录下,有一个.ssh目录
id_rsa         私钥
id_rsa.pub                   公钥
known_hosts     通过SSH链接到本主机,都会在这里有记录
b) master输入下面的命令,和masterslave1slave2创建互信
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
16
注意:复制的过程中需要输入信任主机的密码
c) slave1slave2执行下面的命令,创建和master的互信
ssh-copy-id master
16
注意:复制的过程中需要输入信任主机的密码
  1. JDKHadoop安装包(资料包目录下的文件)上传到master节点系统(hadoop用户的根目录)
  1. 在三个节点下面配置jdk。在hadoop用户的根目录,Jdk解压,(hadoop用户操作)
tar -zxvf jdk-8u65-linux-x64.tar.gz
解压完成后,在hadoop用户的根目录有一个jdk1.8.0_65目录
1
  1. 在三个节点配置环境变量,需要修改/etc/profile文件(root用户操作)
切到root用户,输入su命令
su
vi /etc/profile
         进去编辑器后,输入i,进入vi编辑器的插入模式
         profile文件最后添加
JAVA_HOME=/home/hadoop/jdk1.8.0_65
export PATH=$PATH:$JAVA_HOME/bin
         编辑完成后,按下esc退出插入模式
         输入:,这时在左下角有一个冒号的标识
                   q   退出不保存
                   wq  保存退出
                   q!   强制退出
  1. 在三个节点把修改的环境变量生效(hadoop用户操作),jdk配置完成
source /etc/profile
1-1
  1. 下面配置hadoop,在hadoop用户的根目录,解压(hadoop用户操作)
tar -zxvf hadoop-2.6.0.tar.gz
         解压完成在hadoop用户的根目录下有一个hadoop-2.6.0目录
2
  1. 修改配置文件hadoop-2.6.0/etc/hadoop/slaves,输入下面内容,每一行是一个从节点主机名称(hadoop用户操作)
slave1
slave2
  1. 修改配置文件hadoop-2.6.0/etc/hadoop/hadoop-env.shhadoop用户操作)
export JAVA_HOME=/home/hadoop/jdk1.8.0_65
3
  1. 修改配置文件hadoop-2.6.0/etc/hadoop/core-site.xml,添加(hadoop用户操作)
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
 </property>
 <property>
   <name>io.file.buffer.size</name>
   <value>131072</value>
 </property>
 <property>
   <name>hadoop.tmp.dir</name>
   <value>/home/hadoop/hadoop/tmp</value>
   <description>Abasefor other temporary directories.</description>
 </property>
  1. 修改配置文件hadoop-2.6.0/etc/hadoop/hdfs-site.xml,添加(hadoop用户操作)
<property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>master:9001</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>/home/hadoop/hadoop/dfs/name</value>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>/home/hadoop/hadoop/dfs/data</value>
 </property>
 <property>
   <name>dfs.replication</name>
   <value>2</value>
 </property>
  1. 修改修改配置文件hadoop-2.6.0/etc/hadoop/mapred-site.xml hadoop用户操作)
这个文件没有,需要复制一份
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
6
添加
<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>
 <property>
   <name>mapreduce.jobhistory.address</name>
   <value>master:10020</value>
 </property>
 <property>
   <name>mapreduce.jobhistory.webapp.address</name>
   <value>master:19888</value>
 </property>
  1. 修改配置文件hadoop-2.6.0/etc/hadoop/yarn-site.xml,添加(hadoop用户操作)
<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.address</name>
   <value>master:8032</value>
 </property>
 <property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>master:8030</value>
 </property>
 <property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>master:8035</value>
 </property>
 <property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>master:8033</value>
 </property>
 <property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>master:8088</value>
 </property>
  1. 将配置好的hadoop文件copy到另外slave机器上(hadoop用户操作)
scp -r hadoop-2.6.0/ hadoop@slave1:~/
scp -r hadoop-2.6.0/ hadoop@slave2:~/
  1. 格式化HDFS,在hadoop解压目录下,执行如下命令:(hadoop用户操作)
bin/hdfs namenode -format
12
注意:格式化只能操作一次,如果因为某种原因,集群不能用, 需要再次格式化,需要把上一次格式化的信息删除,在三个节点用户根目录里执行 rm -rf /home/hadoop/hadoop-2.6.0/dfs
  1. 启动集群,在hadoop解压目录下,执行如下命令:(hadoop用户操作)
启动集群:
sbin/start-all.sh

注意:使用jps查看启动的进程,确定hadoop是否成功启动。

master节点进程有:

[hadoop@master hadoop-2.6.0]$ jps
5160 NameNode
5433 SecondaryNameNode
5563 ResourceManager
6829 Jps
 
从节点进程有:
5624 NodeManager
5665 DataNode
6459 Jps
(进程号可以不相同)
  1. 查看hadoopweb接口,在浏览器输入:主机名:50070。如:http://master:50070
1

注意:如果在宿主机上使用master访问hadoop,需要更改宿主机上的host文件,如果不清楚,请自行百度。

  1. 查看hadoop日志,在hadoop安装目录的logs子目录下
2
posted on 2017-07-27 23:51  SanDuo1314  阅读(144)  评论(0)    收藏  举报