Hadoop安裝測試

Hadoop安裝
三個節點創建相同的用戶hadoop,Master機器主要配置NameNode和JobTracker的角色,負責總管分佈式數據和

分解任務的執行;
3個Salve機器配置DataNode和TaskTracker的角色,負責分佈式數據存儲以及任務的執行;
在Hadoop啓動以後,Namenode是通過SSH來啓動和停止各個datanode上的各種守護進程的,所以就必須要配置無

密碼登陸。
一、關閉IPTABLES和SELinux:
 service iptables stop
 chkconfig iptables off
 vi /etc/selinux/config
 SELINUX=disabled  #修改爲disabled
二、配置每臺java環境
tar zxvf jdk-7u17-linux-x64.tar.gz
mv jdk-7u17-linux-x64 /usr/local/jdk
添加環境變量:
vi /etc/profile
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export HADOOP_HOME=/usr/local/zoo/hadoop
export PATH=$HADOOP_HOME/bin:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib:$CLASSPATH

export HADOOP_HOME_WARN_SUPPRESS=1

取消格式化時的告警export HADOOP_HOME_WARN_SUPPRESS=1

運行命令使其生效export JAVA_HOME CLASSPATH PATH
source /etc/profile
java --version #顯示版本則配置成功
三、創建用戶和配置密鑰對認證
A.三個節點都要創建hadoop用戶,而且uid一樣並設置密碼
 useradd -u 600 hadoop
 passwd 密碼
B.登陸到master創建密鑰對
 su - hadoop
 ssh-keygen -t rsa #一直回車
 ls /home/hadoop/.ssh
 id_rsa id_rsa.pub #生成一對密鑰
 使用root修改/etc/ssh/sshd_config文件
     將“#AuthorizedKeysFile      .ssh/authorized_keys”前面的#號去掉
     即,啓用“AuthorizedKeysFile      .ssh/authorized_keys”
    (如果需要root也能ssh登錄,把“#PermitRootLogin yes”前面的#號也去掉)
 同樣root賬戶下,/etc/rc.d/init.d/sshd  restart重啓sshd服務使之生效

C.登錄master將公鑰上傳到兩臺slave
 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
 修改authorized_keys權限最低為644 chmod 644 authorized_keys
 然後scp authorized_keys hadoop@hadoop-slave01:~/.ssh/authorized_keys
 同樣修改其權限為兩臺slave上authorized_keys權限為644


D.驗證登陸
 ssh [email protected] #不用輸入密碼直接登陸兩臺slave上
 ssh [email protected]    
 ssh [email protected]    
 ssh [email protected]    
四、安裝Hadoop並將配置完整複製到slave機器上
1.下載:http://www.apache.org/dist/hadoop/core/hadoop-1.2.0/
 tar zxvf hadoop-1.2.0.tar.gz
 mv hadoop-1.2.0 /usr/local/hadoop
2.更改
 vi /etc/profile
 HADOOP_HOME=/usr/local/hadoop
 PATH=$PATH:$HADOOP_HOME/bin
 export HADOOP_HOME
 source /etc/profile #生效變量
 chown -R hadoop.hadoop /usr/local/hadoop #設置hadoop所屬用戶
五、修改集羣配置(hadoop/conf)
1.配置masters和slaves主從節點
vi master:去掉localhost,加入master機器的IP:192.168.0.202
vi slaves:去掉localhost,加入slave所有機器的IP:192.168.0.203 192.168.0.204
2.vi hadoop-env.sh
1export JAVA_HOME=/usr/local/jdk #去掉註釋,修改jdk路徑
3.vi core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.0.202:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>60</value>
</property>
<property>  
<name>fs.trash.interval</name>  
<value>1440</value>  
</property>
</configuration>
參數說明:
fs.default.name: 主節點名字和端口
hadoop.tmp.dir:存放master臨時文件,需要手動創建,以後不能刪除,不過如果刪除了NameNode機器的此目

錄,那麼就需要重新執行NameNode格式化的命令。
fs.checkpoint.period: snn檢查nn日誌的時間週期,這裏是60秒,生產環境建議12小時
4.vi mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.0.202:9001</value>
</property>
</configuration>
參數說明:
mapred.job.tracker:master的主機(或者IP)和端口
5.vi hdfs-site.xml
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/hdfs/data1,/usr/local/hadoop/hdfs/data2</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/name1,/usr/local/hadoop/name2</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
參數說明:
dfs.data.dir:DataNode存放塊數據的本地文件系統路徑
dfs.name.dir:NameNode持久存儲名字空間及事務日誌的本地文件系統路徑。 當這個值是一個逗號分割的目錄

列表時,nametable數據將會被複制到所有目錄中做冗餘備份。
dfs.replication:數據需要備份的數量,默認是3,如果此數大於集羣的機器數會出錯。
注意:
此處的name1、name2、data1、data2目錄不能預先創建,hadoop格式化時會自動創建,如果預先創建反而會有

問題。
配置結束,使用scp命令把配置好的hadoop文件夾拷貝到其他集羣的機器中,並且保證上面的配置對於其他機

器而言正確,例如:如果其他機器的Java安裝路徑不一樣,要修改conf/hadoop-env.sh
1    scp -r /usr/local/hadoop/ root@slave1/2.com:/usr/local/hadoop
六、啓動hadoop
1.先格式化一個新的分佈式文件系統(hadoop namenode -format)

2.啓動hadoop節點(start-all.sh)


執行完後可以到master機器上

到/usr/local/hadoop/hdfs/data1、/usr/local/hadoop/hdfs/data2、/usr/local/hadoop/name1

和/usr/local/hadoop/name2四個目錄。在主節點master上面啓動hadoop,主節點會啓動所有從節點的hadoop


3.關閉hadoop節點
stop-all.sh
主節點關閉hadoop,主節點會關閉所有從節點的hadoop。Hadoop守護進程的日誌寫入到logs下。
七、測試
1.查看端口是否開啓
netstat -tupln | grep 9000
netstat -tupln | grep 9001
2.訪問master(NameNode)和slave(JobTracker)啓動是否正常http://192.168.0.202:50070和50030


3.jps查看守護進程是否運行
master顯示:Job Tracker JpsSecondaryNameNod NameNode
slave顯示:DataNode Jps TaskTracker
4.查看集羣狀態統計信息(hadoop dfsadmin -report)
master和slave輸入信息:

八、常用命令
hadoop dfs -ls #列出HDFS下文件
hadoop dfs -ls in #列出HDFS下某個文檔中的文件
hadoop dfs -put test.txt test #上傳文件到指定目錄並且重新命名,只有所有的DataNode都接收完數據才

算成功
hadoop dfs -get in getin #從HDFS獲取文件並且重新命名爲getin,同put一樣可操作文件也可操作目錄
hadoop dfs -rmr out #刪除HDFS上的out目錄
hadoop dfs -cat in/* #查看HDFS上in目錄的內容
hadoop dfsadmin -safemode leave #退出安全模式
hadoop dfsadmin -safemode enter #進入安全模式
九、添加一個新的節點
1.在新加的節點上安裝hadoop,
2.修改hadoop/conf/master文件,加入 NameNode主機名,
3.在NameNode節點上修改hadoop/conf/slaves文件,加入新加節點主機名,
4.建立到新加節點無密碼的SSH連接
5.運行啓動命令:start-all.sh
6.http://master.node:50070,查看新增加的DataNode

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