Category Archives: Hadoop

[Hadoop]Hadoop啟動後沒有Datanode問題

最近遇到啟動Hadoop後,完全沒有Live Nodes的問題

找了半天才發現是namespace的問題

在conf/core-site.xml中的hadoop.tmp.dir是存放dfs的地方,若重複下hadoop namenode -format之後,可以從datanode的log中發現namespaceID不同

有幾個解決方法

1.HDFS沒東西的話,就把hadoop.tmp.dir設定裡所產生的資料夾砍掉,再重新下hadoop namenode -format

2.修改每台datanode的namespaceID ( {hadoop.tmp.dir}/dfs/data/current/VERSION ) 然後重新啟動 datanode

3.或者改namenode的namespaceID ( {hadoop.tmp.dir}/dfs/data/current/VERSION ) 然後重新啟動 namenode

Continue Reading

[Hadoop]Name node is in safe mode

以正常情況來說,啟動Hadoop後會停留在safe mode幾秒中!

(所謂的safe mode是指等待各節點傳送狀態資料到主節點時HDFS的唯讀模式)

最近遇到因為不正常的關閉Hadoop,節點出現錯誤,導致name node一直停留在safe mode

這時只好下指令強迫離開safe mode

bin/hadoop dfsadmin -safemode leave

leave 可以替換成以下

enter-進入安全模式 get-返回安全模式是否開啟的訊息 wait-一直等到安全模式結束 leave-離開安全模式

Continue Reading

[Hadoop]Java access HBase

編譯及執行方式請依照Hadoop編譯執行方式來操作

CreateTable(執行時需傳入tablename及至少一個的column family參數)

GetColumn(執行時傳入tablename、rowkey、family、column)

ScanColumn(執行時傳入tablename、family、column)

PutData(執行時傳入tablename、rowkey、family、column、value)

DropTable(執行時輸入tablename)

Continue Reading

[Hadoop]Hadoop及HBase程式編譯與執行

編譯:

若單純只是存取到HDFS,編譯時只需要用到hadoop的jar檔

存取HBase的程式則需要用到HBase的jar檔

(注意:若沒使用commons-cli-1.2.jar會出現cannot access org.apache.commons.cli.Options的錯誤)

封裝:

將class檔封裝成jar檔

將Test.class封裝成Test.jar

將MyJava資料夾封裝jar,注意最後有一個點,代表jar檔放到原路徑

執行:

(在Hadoop目錄底下)

Continue Reading

[Hadoop]HBase 編譯環境設定

在編譯存取HBase的Java程式之前,需先將HBase的部份檔案複製到Hadoop的lib才能順利編譯

將hbase-*.jar、zookeeper-3.2.2.jar、hbase-0.20.6-transactional.jar三個jar檔複製到hadoop/lib之中

接著重啟Hbase 及 Hadoop

Continue Reading

[Hadoop]HBase shell 簡易範例

學號 姓名 國文 英文 數學 s96113106 Ball 30 40 50 s96113107 Tom 60 70 80 s96111234 EQ 90 95 100

HBase建立如上資料表,

其他應用

最後結果圖解: Row Key Time Stamp name scores Chinese English Math s96113106 t1 Ball s96113106 t2 30 s96113106 t3 40 s96113106 t4 50 s96113107 t5 Tom s96113107 t6 60 s96113107 t7 70 s96113107 t8 …

Continue Reading

[Hadoop]編譯失敗問題

javac -classpath hadoop-*-core.jar -d MyJava WordCount.java

如果在編譯時出現

symbol  : variable FileOutputFormat

等等一些錯誤訊息

將 hadoop-*-core.jar 改成有版本編號的即可(此jar檔在hadoop資料夾內)

ex:hadoop-0.20.2-core.jar

Continue Reading

[Hadoop]HBase + Thrift + PHP

(需先安裝apache及php)

安裝需要使用到的套件:

編譯與安裝thrift:

產生出可以存取hbase的php

以上若動作都確實完成,可以看到已經產生出一個資料夾: gen-php/Hbase/ 並且包含兩個php檔案,此兩個php檔可以幫助你存取hbase,不過此 php 檔還是需要其他檔案當函式庫

使用 jps 檢查hadoop 與 hbase 是否正常運作中

正常狀況下會出現這些process:

啟動 hbase 的 thrift daemon

複製 thrift 的php 專案到apache:

編輯 DemoClient.php

修改以下兩段

成功的話打開瀏覽器連http://localhost/hbase/DemoClient.php就可以看到內容了

Continue Reading