馬士兵hadoop第一課:虛擬機搭建和安裝hadoop及啟動
馬士兵hadoop第二課:hdfs集群集中管理和hadoop文件操作
馬士兵hadoop第四課:Yarn和Map/Reduce配置啟動和原理講解
馬士兵hadoop第一課:虛擬機搭建和安裝hadoop及啟動
(一) 需要用到的軟件
virtualbox redhat64(centos7) hadoop-2.7.3.jar jdk8 xshell ftp(我用的是FlashFXP)
所需要的軟件,最好到官網上去下載,也可以到百度雲盤下載:http://pan.baidu.com/s/1nvkDLbV
(二)安裝配置虛擬機
將virualbox安裝好后,需要新建一個linux版redhat64的虛擬機,我取名叫master;
特別需要注意的地方:
將虛擬機的網絡設置為host-only,我因為忘了設置成host-only,導致新建的虛擬機和宿主機怎么都ping不通,浪費了我一些時間。
選中虛擬機-->設置-->網絡,設置如下:
虛擬機網絡設置
a) 在設置虛擬機網絡前,先設置宿主機的VirtualBox Host-Only Network,
打開網絡共享中心-->更改適配器設置,然后設置IP和子網掩碼
b) 設置虛擬機GATEWAY為192.168.56.1
[root@master ~]# vi /etc/sysconfig/network
#編輯內容如下
NETWORKING=yes
GATEWAY=192.168.56.1
c) 設置虛擬機IP和子網掩碼
[root@master ~]# vim /etc/sysconfig/network-sripts/ifcfg-enp0s3
#編輯內容如下
TYPE=Ethernet
IPADDR=192.168.56.100
NETMASK=255.255.255.0
d) 修改master主機名
主機名千萬不能有下划線【馬老師一再強調】
[root@master ~]# hostnamectl set-hostname master
e) 重啟master虛擬機網絡
[root@master ~]# service network restart
f) 在虛擬機上ping宿主機,在宿主機上ping虛擬機master
[root@master ~]# ping 192.168.56.1
PING 192.168.56.1 (192.168.56.1) 56(84) bytes of data.
64 bytes from 192.168.56.1: icmp_seq=1 ttl=128 time=0.191 ms
64 bytes from 192.168.56.1: icmp_seq=2 ttl=128 time=0.203 ms
C:\Users\Administrator>ping 192.168.56.100 正在 Ping 192.168.56.100 具有 32 字節的數據: 來自 192.168.56.100 的回復: 字節=32 時間<1ms TTL=64 來自 192.168.56.100 的回復: 字節=32 時間<1ms TTL=64 來自 192.168.56.100 的回復: 字節=32 時間<1ms TTL=64
互相ping,測試成功,若不成功,注意防火牆的影響,關閉windows或虛擬機防火牆。
systemctl stop firewalld.service
systemctl disable firewalld.service
更多防火牆操作:<a href='https://www.cnblogs.com/yucongblog/p/9722414.html'>Centos7下防火牆操作</a>
(3)安裝jdk
將已下載好的jdk-8u91-linux-x64.rpm和hadoop-2.7.3.tar.gz,
通過FlashFXP工具(也可以是其他的ftp工具)上傳上去,
用xshell連接master虛擬機。
使用rpm進行安裝jdk:
默認安裝在 /usr/java下面,執行java看到如下輸入,即表示java安裝成功:
(4)安裝hadoop
tar -xvf hadoop-2.7.3.tar.gz
並將解壓后的文件hadoop-2.7.3修改成hadoop,執行mv hadoop-2.7.3 hadoop
(5) 配置hadoop的JAVA_HOME
vim /usr/hadoop/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/default
(6) 配置hadoop的環境變量
vim /etc/profile
在profile文件尾部添加內容如下:
export PATH=$PATH:/usr/hadoop/bin:/usr/hadoop/sbin
要想使profile文件生效,還要執行指令
[root@master ~]# source /etc/profile
(7)修改master的/usr/local/hadoop/etc/hadoop/core-site.xml,指明namenode的信息
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration>
這里需要指明一下,core-site.xml里面的配置需要復制到slave虛擬機上,由於采用的是步驟(9)虛擬機復制,這個信息也已經復制過去了。
(8) 測試hadoop命令是否可以直接執行
任意目錄下敲 hadoop,打印如下,表示hadoop的環境變量配置成功
(9) 復制3台虛擬機
關閉master,選中master-->右鍵-->復制,分別復制出取名為slave1,slave2,slave3的3台虛擬機。
使用無界面啟動方式啟動4台虛擬機
然后,使用以上步驟(2)中的虛擬機網絡配置(b)(c)(d)(e)(f)操作slave1,slave2,slave3,
slave1 設置為IP:192.168.56.101,hostname:slave1
slave1 設置為IP:192.168.56.102,hostname:slave2
slave1 設置為IP:192.168.56.103,hostname:slave3
使用xshell依次登陸上maser,slave1,slave2,slave3四台虛擬機。
要想達到以上截圖中的效果,操作:工具-->發送鍵輸入到所有會話;選項卡-->排列-->瓷磚排序。
(10)搭建集群
在hadoop中,
跑在master機器上的組件/模塊/進程有:
namenode,secondarynamenode,resource manager(job tracker),history sever,
跑在slave機器上的有:
datanode,node manager(task tracker)
a) 修改4台機器的/etc/hosts,讓他們通過名字認識對方,測試一下互相用名字可以ping通。
192.168.56.100 master
192.168.56.101 slave1
192.168.56.102 slave2
192.168.56.103 slave3
b) 修改master下的/usr/local/hadoop/etc/hadoop/slaves
slave1
slave2
slave3
這樣,master就可以知道slave1,2,3對應的IP了。
c) 啟動namenode和datanode
master上需要格式化namenode,執行指令:
hadoop namenode -format
啟動master上的namenode,在master上執行:
hadoop-daemon.sh start namenode
啟動slave上的datanode,在每個slave上執行:
hadoop-daemon.sh start datanode
使用jps查看namenode和datanode的啟動情況。
至此,一個master,三個slave的hadoop集群搭建完成並啟動成功。
感謝馬士兵老師的無私奉獻,講解視頻百度雲盤地址:http://pan.baidu.com/s/1slU6QrN