總網頁瀏覽量

2013年7月17日 星期三

安裝HBase

版本問題:
"據說"跟hadoop1.1.2匹配的是hbase0.95.0,hadoop1.0.?與hbase0.94.7匹配
一切依照下載後的hbase lib目錄下的hadoop-core-x.x.x.jar版本編號

依照過去安裝NS2+MOVE+SUMO經驗
最好還是別總是用最新版本的系統
否則會有不相容的問題

1.下載hbase-0.96.cdh4.3.0版本(配合hadoop 2.0.0 cdh 4.30)
2.解壓縮
3.設定hbase.site.xml
4.(依照白皮書所做)
修改/etc/security/limits.conf
增加
hadoop(使用者帳號)   -   nofile 32768

在/etc/pam.d/common-session
最後一行增加
session required pam_limits.so




孜孜科(待續



在Hbase無法啟動並警告說無法找到安裝的java時候
編輯conf/hbase-env.sh檔案,刪除JAVA_HOME這行註解符號
並將此行所指定的Java路徑修改為你所安裝的java路徑

Error:JAVA_HOME is not set and java could not be found


啟動hbase之後查看master node log

INFO org.apache.hadoop.hbase.catalog.CatalogTracker: Failed verification of .META.,,1 at address=.......................................; org.apache.hadoop.hbase.NotServingRegionException:


主要是因為conf/hdfs-site.xml裡面的xceivers至少要4096
我寫1024這樣是不夠的

2013年7月2日 星期二

eclipse啟動DHFS

4.从CMD进入到src\contrib\eclipse-plugin目录,执行以下命令:eclipse.home=D:/eclipse/需要指定你eclipse的安装目录version=0.20.2-cdh3u3 是你的hadoop版本 ant -Declipse.home=D:/eclipse/ -Dversion=0.20.2-cdh3u3 jar 会在build\contrib\eclipse-plugin生成jar文件,但这时还不可以用。否则会出现错误: An internal error occurred during: "Map/Reduce location status updater". org/codehaus/jackson/map/JsonMappingException An internal error occurred during: "Connecting to DFS myhadoop". org/apache/hadoop/thirdparty/guava/common/collect/LinkedListMultimap 5.还要从{hadoop根目录}/lib下,找到jackson-core-asl-1.5.2.jar,jackson-mapper-asl-1.5.2.jar,guava-r09-jarjar.jar把他们都解压出来放入刚生成的hadoop-eclipse-plugin-0.20.2-cdh3u3.jar classes目录下(可以通过winrar直接拖进去) 6.最后,把hadoop-eclipse-plugin-0.20.2-cdh3u3.jar放进eclipse的dropin目录,重启eclipse就可以了。 PS:本来想把这些包拷贝进lib目录下,然后改MANIFEST.MF,发现打死不可以。。不知道为什么 Filed under: Hadoop, Java Tagged: CDH3u3, eclipse

hadoop eclipse plugin 1.1.2

據說舊版的(0.x.x)hadoop有附送eclise-plugin.jar
不過從1.X.X板之後就沒了
每個eclipse不一定跟hadoop相容
所以開發者就自己必須更改相關參數自建jar啦

hadoop(1.1.2)的eclipse-plugin放在hadoop家目錄下的src/contrib/路徑中
如果直接將eclipse-plugin資料夾複製到eclipse的plugin之下
eclipse仍然不能使用hadoop外掛套件



首先確認ubuntu已經安裝ant
本人很懶
所以直接用
sudo apt-get install ant
安裝ant

設定過程請參閱
中國blog


之後
進入haoop/src/contrib/eclipse-plugin目錄打上ant

最後在hadoop/build/contib/eclipse-plugin目錄生會看到打包好的hadoop-eclipse-plugin-1.1.2.jar

將這個檔案丟到eclipse的plugins資料夾裡即可


打開eclipse之後,卻出現Unsupported major.minor version 51.0錯誤
點開log訊息意思是說
有些jar是用jdk1.6.0_27編譯而成
有些是用jdk1.7.25編譯而成

查看eclipse-plugin-1.1.2.jar包裡面所有的MANIFEST.MF文件
裡面有些jar採用jdk1.5 jdk1.4編譯而成
沒道理jdk1.5 jdk1.4沒有出現錯誤訊息
而jdk1.6卻給我出現錯誤訊息
所以我猜應該不是eclipse採用的jdk版本與ubuntu系統採用jdk版本不一樣


後來發現
用root帳號打上java -version
root採用的是ubuntu內建的openjdk(版本是1.6.0_27)
版本號碼跟eclipse出現的error log完全一樣
所以我猜應該是
在利用ant打包時候某個時段採用了以root身分採用內建的1.6.0_27打包jar
root跟使用者帳號採用的jdk版本不一樣,編譯出來的jar不被eclipse接納

解決方法:
用root帳號在terminal打上update-alternatives --config java
出現以下畫面


選擇自己安裝的jdk




最後再次使用ant打包eclipse-plugin
(以hadoop帳號執行)


終於,
千呼萬喚始出來......................






Eclipse Juno Alt+/(Alt 反斜線 ) 失靈

去window→Preference
點選general
點選keys
尋找content asist
把content asist項目改成alt + /  (原本預設是空白建+ctrl)
  在下面有一個項目when,選擇editing  text。


這裡是設定一堆快捷鍵的地方

/eclipse/jre/bin/java java in your current PATH問題解決方式


$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk7/bin/java" 1
$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk7/bin/javac" 1
$ sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk7/bin/javaws" 1

那麼會將將/usr/lib/jvm/jdk7/bin/之下的java,javac,javaws
在usr/bin/之下建立的捷徑

2013年7月1日 星期一

跑MapReduce測試Hadoop

使用 Hadoop 內建的 WordCount 程式來跑看看 Hadoop 的 Map/Reduece。


在hadoop home目錄之下建立wordcount_folder
 mkdir wordcount_folder

進入wordcount_folder
cd wordcount_folder/

建立檔案input_file1,input_file2並輸入文字
echo "hello world" >> input_file1
echo "8181 hadoop" >> input_file2
(我這裡登入root才能建立文字檔案)

 回 hadoop 主目錄,輸入 $bin/hadoop dfs -put ./wordcount_folder input 指令,將剛剛建立的兩個文字檔當作 Map/Reduce 的輸入檔案,此指令是將檔案放到HDFS上。
 bin/hadoop dfs -put ./wordcount_folder input
(這邊用root帳號無法操做,必須回到hadoop帳號,因為我將檔案放在根目錄之下)

使用 hadoop-examples-1.1.2.jar 的wordcount method 來計算輸入檔案的內的每一個字的出現次數
 bin/hadoop jar hadoop-examples-1.1.2.jar wordcount input output




打開Browser進入Hadoop管理介面
查看執行結果


VirtualBox 既有虛擬硬碟vdi,創造新的虛擬機器 &網路設定

切記不可以直接複製vdi
否則會因為uuid相同而衝到

必須利用VBoxManage.exe這個工具複製vdi
才可以,因為會自動更新uuid
VBoxManage.exe放在
    "c:\Program Files\Oracle\VirtualBox\VBoxManage.exe"


1.
打開cmd
去VirtualBox資料夾底下
在cmd螢幕上打
    VBoxManage.exe  clonevdi <既有的vdi檔案路徑>  <新的vdi檔案路徑>

2.使用VirtualBox選擇新增,將vdi掛載進去
  新增時,切記選使用已存在的硬碟檔案,
否則系統會產生新的vdi檔案,就必須重灌系統



如果更新網卡IP後
仍然無法對外連線
出現network is unreachable
那麼
sudo su
rm /etc/udev/rules.d/70-persistent-net.rules
reboot

因為新的VM的MAC跟舊的一樣
如果只更動網卡IP
則70-persistent-net.rules裡面資料仍是舊的