1. Install JDK
如果安裝後,在~/.bashrc下加入了Java_Home & PATH後
即使 source ~/.bashrc後,java路徑仍是舊的路徑時,應該使用
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_51/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.8.0_51/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.8.0_51/bin/javaws" 1
sudo update-alternatives --set java /usr/local/java/jdk1.8.0_51/bin/java
sudo update-alternatives --set javac /usr/local/java/jdk1.8.0_51/bin/javac
sudo update-alternatives --set javaws /usr/local/java/jdk1.8.0_51/bin/javaws
2. SSH issue一般來說 在 Ubuntu 是用指令
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
但是在 CentOS 雖然上面指令可以執行,但實際卻無法 work, ssh登入別台仍需password
應改為使用 ssh-copy-id hadooop@yourhostname
該指令一樣會將 public key 寫入一個自動新增的 authorized_key 檔案
3.即使整個 HDFS Conf 都設置無誤後,在 start-dfs.sh 及 start-yarn.sh 後
雖然 每台的 service 均有啟動(使用 jps monitor),但卻發生 datanode can't connect server(NameNode)
首先在 NameNode使用 指令
netstat -ntulp | grep java
確定 Hadoop 的 IPC service 是否有啟動,一般預設為9000 or 8020(Cloudera),請觀察你的 core-site.xml
此時 binding 的 IP 應該為 yourIP 而不是 0.0.0.0. or 127.0.0.1
如果確定 服務是有啟動的且IP為真實的IP,則很有可能是firewall的問題,
因為 CentOS Linux 預設 firewall 是啟動的 ,請下指令試著將 firewall 關閉
service iptables stop
PS:使用 hdfs put file 至 DataNode時,DataNode的 firewall 也需關掉
如果每次都要改覺得麻煩的話,請至
vi /etc/rc.d/rc.local
新增 service iptables stop
#此設定會在開機時去關閉firewall
當然 更好的做法是,你會設定firewall ,讓 hdfs 彼此溝通的 port 可以 pass就好
PS:使用 hdfs put file 至 DataNode時,DataNode的 firewall 也需關掉
如果每次都要改覺得麻煩的話,請至
vi /etc/rc.d/rc.local
新增 service iptables stop
#此設定會在開機時去關閉firewall
當然 更好的做法是,你會設定firewall ,讓 hdfs 彼此溝通的 port 可以 pass就好
如此一來,NameNode在 http://yourIP:50070 應該可以Monitor到你的 DataNode 了
沒有留言:
張貼留言