1. 程式人生 > >基於docker搭建hadoop偽分散式環境時遇到的坑

基於docker搭建hadoop偽分散式環境時遇到的坑

最近課堂作業需要使用hadoop環境,正好前段時間學了一下docker教程的用法,而自己又只有一臺電腦,所以就趁著這次機會學習下怎麼利用docker搭建偽分散式的hadoop環境。
我主要時參考這篇博主的教程,教程很好,跟著這個教程大部分都是很順利的,但是加上自己docker的使用也不太熟練,配置過程中難免遇到一些問題,所以就用這篇部落格記錄一下。

啟動動並掛載本地目錄

docker run -it -v e:/docker:/cjn williamyeh/java8:latest bash
apt-get update 拿到個新的linux環境,先更新一下apt-get源

下載程式和工具

利用清華的源,速度更快一點

nano的使用

nano的編輯介面都有功能鍵提示其中 “^”代表ctrl,” M”代表alt, Enter是確定

再次進入已經啟動的docker容器

docker exec -it 6d0 bash
要是這個容器建立的時候管理過本地資料夾,那麼就可以這樣直接進去容器,不用再關聯資料夾和其他設定

修改配置檔案並使其生效,這個原部落格裡沒寫。

修改~/.bashrc檔案。輸入nano ~/.bashrc在檔案末尾加入下面配置資訊:
修改完之後 source ~/.bashrc 使配置檔案生效

我是把最後裝好的環境提交成hadoop:v2映象了

啟動master容器,並設定埠對映

docker run -ti -v e:/docker/hadoop/master:/cjn -p 50070:50070 -p 50030:50030 -p 8080:8080 -h master –name master hadoop:complete2

啟動slave1容器

docker run -ti -v e:/docker/hadoop/slave1:/cjn -h slave1 hadoop:complete2

啟動slave2容器

docker run -ti -v e:/docker/hadoop/slave2:/cjn -h slave2 hadoop:complete2

啟動hadoop時出現SSH 出現 The authenticity of host xxx can’t be established.

記得把master的容器也提升為映象

免密碼ssh設定,不要忘了

啟動hadoop

執行start-dfs.sh 啟動dataNode
然後執行start-yarn.sh 啟動NodeManager

格式化的問題、很容易出錯

格式化只能搞一次,否則要把相關檔案(master節點的datanode和namenode資料夾)刪了,重新來

在hadoop裡執行寫好的一個經典的例子wordcount.java的整個過程