CentOS上Hadoop環境的搭建與管理

來源:互聯網
上載者:User

標籤:可擴充性   工作原理   實驗報告   伺服器   穩定性   

CentOS上Hadoop環境的搭建與管理

please down load the attachment

編輯日期:2015年9月1日


實驗要求:
完成Hadoop平台安裝部署、測試Hadoop平台功能和效能,記錄實驗過程,提交實驗報告。
1)    掌握Hadoop安裝過程
2)    理解Hadoop工作原理
3)    測試Hadoop系統的可擴充性
4)    測試Hadoop系統的穩定性
一、先決條件
確保在叢集中的每個節點上都安裝所有必需軟體:JDK ,ssh,Hadoop (2.6.0)。
1)JDK,必須安裝(版本1.7以上),建議選擇Sun公司發行的Java版本。
2)ssh 必須安裝並且保證 sshd一直運行,以便用Hadoop 指令碼管理遠端Hadoop守護進程。


二、Hadoop的安裝與配置
HDFS在Master節點啟動dfs和yarn服務時,需要自動啟動Slave節點服務,HDFS需要通過ssh訪問Slave節點機。HDFS需要搭建多台伺服器組成分布式系統,節點機間需要無密碼訪問。本節任務是進行ssh的設定、使用者的建立、hadoop參數的設定,完成HDFS分布式環境的搭建。
任務實施:
本節任務需要四台節點機組成叢集,每個節點機上安裝CentOS-6.5-x86_64系統。四台節點機使用的IP地址分別為:192.168.23.111、192.168.23.112、192.168.23.113、192.168.23.114,對應節點主機名稱為:node1、node2、node3、node4。節點機node1作為NameNode,其他作為DataNode。
在node1主機上,
編輯 vi /etc/hosts,添加如下內容:
192.168.23.111 node1
192.168.23.112 node2
192.168.23.113 node3
192.168.23.114 node4
編輯 vi /etc/sysconfig/network,修改
HOSTNAME=node1
關閉防火牆
chkconfig iptables off
service iptables stop
在其他節點主機上進行類似的操作,但需要將HOSTNAME的值分別修改為對應的主機名稱。




步驟1
建立hadoop使用者,分別在四台節點機上建立使用者hadoop,uid=660,密碼分別為h1111, h2222, h3333, h4444。登入node1節點機,建立hadoop使用者和設定密碼。操作命令如下。
[[email protected] ~]# useradd -u 660 hadoop
[[email protected] ~]# passwd hadoop
其他節點機的操作相同。



步驟2
設定master節點機ssh無密碼登入slave節點機。
(1)在node1節點機上,以使用者hadoop使用者登入或者使用su – hadoop切換到hadoop使用者。操作命令如下。
[[email protected] ~]# su - hadoop
(2)使用ssh-keygen產生認證密鑰,操作命令如下。
[[email protected] ~]$ssh-keygen -t dsa
(3)使用ssh-copy-id分別拷貝認證公開金鑰到node1,node2,node3,node4節點機上,操作命令如下。


[[email protected] ~]$ cd ~
[email protected] ~]$ ssh-copy-id -i .ssh/id_dsa.pub node1
[[email protected] ~]$ ssh-copy-id -i .ssh/id_dsa.pub node2
[[email protected] ~]$ ssh-copy-id -i .ssh/id_dsa.pub node3
[[email protected] ~]$ ssh-copy-id -i .ssh/id_dsa.pub node4
(4)在node1節點機上使用ssh測試無密碼登入node1節點機,操作命令如下。
[[email protected] ~]$ ssh node1
Last Login: Mon Dec 22 08:42:38 2014 from node1
[[email protected] ~]$ exit
Logout
Connection to node1 closed.
以上表示操作成功。
在node1節點機上繼續使用ssh測試無密碼登入node2、node3和node4節點機,操作命令如下。
[[email protected] ~]$ ssh node2
[[email protected] ~]$ ssh node3
[[email protected] ~]$ ssh node4
測試登入每個節點機後,輸入exit退出。


步驟3
上傳或下載hadoop-2.6.0.tar.gz軟體包到node1節點機的root目錄下。如果hadoop軟體包在node1節點機上編譯,則把編譯好的包拷貝到root目錄下即可。首先找到所需軟體包的地址http://mirror.bit.edu.cn/apache/hadoop/common/,。


然後使用wget命令或其他命令下載所需的軟體包,操作樣本如:
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz


步驟4
解壓檔案,安裝檔案。操作命令如下。
[[email protected] ~]# cd
[[email protected] ~]# tar xvzf hadoop-2.6.0.tar.gz
[[email protected] ~]# cd hadoop-2.6.0
[[email protected] hadoop-2.6.0]# mv * /home/hadoop/
步驟5
修改hadoop設定檔。Hadoop設定檔主要有:hadoop-env.sh、yarn-env.sh、slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。設定檔在/home/hadoop/etc/hadoop/目錄下,可進入該目錄進行配置。操作命令如下。
[[email protected] hadoop-2.6.0]# cd /home/hadoop/etc/hadoop/
(1)修改hadoop-env.sh,
如果還沒有安裝java,先安裝java
    yum -y install java-1.7.0-openjdk*
安裝出現問題可以參考以下網址教程進行處理.
http://jingyan.baidu.com/article/4853e1e51d0c101909f72607.html
檢查各主機的/etc/profile是否有JAVA_HOME變數,沒有就在末尾添加:


JAVA_HOME=/usr/lib/jvm/java-1.7.0
export JAVA_HOME


PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH
export CLASSPATH


export HADOOP_HOME=/home/hadoop/
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin



儲存退出後執行 source /etc/profile



將hadoop-env.sh檔案中的export JAVA_HOME=${JAVA_HOME}修改為


export JAVA_HOME=/usr/lib/jvm/java-1.7.0


(2)修改slaves,該檔案登記DataNode節點主機名稱,本處添加node2,node3,node4三台節點主機名稱。如下所示。
[[email protected] hadoop]# vi slaves
node2
node3
node4
(3)修改core-site.xml,將檔案中的<configuration></configuration>修改為如下內容。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
</configuration>
其中node1為叢集的NameNode(Master)節點機,node1可以使用IP地址表示。
(4)修改hdfs-site.xml,將檔案中的<configuration></configuration>修改為如下內容。
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
其中為了便於教學,第二個NameNode也使用node1節點機,NameNode產生的資料存放在/home/hadoop/dfs/name目錄下,DataNode產生的資料存放在/home/hadoop/dfs/data目錄下,設定3份備份。
(5)將檔案mapred-site.xml.template改名為mapred-site.xml。操作如下。
[[email protected] hadoop]# mv mapred-site.xml.template mapred-site.xml
將檔案中的<configuration></configuration>修改為如下內容。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
</configuration>
(6)修改yarn-site.xml,將檔案中的<configuration></configuration>修改為如下內容。
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.23.111</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>node1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>node1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>node1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>node1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>node1:8088</value>
</property>
</configuration>
步驟6
修改“/home/hadoop/”檔案使用者主/組屬性,操作如下。
[[email protected] hadoop]# chown -R hadoop:hadoop /home/hadoop
步驟7
將配置好的hadoop系統複製到其他節點機上,操作如下。
[[email protected] hadoop]# cd /home/hadoop
[[email protected] hadoop]# scp -r hadoop-2.6.0 [email protected]:/home/hadoop
[[email protected] hadoop]# scp -r hadoop-2.6.0 [email protected]:/home/hadoop
[[email protected] hadoop]# scp -r hadoop-2.6.0 [email protected]:/home/hadoop
步驟8
分別登入node2,node3,node4節點機,修改 “/home/hadoop/”檔案使用者主/組屬性。
[[email protected]~]# chown -R hadoop:hadoop /home/hadoop
[[email protected]~]# chown -R hadoop:hadoop /home/hadoop
[[email protected]~]# chown -R hadoop:hadoop /home/hadoop
至此,整個hadoop分布式系統搭建完成。
三、Hadoop的管理


1.格式化一個新的Distributed File System
先格式化一個新的Distributed File System
$ cd /home/hadoop
$ bin/hadoop namenode -format
成功情況下系統輸出:
/opt/hadoop/hadoopfs/name has been successfully formatted.


查看輸出保證Distributed File System格式化成功
執行完後可以到master機器上看到/home/hadoop/name目錄。
2.啟動分布式檔案服務
 sbin/start-all.sh


sbin/start-dfs.sh
sbin/start-yarn.sh
使用瀏覽器瀏覽Master節點機 http://192.168.23.111:50070,查看NameNode節點狀態和瀏覽Datanodes資料節點。



使用瀏覽器瀏覽Master節點機 http://192.168.23.111:8088查看所有應用。




3.關閉分布式檔案服務
sbin/stop-all.sh
4.檔案管理
在hdfs建立swvtc目錄,操作命令如下。
[[email protected] ~]$ hdfs dfs -mkdir /swvtc         #類似 mkdir /swvtc
在hdfs查看目前的目錄,操作命令如下。
[[email protected] ~]$ hdfs dfs -ls /                 #類似 ls /
Found 1 items
drwxr-xr-x   - hadoop supergroup          0 2014-12-23 10:07 /swvtc
在本地系統編輯檔案jie.txt,操作命令如下。
[[email protected] ~]$ vi jie.txt
新增內容:
Hi,Hadoop!
上傳檔案jie.txt到hdfs的/swvtc目錄中,操作命令如下。
[[email protected] ~]$ hdfs dfs -put jie.txt /swvtc
從hdfs中下載檔案。操作命令:
[[email protected] ~]$ hdfs dfs -get /swvtc/jie.txt
查看hdfs中/swvtc/jie.txt的內容,操作命令:
[[email protected] ~]$ hdfs dfs -text /swvtc/jie.txt
Hi,Hadoop!
hadoop dfs -get in getin 從HDFS擷取檔案並且重新命名為getin,同put一樣可操作檔案也可操作目錄
hadoop dfs -rmr out 刪除指定檔案從HDFS上
hadoop dfs -cat in/* 查看HDFS上in目錄的內容
hadoop dfsadmin -report 查看HDFS的基本統計資訊,結果如下
hadoop dfsadmin -safemode leave 退出安全模式
hadoop dfsadmin -safemode enter 進入安全模式



5.添加節點
可擴充性是HDFS的一個重要特性,首先在新加的節點上安裝hadoop,然後修改$HADOOP_HOME/conf /master檔案,加入 NameNode主機名稱,然後在NameNode節點上修改$HADOOP_HOME/conf/slaves檔案,加入新加節點主機名稱,再建立到新加節點無密碼的SSH串連。
運行啟動命令:
./start-all.sh
然後可以通過http://(Masternode的主機名稱):50070查看新添加的DataNode
6.負載平衡
運行命令:
./start-balancer.sh
可以使DataNode節點上選擇策略重新平衡DataNode上的資料區塊的分布。



CentOS上Hadoop環境的搭建與管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.