基於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資料夾)刪了,重新來