Hadoop分散式環境搭建
阿新 • • 發佈:2019-02-14
Hadoop 2.x部署
*local Mode
*Distributed Mode
*偽分散式
一臺機器,執行所有的守護程序
從節點DataNode、NodeManager
*完全分散式
有多個從節點
DataNodes
NodeManagers
配置檔案
$HADOOP_HOME/etc/hadoop/slaves
1. 基於偽分散式安裝
三臺機器
192.168.113.132 Hadoop-senior01 1.5G 1CPU 192.168.113.133 Hadoop-senior02 1G 1CPU 192.168.113.134 Hadoop-senior03 1G 1CPU
Hadoop克隆之後應做的步驟:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
重新啟動虛擬機器,然後從桌面修改靜態IP地址
sudo vi /etc/resolv.conf
如果是複製而非克隆虛擬機器需要:
重新生成Make碼
每個虛擬機器都要寫這三個
192.168.113.132 hadoop-senior01.ibeifeng.com hadoop-senior01
192.168.113.133 hadoop-senior02.ibeifeng.com hadoop-senior02
192.168.113.134 hadoop-senior03.ibeifeng.com hadoop-senior03
* 建議:*
如下兩個地方進行配置對映
1)叢集的各個機器
2)所有的客戶端機器
hosts
建立使用者:
ibeifeng
建立目錄
軟體安裝
基本設定
關閉防火牆
禁用SELINUX=disable
解除安裝OpenJDK
時間同步
各個機器的時間一致
方式很多種:
1、聯網情況下:
與網路標準時間進行同步
2、內網情況下
至少我可以保證叢集的所有時間是同步的
叢集時間同步
>> 找一臺機器作為時間伺服器
hadoop-senior01.ibeifeng.com
具體步驟如下:
1) 檢視時間伺服器是否安裝
sudo rpm -qa|grep ntp
2) 啟動時間伺服器
sudo service ntpd status
sudo service ntpd start
永久啟動
sudo chkconfig ntpd on
3)配置:
$sudo vi /etc/ntp.conf
修改如下:
第一處:去掉註釋,修改網段
第二處:增加註釋
第三處:去掉註釋
4)設定系統時間與bois時間一致
開啟配置檔案,首行加入
》》》叢集中其他機器,定時與時間伺服器進行同步時間
定時任務crontab
每臺機器,每十分鐘與機器進行同步
0-59/10 * * * * /usr/sbin/ntpdate ntpdate hadoop-senior01.ibeifeng.com
對第三臺機器同樣進行設定
調整與第一臺時間的同步
建立crontab定時任務
2、規劃機器與服務
在分散式環境下,所有的安裝目錄要相同
Hadoop-senior01 Hadoop-senior02 Hadoop-senior03
HDFS
NameNode
DataNodes DataNodes DataNode
SecondaryNode
YARN
ResourceManager
NodeManager NodeManager NodeManager
MapReduce
JobHistoryServer
3、修改配置檔案,設定服務執行機器節點
*hdfs
NameNode
DataNode
SNN
*hadoop-env.sh
*core-site.xml
*hdfs-site.xml
*slaves
*yarn
ResourceManager
NodeManager
*yarn-env.sh
*yarn-site.xml
*slaves
*mapreduce
JobHistoryServer
*mapred-env.sh
*mapred-site.xml
配置Hadoop檔案Hadoop-senior01
解壓Hadoop檔案到固定目錄下(三臺機器的目錄相同)
將原來Hadoop-senior01中配置好的Hadoop檔案拷貝到新的etc/hadoop目錄下
配置hdfs檔案
1)在Hadoop-env.sh中配置JDK
2)在core-site.xml中配置
3)在hdfs-site.xml上配置
4)在slaves上配置
配置yarn檔案
1)在yarn-env.sh配置環境變數
2)在yarn-site.xml上配置
配置mapreduce檔案
1)在mapred-env.sh上配置檔案
2)在mapred-site.xml上配置
4、分發HADOOP安裝包至各個機器節點
ssh無密碼登入配置
把金鑰拷貝到另外兩臺機器上
遠端連線成功
分發:
scp -r hadoop-2.5.0/ hadoop-senior02.ibeifeng.com:/home/ibeifeng/opt/app
SSH無密碼登入總結:
HDFS
start-dfs.sh
主節點上NameNode
SSH無金鑰登入
》》生成一對公鑰和私鑰
$ssh-keygen -t rsa
》》拷貝公鑰到各個機器上
$ssh-copy-id hadoop-senior01.ibeifeng.com
$ssh-copy-id hadoop-senior02.ibeifeng.com
$ssh-copy-id hadoop-senior03.ibeifeng.com
》》ssh連線測試
$ssh hadoop-senior01.ibeifeng.com
$ssh hadoop-senior02.ibeifeng.com
$ssh hadoop-senior03.ibeifeng.com
YARN
start-yarn.sh
主節點:resourcemanager
5、啟動服務元件進行測試
*啟動
>>HDFS
1、HDFS的格式化
在NameNode所在的機器上進行格式
啟動namenode
啟動datanode
測試
建立使用者主目錄
bin/hdfs dfs -mkdir -p mapreduce/wordcount/input
*測試
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
$ sbin/mr-jobhistory-daemon.sh start historyserver