Hadoop


馬士兵hadoop第一課:虛擬機搭建和安裝hadoop及啟動

馬士兵hadoop第二課:hdfs集群集中管理和hadoop文件操作

馬士兵hadoop第三課:java開發hdfs

馬士兵hadoop第四課:Yarn和Map/Reduce配置啟動和原理講解

馬士兵hadoop第五課:java開發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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM