搜尋此網誌
2016年12月30日 星期五
編譯 WordCount 遭遇到 JAVA 問題時
當 編譯 WordCount 時,一開始我們需要去修改 bashrc 環境
但是 JRE 環境是不能編譯的,會遭遇到 JAVA 錯誤。
由於我是安裝 OPENJDK 而非 ORACLE 的 JDK,
所以環境變數應該寫成這樣子:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-2.b15.el7_3.x86_64
2016年12月22日 星期四
利用 ssh-add 重新建立 ssh 免密碼登入
安裝 HADOOP 或者 SPARK 時候,都會需要建立 ssh 免密碼登入
但是當有時候改變了 hostname 主機之後,會發現需要重新打 keys
但有時候會發生 打完 keys 了,卻還不能夠成功 ssh 免密碼登入
這時候在 master 上利用以下指令
ssh-add
然後再重新反覆檢查是否能免密碼登入
但是當有時候改變了 hostname 主機之後,會發現需要重新打 keys
但有時候會發生 打完 keys 了,卻還不能夠成功 ssh 免密碼登入
這時候在 master 上利用以下指令
ssh-add
然後再重新反覆檢查是否能免密碼登入
2016年12月21日 星期三
啟動 Hadoop 之後Nodes of cluster 網頁卻沒有顯示任何 nodes
原因出在於 master 的主機上, /usr/local/hadoop/etc/hadoop/yarn-site.xml 內容
應該要出現以下完整內容才對:
確認好 master 的 yarn-site.xml 都複製到 data1, data2, data3 再重新啟動 YARN 。
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</n$
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
應該要出現以下完整內容才對:
確認好 master 的 yarn-site.xml 都複製到 data1, data2, data3 再重新啟動 YARN 。
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</n$
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
啟動 Hadoop 之後 Datanode 網頁卻沒有顯示任何 datanode 主機
原因出在於 master 的主機上,/usr/local/hadoop/etc/hadoop/core-site.xml 內容
應該寫 hdfs://master:9000 才對,而不是 hdfs://localhost:9000
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
存檔好之後,從 master 主機上以 start-dfs.sh 啟動 HDFS
然後以 netstat -nap | grep 9000 指令檢查,應該出現以下範例:
呈現出其他的 datanode 主機與 master 之間連線狀態
tcp 0 0 192.168.101.220:9000 0.0.0.0:* LISTEN 9563/java
tcp 0 0 192.168.101.220:9000 192.168.101.222:58906 ESTABLISHED 9563/java
tcp 0 0 192.168.101.220:9000 192.168.101.223:44318 ESTABLISHED 9563/java
tcp 0 0 192.168.101.220:9000 192.168.101.221:38566 ESTABLISHED 9563/java
tcp 0 0 192.168.101.220:40798 192.168.101.220:9000 TIME_WAIT -
回到 http://localhost:50070 網頁上,Datanode Information 會成功列出現有的 Datanode information
應該寫 hdfs://master:9000 才對,而不是 hdfs://localhost:9000
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
存檔好之後,從 master 主機上以 start-dfs.sh 啟動 HDFS
然後以 netstat -nap | grep 9000 指令檢查,應該出現以下範例:
呈現出其他的 datanode 主機與 master 之間連線狀態
tcp 0 0 192.168.101.220:9000 0.0.0.0:* LISTEN 9563/java
tcp 0 0 192.168.101.220:9000 192.168.101.222:58906 ESTABLISHED 9563/java
tcp 0 0 192.168.101.220:9000 192.168.101.223:44318 ESTABLISHED 9563/java
tcp 0 0 192.168.101.220:9000 192.168.101.221:38566 ESTABLISHED 9563/java
tcp 0 0 192.168.101.220:40798 192.168.101.220:9000 TIME_WAIT -
回到 http://localhost:50070 網頁上,Datanode Information 會成功列出現有的 Datanode information
Hadoop在主機重開機後,解決 namenode 無法啟動的問題
只要每次重開機後,執行 start-dfs.sh 啟動 Hadoop 服務,以 jps 去檢查時,會看不到Namenode,
這時可能的原因是沒在 core-site.xml 中設定 hadoop.tmp.dir。
解決方法是
先建立 hadoop 帳號下一個臨時資料匣,例如:
/home/hadoop/hadoop_tmp
在 /usr/local/hadoop/etc/hadoop/core-site.xml 中設定 hadoop.tmp.dir 來指定Hadoop的暫存資料夾:
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop_tmp</value>
</property>
設定完成後,再執行hadoop namenode -format,
下次重新啟動後,再啟動DFS後,Namenode就會正常啟動。
如果要馬上驗證,可以下 start-dfs.sh 之後,以 jps 去檢查。
例如看到:
7734 Jps
6584 SecondaryNameNode
7404 ResourceManager
6237 NameNode
- The End -
這時可能的原因是沒在 core-site.xml 中設定 hadoop.tmp.dir。
解決方法是
先建立 hadoop 帳號下一個臨時資料匣,例如:
/home/hadoop/hadoop_tmp
在 /usr/local/hadoop/etc/hadoop/core-site.xml 中設定 hadoop.tmp.dir 來指定Hadoop的暫存資料夾:
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop_tmp</value>
</property>
設定完成後,再執行hadoop namenode -format,
下次重新啟動後,再啟動DFS後,Namenode就會正常啟動。
如果要馬上驗證,可以下 start-dfs.sh 之後,以 jps 去檢查。
例如看到:
7734 Jps
6584 SecondaryNameNode
7404 ResourceManager
6237 NameNode
- The End -
缺少 JPS - Java Virtual Machine Process Status Tool 時
缺少 Java Virtual Machine Process Status Tool 這個 jps 工具時候,
只要安裝 jdk 開發工具就可以了。
yum install java-x.x.x-openjdk-devel.x86_64
只要安裝 jdk 開發工具就可以了。
yum install java-x.x.x-openjdk-devel.x86_64
訂閱:
文章 (Atom)