Hadoop學(xué)習(xí)系列一:環(huán)境搭建
Hadoop學(xué)習(xí)系列一:環(huán)境搭建。為了學(xué)習(xí)HBase,跑過(guò)來(lái)先把Hadoop學(xué)習(xí)下。主要是根據(jù)馬老師之前直播的教程來(lái)學(xué)習(xí)的。好了,廢話不多說(shuō)了,開(kāi)搞。
一. 安裝虛擬機(jī)
相比VMware,Vritual Box是免費(fèi)的,因此這里采用Virtual Box。首先在virtualbox官網(wǎng)的下載頁(yè)面下載Virtual Box,并安裝。安裝過(guò)程沒(méi)什么好說(shuō)的。
二. 在虛擬機(jī)里安裝CentOS
在CentOS官網(wǎng)下載最新版的CentOS 7,下載的時(shí)候要DVD ISO,Minimal ISO文件雖然比較小,但不能滿足我們的需求。
下載完成后,打開(kāi)Virtual Box,點(diǎn)擊“新建”,輸入虛擬機(jī)的名稱(我這里輸入“node1”),類型選擇“Linux”,因?yàn)檫@里下載的CentOS是64位版本,所有這里的版本要選擇“Red Hat (64-bit)”,點(diǎn)擊“下一步”。
“內(nèi)存大小”先設(shè)置1G,選擇“下一步”。
“虛擬硬盤(pán)”選擇“現(xiàn)在創(chuàng)建虛擬硬盤(pán)”,點(diǎn)擊“創(chuàng)建”。
”虛擬硬盤(pán)文件類型“默認(rèn)就好,選擇“下一步”。
”存儲(chǔ)在物理硬盤(pán)上“選擇“動(dòng)態(tài)分配”,選擇“下一步”。最后點(diǎn)擊“創(chuàng)建”按鈕,完成虛擬機(jī)“node1”的創(chuàng)建。
node1創(chuàng)建好后,如下圖所示:
接下來(lái)安裝CentOS 7系統(tǒng):
右鍵單擊虛擬機(jī)“node1”,點(diǎn)擊“設(shè)置”-“存儲(chǔ)”,右側(cè)“存儲(chǔ)介質(zhì)”-“控制器:IDE”的后面,有個(gè)“添加 虛擬 光驅(qū)”按鈕,如下圖紅色方框中:
點(diǎn)擊該按鈕后,點(diǎn)“選擇磁盤(pán)”,然后選擇之前下載好的CentOS7的ISO鏡像文件后,點(diǎn)“OK”。
然后雙擊啟動(dòng)虛擬機(jī)"node1"。
安裝過(guò)程中,“軟件選擇”要選擇“基礎(chǔ)設(shè)施服務(wù)器”,“安裝位置”點(diǎn)“完成”,然后點(diǎn)“開(kāi)始安裝”就可以了。
安裝過(guò)程中需要設(shè)置root用戶的密碼。
另外需要注意的是:如果想從Virtual Box虛擬機(jī)中切換到宿主機(jī)的話,按右邊的“Ctrl”鍵即可。
三. 配置CentOS
系統(tǒng)安裝好后,先配置下虛擬機(jī)的網(wǎng)絡(luò):
將node1虛擬機(jī)的網(wǎng)絡(luò)中網(wǎng)卡連接方式設(shè)置為“僅主機(jī)(Host-Only)網(wǎng)絡(luò)”。cmd下ipconfig命令查看Virtual Box虛擬網(wǎng)卡的IP地址,如下圖:
我這里的IP地址為192.168.56.1,子網(wǎng)掩碼255.255.255.0
CentOS下設(shè)置node1的IP地址為192.168.56.100,子網(wǎng)掩碼為255.255.255.0:
- vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
- TYPE=Ethernet
- IPADDR=192.168.56.100
- NETMASK=255.255.255.0
設(shè)置node1的網(wǎng)關(guān):
- vim /etc/sysconfig/network
- NETWORKING=yes
- GATEWAY=192.68.56.1
設(shè)置node1的hostname:
- hostnamectl set-hostname node1
停止防火墻并禁止開(kāi)機(jī)啟動(dòng):
- systemctl stop firewalld
- systemctl disable firewalld
重啟網(wǎng)絡(luò):
- systemctl restart network
這個(gè)時(shí)候主機(jī)和虛擬機(jī)應(yīng)該可以相互ping通了:
- ping 192.168.56.1
如果出現(xiàn)虛擬機(jī)ping不通主機(jī),但是主機(jī)可以ping通虛擬機(jī)的情況,可以參考https://blog.csdn.net/u014594922/article/details/53426225
四. 安裝java和hadoop
下載jdk和hadoop
使用xshell登陸到node1,使用xftp將jdk和hadoop復(fù)制到node1
安裝jdk:
- rpm -ivh jdk-8u171-linux-x64.rpm
安裝hadoop:
- tar -zxvf hadoop-2.9.1.tar.gz
配置hadoop環(huán)境變量:
- vim /etc/profile
添加下面代碼:
- export PATH=$PATH:/root/hadoop-2.9.1/bin:/root/hadoop-2.9.1/sbin
使環(huán)境變量生效:
- source /etc/profile
在hadoop中指明java路徑:
- vim /root/hadoop-2.9.1/etc/hadoop/hadoop-env.sh
將其中的JAVA_HOME改為/usr:
- export JAVA_HOME=/usr
五. 復(fù)制虛擬機(jī)及配置hadoop
將node1關(guān)機(jī),復(fù)制3份,使用完全復(fù)制,命名為node2、node3、node4,并依次打開(kāi),配置IP地址分別192.168.56.101,192.168.56.102,192.168.56.103,hostname分別為node2、node3、node4
使用“無(wú)界面啟動(dòng)”方式用打開(kāi)四個(gè)虛擬機(jī),并用xshell創(chuàng)建4個(gè)對(duì)應(yīng)的會(huì)話
勾選xshell的“工具”-“發(fā)送鍵輸入到所有會(huì)話”,可以同時(shí)向4個(gè)會(huì)話發(fā)送內(nèi)容
切換到4個(gè)會(huì)話的hadoop目錄下:
- cd ~/hadoop-2.9.1
修改4個(gè)會(huì)話的文件,用于指明namenode:etc/hadoop/core-site.xml
- <configuration>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://node1:9000</value>
- </property>
- </configuration>
修改4個(gè)會(huì)話的hosts文件:
- vim /etc/hosts
- 192.168.56.100 node1
- 192.168.56.101 node2
- 192.168.56.102 node3
- 192.168.56.103 node4
在node1會(huì)話中初始化hdfs:
- hdfs namenode -format
輸入y
在node1會(huì)話中開(kāi)啟namenode:
- hadoop-daemon.sh start namenode
在node1會(huì)話中jps,出現(xiàn)NameNode說(shuō)明啟動(dòng)成功:
- jps
- 4483 Jps
- 4404 NameNode
在node2、node3、node4會(huì)話中開(kāi)啟datanode:
- hadoop-daemon.sh start datanode
在node2、node3、node4會(huì)話中jps,出現(xiàn)DataNode說(shuō)明啟動(dòng)成功:
- jps
- 5314 DataNode
- 5391 Jps
通過(guò)web頁(yè)面查看hadoop狀態(tài)
node1下查看hadoop的web頁(yè)面端口:
- netstat -ntlp | grep java
- tcp 0 0 192.168.56.100:9000 0.0.0.0:* LISTEN 4491/java
- tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 4491/java
50070就是hadoop的web頁(yè)面端口
瀏覽器打開(kāi)http://192.168.56.100:50070:
可以看到Live Nodes是3,說(shuō)明由node1管理的3個(gè)節(jié)點(diǎn)在運(yùn)行中
在namenode上使用slaves文件啟動(dòng)datanode
其實(shí)可以直接在namenode上啟動(dòng)datanode,但要確保datanode上的hadoop路徑與namenode上的一致,而且需要datanode配置了上一篇文章中提到的core-site.xml。在etc/hadoop/slaves中添加所有的datanode節(jié)點(diǎn):
- node2
- node3
- node4
使用下列命令啟動(dòng)整個(gè)集群:
- start-dfs.sh
運(yùn)行完成后,發(fā)現(xiàn)datanode也都啟動(dòng)了
在namenode上免密啟動(dòng)datanode
雖然上面通過(guò)slaves文件已經(jīng)可以啟動(dòng)整個(gè)集群了,但是在連接每個(gè)datanode時(shí)都需要輸入密碼,很不方便。
到root用戶的.ssh下:
- cd /root/.ssh
生成密鑰對(duì):
- ssh-keygen -t rsa
將密鑰對(duì)拷貝到所有node中:
- ssh-copy-id node1
- ssh-copy-id node2
- ssh-copy-id node3
- ssh-copy-id node4
接下來(lái),啟動(dòng)和結(jié)束hdfs時(shí)不需要再輸入密碼
hdfs的使用
使用hadoop fs或hdfs dfs可查看幫助
將文件1.txt保存到hdfs根目錄下:
- hadoop fs -put ./1.txt /
查看hdfs根目錄文件:
- hadoop fs -ls /
命令和linux下命令很像






























