Hadoop安裝配置(入門)
概述:
本文主要記錄Hadoop-0.20.2安裝過程,包括安裝過程中的關鍵問題的解決。這里將安裝過程分為三步:
第一步,打通筋脈,也就是配置各個節點間的環境,如創建hadoop用戶和用戶組,配置節點間ssh無密碼連接;
第二步,戰略部署,部署Hadoop程序,配置環境變量,修改配置參數;
第三步,準備戰斗,也就是啟動Hadoop集群,檢查集群是否正常運行。
第一步:打通筋脈
創建hadoop用戶
后續hadoop啟動、停止等操作都使用進行,如果是測試環境需要部署多個Hadoop版本,可以通過建立多個用戶來隔離處理。
具體操作:
- groupadd MrStone //創建用戶組
- useradd -s /bin/bash -g MrStone MrStone //創建用戶
- passwd MrStone //為新創建的用戶設置密碼
- 在slave1和slave2上執行上面三步操作操作
配置master和slave間ssh無密碼互聯
master 和slave間ssh無密碼互聯是Hadoop集群正常運行的前提,因為master和slave間的一部分內部操作都是通過ssh來進行的。本文以三臺機器為例master1、slave1、slave2進行說明。master1是主節點,它主動發起ssh連接到slave1和slave2。
ssh 無密碼連接原理:slave1和slave2啟動ssh服務作為服務端,master1作為客戶端訪問slave1和slave2的服務。為了保證連接的安全性,master1需要生成一個密鑰對,也就是一個私鑰,一個公鑰。將公鑰拷貝到slave1和slave2上,這樣當master1向slave1 發起ssh連接時,slave1會生成一個隨機數,并使用公鑰進行加密,然后將加密的隨機數發送給master1,master1收到后使用私鑰進行解密,然后將解密后的隨機數發送給slave1,slave1確認解密數正確后允許master1進行連接。
具體操作:
- su MrStone //使用MrStone用戶登陸
- ssh-keygen -t rsa -f ~/.ssh/id_rsa // 創建RSA秘鑰對,在~/.ssh/目錄下會生成秘鑰id_rsa和公鑰id_rsa.pub兩個文件
- scp id_rsa.pub slave1_IP:/~/.ssh/ //這里要將slave1,替換為對應的ip,將公鑰(id_rsa.pub)拷貝到slave1和slave2上
- 登陸到slave1和slave2進行操作,mkdir ~/.ssh //在創建.ssh文件夾
- chmod 700 ~/.ssh //在slave1和slave2上操作,修改權限,這一步非常重要,如果權限太大,ssh是不會工作的
- cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys //在slave1和slave2上操作,將公鑰拷貝到~/.ssh/authorized_keys
- chmod 644 ~/.ssh/authorized_keys //在slave1和slave2上操作,修改權限,如果權限太大,ssh服務拒絕工作
- 測試 從master ssh到slave1 和slave2 檢查是否需要密碼驗證,如果成功,則配置完成
第二步:戰略部署
配置環境變量:
主要添加項有 $JAVA_HOME $HADOOP_HOME 和$HADOOP_CONF_DIR,具體如何添加我就不在此啰嗦了
部署程序包:
將hadoop程序包解壓到$HADOOP_HOME目錄下
修改配置參數:
在$HADOOP_CONF_DIR下修改對應的配置參數,主要要注意的幾項:元數據存儲地址、本地數據存儲地址、日志存儲地址
并且要保證這幾個地址的所有者為MrStone,這樣hadoop程序才能正常讀寫。
以上幾項需要保持master節點和slave節點一致
具體參數配置及說明,見參考資料
第三步:準備戰斗
啟動hdfs
啟動命令,start-dfs.sh
檢查三步式,使用jps查看是否有NameNode進程;在瀏覽器瀏覽 http://master_ip:50070;或者使用"hadoop dfsadmin -report"命令查看hdfs運行狀態;
如果有沒有發現NameNode進程,則查看日志信息(日志文件在core-site.xml中有配置)
啟動map-reduce
啟動命令,start-mapred.sh
檢查三步式,使用jps查看是否有JobTracker進程在運行;在瀏覽器查看http://master_ip:50030;
如果發現未啟動,則跟蹤JobTracker日志(日志文件地址在core-site.xml中有配置)
錯誤信息及解決辦法
參考資料:
報錯 Incompatible namespaceIDs in /home/admin/joe.wangh/hadoop/data/dfs.data.dir: namenode namespaceID = 898136669
mapred-site.xml配置參數:http://archive.cloudera.com/cdh/3/hadoop/mapred-default.html
hdfs-site.xml配置參數:http://archive.cloudera.com/cdh/3/hadoop/hdfs-default.html
core-site.xml配置參數:http://archive.cloudera.com/cdh/3/hadoop/core-default.html
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!