搜尋此網誌

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

然後再重新反覆檢查是否能免密碼登入

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>


啟動 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

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 -





缺少 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


2016年12月19日 星期一

改變 MATE UBUNTU 開機自動登入的帳號

編輯
sudo nano /etc/lightdm/lightdm.conf

會看到以下,改變 autologin-user
[SeatDefaults] greeter-session=lightdm-gtk-greeter user-session=mate autologin-user=username


2016年12月13日 星期二

BananaPI M2Ultra 香蕉派跑 MongoDB

四年前好奇香蕉派與樹莓派有什麼差異,就買了一張來玩玩看。當時單核心CPU的樹莓已經很轟動了,就試試看標榜雙核CPU的香蕉吧。結果一次就喜歡上了,雖然經過幾年下來,也是有買 RASPBERRY PI 3 MODEL B 來用。

可是最近要測試 MongoDB , 就發現 RAM 不太夠用了。最近看到香蕉派M2Ultra這款有2GB的RAM,且還內建8GB 的 eMMC flash,就上掏寶下單了。後來測試MongoDB的心得,效能還真的很不錯。打算再買M64繼續試試看。

拆開前樣子


從紙盒拆開的樣子


拿出壓克力

拿出香蕉派 M2U

組合好的樣子

為了接上 SSD HD, 還跑了一趟光華去買了這個 DC 接頭。


最後,
MongoDB 運行時候資料讀寫過程中,CPU 的4個核心都同時運作,實在很滿意。希望開機 IMAGE 更新可以再更快一些。

一樣很好奇播放 MP4 影片的效能,當我接上了4年前買的 INTEL SSD 之後,看到以前第一代香蕉幫我傳回來的影片,立刻播放看看,果然很順暢。

另外,因為板子上內建了8GB 的 eMMC flash,所以可以透過 dd 指令,將 image 拷入當做硬碟開機的概念。整個過程大約要17分鐘,我是將 image 先放進USB裡, 然後再從 USB 拷進 eMMC flash 的。現在不用插記憶卡也能開機,簡直跟一般電腦沒什麼兩樣了。

例如:
先用 sudo fdisk -l 找到 emmc 的裝置名稱,通常是 /dev/mmcblk1
接下來將 image 燒錄至 emmc 裡面:

sudo dd if=ubuntu-mate-15.10-desktop-armhf-raspberry-pi-2-bpi-m3-sd-emmc-20151203.img of=/dev/mmcblk1 bs=10MB
(參考這裡 http://droidspa.blogspot.tw/search/label/Banana%20PI

至於一開始的記憶卡,我推薦購買 U3 規格的 16GB 卡片來用,價格帶已經讓一般人容易入手了,image 的寫入速度快了一倍以上,開機速度也加快許多。


2016年12月9日 星期五

BananaPI UBUNTU 16.04 安裝 MongoDB

先註記一下, MongoDB 最好是跑在 32bits 上
但是我還沒購買 64bits 的Banana PI,所以就先強制安裝 32bits 吧。
因此命令模式執行 mongo client 就會看到溫馨提示32bits有記憶體的限制等等。

開始:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

注意
Ubuntu 16.04 版本的方式
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Ubuntu 14.04 版本的方式
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

然後務必
apt-get update

接下來,安裝
apt-get install -y mongodb mongodb-clients mongodb-server

完成之後,確認服務狀態
service mongodb status

設定開機服務自動啟動
systemctl enable mongodb
systemctl status mongodb

- The End -

2016年12月8日 星期四

解決 SSH 登入時,認證很慢的問題

修改 SSH 設定檔 /etc/ssh/sshd_config

將  #UseDNS yes 修改為  UseDNS no

或自行添加 UseDNS no 這一行

搜尋此網誌