Hadoop 分布式集群搭建拓扑图
此图的两个作用:
- 是上一篇文章五大守护进程的具体示例说明;
- 标示出本次要搭建的网络结构,其概括总体;
前期准备
- 一个安装好的 ubuntu 16.04 LTS
- jdk 的安装(版本1.8)
- ssh 的安装
- 单节点 hadoop 的搭建(版本3.0.1)
- 足够大的内存,至少8G(因为我们是在一台物理机上通过虚拟机跑四个节点,内存小了真的玩不转)
嘿嘿,所幸的是我们先前已经搭建过了搭建过单节点的hadoop,所以接下来我们只需要在其基础上,修改些文件,就可以实现了!
设置data1
- 将单节点的hadoop复制一份作为data1.通过虚拟机的克隆功能可实现
- 查看网卡
ifconfig
ens33 Link encap:Ethernet HWaddr 00:0c:29:dd:fc:b8
inet addr:192.168.56.130 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::2547:37b7:8e71:f0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:303304 errors:0 dropped:0 overruns:0 frame:0
TX packets:73085 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:436831877 (436.8 MB) TX bytes:4453181 (4.4 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:464 errors:0 dropped:0 overruns:0 frame:0
TX packets:464 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:31854 (31.8 KB) TX bytes:31854 (31.8 KB)
这里的 ens33 就是网卡名,后面会用到。
- 配置静态IP(既然是集群首先要做的就是实现网络互联)
sudo vim /etc/network/interfaces
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.0.10
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
- 设置主机名
sudo vim /etc/hostname
data1
- 设置主机名查询静态表(解决没有DNS问题)
sudo vim /etc/hosts
127.0.0.1 localhost
127.0.1.1 hadoop
192.168.0.100 master
192.168.0.10 data1
192.168.0.20 data2
192.168.0.30 data3
- 修改core-site.xml
sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
- 修改 yarn-site.xml
sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
- 修改mapred-site.xml
sudo vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
- 修改hdfs-site.xml
sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
设置data2
因为data1hedata2的hadoop文件配置一样所以我们只需要设置静态IP和主机名就可以,data3也一样。
- 将data1复制一份作为data2.通过虚拟机的克隆功能可实现
- 配置静态IP(既然是集群首先要做的就是实现网络互联)
sudo vim /etc/network/interfaces
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.0.20
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
- 设置主机名
sudo vim /etc/hostname
data2
设置data3
- 将data1复制一份作为data3.通过虚拟机的克隆功能可实现
- 配置静态IP(既然是集群首先要做的就是实现网络互联)
sudo vim /etc/network/interfaces
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.0.30
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
- 设置主机名
sudo vim /etc/hostname
data3
设置Master
- 将data1复制一份作为master.通过虚拟机的克隆功能可实现
- 配置静态IP(既然是集群首先要做的就是实现网络互联)
sudo vim /etc/network/interfaces
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
- 设置主机名
sudo vim /etc/hostname
master
- 修改hdfs-site.xml
sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<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>
- 修改works
sudo vim /usr/local/hadoop/etc/hadoop/workers
data1
data2
data3
master分别登陆data1,data2,data3,建立HDFS目录
- 登陆data1
ssh data1
- 建立hdfs
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
sudo chown <用户名>: <组名> -R /usr/local/hadoop
- 退出data1
exit
- 登陆data2
ssh data2
- 建立hdfs
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
sudo chown <用户名>: <组名> -R /usr/local/hadoop
- 退出data2
exit
- 登陆data3
ssh data3
- 建立hdfs
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
sudo chown <用户名>: <组名> -R /usr/local/hadoop
- 退出data3
exit
在master上建立HDFS目录,并且格式化
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
sudo chown -R <用户名>: <组名> /usr/local/hadoop
hadoop namenode -format
启动hadoop
start-dfs.sh
start-yarn.sh
访问Hadoop Resource-Manager Web
http://master:8088
访问NameNode Web
http://master:9870
END!