hadoop偽分佈模式配置
阿新 • • 發佈:2019-08-09
1. 偽分佈配置
實驗條件:1臺ubuntu伺服器,jdk版本1.8.X,Hadoop 版本1.2.X
1.1 ssh localohost
如果不輸入口令就無法用ssh登陸localhost,即ssh免密登陸,則執行下面的命令,產生公私鑰對,
將私鑰放入authorized_keys
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
坑1 ssh埠不對
ssh預設埠是22,但是伺服器往往基於安全考慮會修改預設埠,這裡要注意,如果修改了ssh埠,
則需要修改預設埠,或者再加一個ssh埠
ps:跟另一個伺服器管理員互相該埠和配置檔案
1.2 配置/cong/core-site.xml
- 設定hdfs的tmp目錄,hadoop會預設把data和name目錄放在tmp中
- hdfs預設埠號地址,臨時檔案存放目錄資訊
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration>
1.3 配置/cong/hdfs-site.xml
設定hdfs的節點個數和資訊,包括hdfs的節點路徑、資料路徑!
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
坑2 hdfs-site.xml中手動設定namenode和datanode的路徑和檔案
錯誤示範
如此設定後我碰到的錯誤是:hadoop namenode -format 無效,報錯NameNode is not formatted.
啟動hdfs後,namenode無法啟動,因為我這個版本目前無需手動設定namenode和datanode路徑。
1.4 /cong/mapred-site.xml
設定jobtracker的地址和埠號!
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
2. 驗證偽分散式開發環境是否搭建成功
2.1 格式化hadoop的namenode
$HADOOP_HOME/bin/hadoop namenode -format
2.2 啟動服務
$HADOOP_HOME//bin/start-all.sh
2.3 用 jps 命令看啟動情況
2.3.1 如果NameNode和DataNode程序未啟動
到hadoop的logs目錄檢視日誌,檢視未啟動程序的相應日誌,如hadoop-username-namenode-XXXXXXX.log,
根據最近的未啟動報錯查詢原因。
- 如果報錯是NameNode is not formatted.,則嘗試檢視start-all.sh前是否執行了format ,如果沒有,則先結束服務
(見2.4),然後刪除且重建$HADOOP_HOME/tmp,接著執行format,再啟動服務(見2.2)試試。如果執行了format,
則進入下一步。 - 如果出現1中的錯誤,且執行過format,則嘗試檢視cong檔案中的hdfs-site.xml的配置是否合適,參考1.3中的坑2
- DataNode等的日誌報錯也是同樣的處理思路。
2.4 結束服務
$HADOOP_HOME//bin/stop-all.sh
參考
給我帶來幫助,同時也引入坑的參考:
https://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html
https://blog.csdn.net/henni_719/article/details/77732815
https://www.cnblogs.com/hopelee/p/7049819.h