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