Hadoop多節點分佈式配置安裝

搭建的主要過程:

Hadoop的環境主要在centos 7系統的虛擬機上進行搭建。搭建的過程主要分爲如下三個步驟:1、節點的網絡環境配置;2、各節點的免密碼登錄;3、Hadoop配置部署。下面將對這三個過程進行詳細介紹。帶顏色字體爲終端命令

網絡環境配置

1、 修改主節點和各個子節點的主機名,主節點爲master,子節點爲slave0,slave1,…
sudo gedit /etc/hostname
2、 將ip改爲靜態ip,各個節點的ip不同
sudo gedit /etc/network/interfaces
添加一下內容:
auto ens33
iface ens33 inet static
address 192.168.0.101
gateway 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255
dns-nameservers 8.8.8.8
重啓網絡
sudo service networking restart
3、配置hosts列表(主節點和子節點)
sudo gedit /etc/hosts
在文件中添加各個節點的ip和主機名,如192.168.0.101 master
4、關閉防火牆
sudo ufw stop
5、配置時鐘同步
crontab -e
在打開的文件中插入如下內容
0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
保存退出

免密碼登錄

1、 在各個節點安裝ssh,並且在各個節點上生成密鑰,命令如下:
ssh-keygen -t rsa
2、 把公鑰添加到 authorized_keys 中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3、 將各個節點的公鑰添加到主節點的公鑰文件中(其中ip表示其他節點的ip,):
ssh 192.168.0.102 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
4、 將文件分發到各個節點:
scp ~/.ssh/authorized_keys 192.168.0.102:~/.ssh/authorized_keys
5、 測試登錄各個節點
ssh master; ssh slave0;…
hadoop配置部署
1、 Java環境搭建
(1)下載jdk,並配置環境變量。
gedit /home/oracle/.bash_profile
在文件中添加如下內容:
export JAVA_HOME=/usr/java/jdk1.7.0_71/
export PATH=JAVAHOME/bin: PATH
(2)使改動立即生效
source /home/oracle/.bash_profile
(3)測試Java是否安裝成功
java -version
2、 hadoop環境搭建
(1) 下載hadoop-2.7.3,並且解壓到主目錄下/home/oracle/
tar -xvf ~/hadoop-2.5.2.tar.gz
(2) 配置環境變量 hadoop-env.sh
gedit /home/oracle/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
將下面內容進行替換

export JAVA_HOME=${JAVA_HOME}

替換爲:
export JAVA_HOME=/usr/java/jdk1.7.0_71/
(3) 配置環境變量 yarn-env.sh
gedit ~/hadoop-2.5.2/etc/hadoop/yarn-env.sh
找到下面內容進行替換
export JAVA_HOME=/home/y/libexec/jdk1.6.0/
替換爲:
export JAVA_HOME=/usr/java/jdk1.7.0_71/
(4) 配置核心組件 core-site.xml
gedit ~/hadoop-2.7.3/etc/hadoop/core-site.xml
用下面的代碼替換 core-site.xml 中的內容:(oracle是用戶名)

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 

<!-- Put site-specific property overrides in this file. --> 

<configuration> 
        <property> 
                <name>fs.defaultFS</name> 
                <value>hdfs://master:9000</value> 
        </property> 
        <property> 
                <name>hadoop.tmp.dir</name> 
                <value>/home/oracle/hadoopdata</value> 
        </property> 
</configuration>

(5) 配置文件系統 hdfs-site.xml
gedit ~/hadoop-2.7.3/etc/hadoop/hdfs-site.xml
用下面的代碼替換 hdfs-site.xml中的內容:(dfs.replication 表示文件在hdfs中備份數目,這些數據一般備份在不同的節點上,當一個節點失效時,還可以從其他節點拿到這個文件的備份,如果是單機值爲1,如果大於1會出現警告)

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 

<!-- Put site-specific property overrides in this file. --> 

<configuration> 
    <property> 
        <name>dfs.replication</name> 
        <value>1</value> 
    </property> 
</configuration>

(6) 配置文件系統 yarn-site.xml
gedit ~/hadoop-2.7.3/etc/hadoop/yarn-site.xml
用下面的代碼替換 yarn-site.xml 中的內容:

<?xml version="1.0"?> 

<configuration> 
 <property> 
  <name>yarn.nodemanager.aux-services</name> 
  <value>mapreduce_shuffle</value> 
 </property> 
 <property> 
                <name>yarn.resourcemanager.address</name> 
                <value>master:18040</value> 
        </property> 
 <property> 
                <name>yarn.resourcemanager.scheduler.address</name> 
                <value>master:18030</value> 
        </property> 
 <property> 
                <name>yarn.resourcemanager.resource-tracker.address</name> 
                <value>master:18025</value> 
        </property> 
 <property> 
                <name>yarn.resourcemanager.admin.address</name> 
                <value>master:18141</value> 
        </property> 
 <property> 
                <name>yarn.resourcemanager.webapp.address</name> 
                <value>master:18088</value> 
        </property>
        </configuration> 

(7) 配置計算框架 mapred-site.xml
gedit ~/hadoop-2.7.3/etc/hadoop/mapred-site.xml
用下面的代碼替換 mapred-site.xml 中的內容

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 

<configuration> 
 <property> 
  <name>mapreduce.framework.name</name> 
  <value>yarn</value> 
 </property> 

</configuration>

(8) 在 master 節點配置 slaves 文件
gedit ~/hadoop-2.5.2/etc/hadoop/slaves
在文件中填入各個子節點的名字
(9) 複製到子節點
scp -r hadoop-2.7.3 oracle@slave0:~/
(10) 配置 Hadoop 啓動的系統環境變量
gedit ~/.bash_profile
添加如下內容
export HADOOP_HOME=/home/zkpk/hadoop-2.7.3
export PATH=HADOOPHOME/bin: HADOOP_HOME/sbin:$PATH
(11) 創建數據目錄
mkdir /home/oracle/hadoopdata
(12) 格式化文件系統(如果多次格式化文件系統可能會導致namenode 和datanode 的id不同,所以每次執行該命令需要刪除namenode和datanode 所在的文件夾,或者手動將id改爲相同)
hdfs namenode -format
(13) 啓動 Hadoop(之後的啓動只需要執行次命令)
start-all.sh
(14) 測試hadoop是否啓動正確
a、 輸入jps應該出現如下內容
這裏寫圖片描述
b、 Web UI 查看集羣是否成功啓動,瀏覽器訪問http://master:50070/,出現如下界面
這裏寫圖片描述
(15)執行測試樣例
hadoop jar ~/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar pi 10 10
驗證結果,就可以知道集羣是否安裝成功

**

在配置過程中,可以先配好一個子節點,然後將這個節點進行克隆變爲其他的子節點,但是需要改變主機名,ip,進行免密登錄,在主節點中添加host,簡單方便。

**

希望對你有所幫助,十分感謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章