包含图片: http://www.jianshu.com/p/307815253fa8
1. 首先根据之前的文章搭建好hadoop单节点环境
2. 分布式集群规划
名称 IP HDFS YARN
master 192.168.56.100 NameNode ResourceManager
data1 192.168.56.101 DataNode NodeManager
data2 192.168.56.102 DataNode NodeManager
3. 使用VirtualBox的复制功能创建 data1
a. 注意:在使用复制时,要勾选 【重新初始化所有网卡的MAC地址】和【完全复制】
b. 给data1 设置两个网卡 一个用来连接外网(使用dhcp),一个在虚拟机间互联(使用静态IP)
i. 网卡1设置为网络地址转换NAT
ii. 网卡2 点击【启动网络连接】,设置为 仅主机适配器
4. 配置data1
a. 配置网络配置文件
sudo gedit /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# NAT 网卡1
auto eth0
iface eth0 inet dhcp
# host only 网卡2
auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
b. 设置主机名
sudo gedit /etc/hostname
data1
# 重启电脑
c. 编辑hosts文件 设置主机名和IP地址间的映射
sudo gedit /etc/hosts
127.0.0.1 localhost
127.0.1.1 hadoop
192.168.56.100 master
192.168.56.101 data1
192.168.56.102 data2
192.168.56.103 data3
d. 编辑core-site.xml
sudo gedit core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value> # 与单节点相比 改动为master
</property>
</configuration>
e. 编辑yarn-site.xml # 拷贝时去掉注释!
sudo gedit yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<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>
# 设置ResourceManager和NodeManager的连接地址
#NodeManager通过该地址向ResourceManager汇报运行情况
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
# 设置ResourceManager和ApplicationMaster的连接地址
#ApplicationMaster通过该地址向ResourceManager申请资源、释放资源
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
# 设置ResourceManager和客户端的连接地址
#客户端通过该地址向ResourceManager注册应用程序、删除应用程序
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
</configuration>
f. 编辑mapred-site.xml
sudo gedit mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
</configuration>
g. 编辑hdfs-site.xml
sudo gedit hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.datanode.data.dir</name> #data1 做datanode 不用namenode 删去即可
<value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
</configuration>
h. 保证网络配置正确,可以上网
ifconfig
5. 复制data2,master
6. 设置data2
a. 配置网络配置文件
sudo gedit /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# NAT 网卡1
auto eth0
iface eth0 inet dhcp
# host only 网卡2
auto eth1
iface eth1 inet static
address 192.168.56.102
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
b. 设置主机名
sudo gedit /etc/hostname
data2
# 重启电脑
7. 设置master
a. 配置网络配置文件
sudo gedit /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# NAT 网卡1
auto eth0
iface eth0 inet dhcp
# host only 网卡2
auto eth1
iface eth1 inet static
address 192.168.56.100
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
b. 设置主机名
sudo gedit /etc/hostname
master
# 重启电脑
c. 编辑hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
</configuration>
d. 创建并编辑master文件
sudo gedit masters
master
e. 编辑slaves文件
sudo gedit slaves # 用来确定DataNode
data1
data2
f. 重启master
8. 创建及修改master、data1、data2的目录
a. 在master中使用ssh data1 登录data1 执行以下操作
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs #删除hdfs已有的目录
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode # 创建datanode 目录
sudo chown -R hduser:hduser /usr/local/hadoop #更改目录所有者
b. 在master中使用ssh data2 登录data2 执行以下操作
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs #删除hdfs已有的目录
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode # 创建datanode 目录
sudo chown -R hduser:hduser /usr/local/hadoop #更改目录所有者
c. 在master中执行以下操作
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs #删除hdfs已有的目录
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode # 创建namenode 目录
sudo chown -R hduser:hduser /usr/local/hadoop #更改目录所有者
d. 格式化NameNode HDFS目录
hadoop namenode -format
9. 启动集群
a. start-all.sh (等同于 start-dfs.sh 和 start-yarn.sh)
b. 查看master,data1,data2的启动的进程
jps
master Jps
ResourceManager
NameNode
SecondaryNameNode
data1 NodeManager
DataNode
Jps
data2 NodeManager
DataNode
Jps
c. 在浏览器中输入http://localhost:8088查看 Hadoop ResourceManager Web 界面
i. 点击Nodes 查看当前节点
d. 在浏览器中输入http://localhost:50070 查看NameNode HDFS Web 界面
点击Datanodes 显示当前启动的Datanode
10. data1中的命令参考
72 sudo gedit /etc/network/interfaces
73 ifconfig
74 sudo gedit /etc/home
75 ll -d /etc/home
76 sudo gedit /etc/hostname
77 sudo gedit /etc/hosts
78 ifconfig
79 cd /usr/local/hadoop/etc/hadoop/
80 ll
81 sudo gedit core-site.xml
82 sudp gedit yarn-site.xml
83 sudo gedit yarn-site.xml
84 sudo gedit mapred-site.xml
85 sudo gedit hdfs-site.xml
86 ifconfig
87 jps
88 exit
89 jps
90 cd /usr/local/hadoop/etc/hadoop/
91 ll
92 sudo gedit hdfs-site.xml
93 sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
94 mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
95 sudo chown -R hduser:hduser /usr/local/hadoop
96 jps
97 history