Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2018-10-18, 08:53

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 11 篇文章 ]  前往頁數 12  下一頁
發表人 內容
 文章主題 : 用Hadoop + Hbase 執行 jar檔
文章發表於 : 2013-11-18, 20:21 
離線

註冊時間: 2013-10-21, 20:17
文章: 12
hadoop版本:hadoop-core-0.20.205.0
hbase版本:hbase-0.90.4

這是我執行的過程:
javac -classpath .:hadoop-core-0.20.205.0.jar:hbase-0.90.4 GMER/JAR GMER/Test.java
(編成class檔)
jar -cvf Test.jar -c GMER/JAR .
(編成jar檔)
bin/hadoop jar ./Test.jar Test
(執行)
可是在執行的時候發生了下面的錯誤...

困擾很久了... 請大大幫我看一下
萬分感激!

Exception in thread "main" java.io.IOException: Error opening job jar: ./Test.jar
at org.apache.hadoop.util.RunJar.main(RunJar.java:90)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.jar.JarFile.<init>(JarFile.java:135)
at java.util.jar.JarFile.<init>(JarFile.java:72)
at org.apache.hadoop.util.RunJar.main(RunJar.java:88)


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 用Hadoop + Hbase 執行 jar檔
文章發表於 : 2013-11-19, 00:10 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
有點古怪,可以請您先確認一下 Test.jar 的內容?煩請回報執行以下指令的結果,謝謝~

代碼:
~$ file Test.jar
~$ jar tvf Test.jar


另外,是否請您先試試看不要用 ./Test.jar 而用
代碼:
hadoop jar Test.jar Test


- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 用Hadoop + Hbase 執行 jar檔
文章發表於 : 2013-11-21, 18:52 
離線

註冊時間: 2013-10-21, 20:17
文章: 12
Dear Jazz:
這是我的執行結果
有一點怪...
QQ
再請Jazz大大幫我看看 感激不盡

1.wen@master ~/hadoop-0.20.205.0 $ file Test.jar
Test.jar: Zip archive data, at least v2.0 to extract


2.wen@master ~/hadoop-0.20.205.0 $ jar tvf Test.jar
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.zip.ZipFile.<init>(ZipFile.java:88)
at sun.tools.jar.Main.list(Main.java:977)
at sun.tools.jar.Main.run(Main.java:222)
at sun.tools.jar.Main.main(Main.java:1147)


3.wen@master ~/hadoop-0.20.205.0 $ bin/hadoop jar Test.jar Test
Exception in thread "main" java.io.IOException: Error opening job jar: Test.jar
at org.apache.hadoop.util.RunJar.main(RunJar.java:90)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.jar.JarFile.<init>(JarFile.java:135)
at java.util.jar.JarFile.<init>(JarFile.java:72)
at org.apache.hadoop.util.RunJar.main(RunJar.java:88)


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 用Hadoop + Hbase 執行 jar檔
文章發表於 : 2013-11-21, 21:22 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
date1379 寫:
2.wen@master ~/hadoop-0.20.205.0 $ jar tvf Test.jar
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.zip.ZipFile.<init>(ZipFile.java:88)
at sun.tools.jar.Main.list(Main.java:977)
at sun.tools.jar.Main.run(Main.java:222)
at sun.tools.jar.Main.main(Main.java:1147)


這也太神奇了點,怎麼連 jar 都顯示無法 open 哩?
檔案權限不正確嘛?

代碼:
ls -al Test.jar


- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 用Hadoop + Hbase 執行 jar檔
文章發表於 : 2013-11-25, 09:57 
離線

註冊時間: 2013-10-21, 20:17
文章: 12
Dear Jazz:

這是我的執行結果:
wen@master ~/hadoop-0.20.205.0 $ ls -al Test.jar
-rw-r--r-- 1 wen wen 45848455 11月 18 20:00 Test.jar

可以幫我看一下嗎QQ
謝謝您


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 用Hadoop + Hbase 執行 jar檔
文章發表於 : 2013-11-25, 10:26 
離線

註冊時間: 2013-10-21, 20:17
文章: 12
Dear Jazz

我把權限打開後再執行一次的結果:
wen@master ~/hadoop-0.20.205.0 $ chmod 777 Test.jar
wen@master ~/hadoop-0.20.205.0 $ ls -al Test.jar
-rwxrwxrwx 1 wen wen 45848455 11月 18 20:00 Test.jar


1.wen@master ~/hadoop-0.20.205.0 $ file Test.jar
Test.jar: Zip archive data, at least v2.0 to extract

2.wen@master ~/hadoop-0.20.205.0 $ jar tvf Test.jar
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.zip.ZipFile.<init>(ZipFile.java:88)
at sun.tools.jar.Main.list(Main.java:977)
at sun.tools.jar.Main.run(Main.java:222)
at sun.tools.jar.Main.main(Main.java:1147)


3.wen@master ~/hadoop-0.20.205.0 $ bin/hadoop jar Test.jar Test
Exception in thread "main" java.io.IOException: Error opening job jar: Test.jar
at org.apache.hadoop.util.RunJar.main(RunJar.java:90)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.jar.JarFile.<init>(JarFile.java:135)
at java.util.jar.JarFile.<init>(JarFile.java:72)
at org.apache.hadoop.util.RunJar.main(RunJar.java:88)

有點奇怪QQ


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 用Hadoop + Hbase 執行 jar檔
文章發表於 : 2013-11-25, 16:13 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
感覺很詭異耶,請問 jar 檔是在同一台機器上產生的嘛?
若不是同一台(Ex. jar on Windows with JDK7, 在 Linux 上用 JDK6 跑),
有可能是因為 JDK 的版本問題

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 用Hadoop + Hbase 執行 jar檔
文章發表於 : 2013-11-27, 13:05 
離線

註冊時間: 2013-10-21, 20:17
文章: 12
Dear Jazz:
之前的問題好像是 jar檔包錯了
重新測試以後 依造以下步驟:
1. javac -classpath hadoop-core-0.20.205.0.jar:hbase-0.90.4.jar -d GMER/JAR GMER/*.java (編輯成class檔) java檔總共有Test.java PutData.java
2.jar -cvf Test.jar -c . (在class目錄)

編成的jar檔打開確定有 Test.class PutData.class

在hadoop 目錄下 執行:
bin/hadoop jar Test.jar Test
卻出現這樣的error:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
at Test.main(Test.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 6 more

可是進去hbase-0.90.4.jar檔找 org.apache.hadoop.hbase.HBaseConfiguration 明明有找到此class檔
在編class的時候也有把hbase-0.90.4.jar 編進去
為何還會報NoClassDefFoundError這個錯

請jazz大幫我看一下QQ
謝謝您!


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 用Hadoop + Hbase 執行 jar檔
文章發表於 : 2013-11-27, 18:18 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
hbase-0.90.4.jar 有放在 ${HADOOP_HOME}/lib 底下?

因為 Hadoop 啟動時,它的 CLASSPATH 只有找 ${HADOOP_HOME} 跟 ${HADOOP_HOME}/lib
並不包含 ${HBASE_HOME} 跟 ${HBASE_HOME}/lib

所以要跑 HBase 的 Job ,
一則是用新版語法的 GenericOptionsParser 支援的 -libjars 把 hbase-0.90.4.jar 動態加入該次 Job 的 CLASSPATH

    Generic options supported are
    -conf <configuration file> specify an application configuration file
    -D <property=value> use value for given property
    -fs <local|namenode:port> specify a namenode
    -jt <local|jobtracker:port> specify a job tracker
    -files <comma separated list of files> specify comma separated files to be copied to the map reduce cluster
    -libjars <comma separated list of jars> specify comma separated jar files to include in the classpath.
    -archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines.

第二種作法是請管理者把 hbase-0.90.4.jar 放進 ${HADOOP_HOME}/lib 底下,
然後至少重新啟動 TaskTracker 才會真正進入 TaskTracker 的 CLASSPATH。
由 TaskTracker 啟動的 Child Process 跑 mapper 跟 reducer 才會有正確的 CLASSPATH 內含 hbase-0.90.4.jar

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 用Hadoop + Hbase 執行 jar檔
文章發表於 : 2013-12-04, 11:33 
離線

註冊時間: 2013-10-21, 20:17
文章: 12
Dear jazz:
jar檔的執行已經ok了
可是為了要與php聯通所以要安裝thrift

執行步驟為:

安裝依賴:yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel
下載thrift-0.9.1 解壓放到/opt 路徑下
/opt/thrift-0.9.1/ 執行sudo ./configure
/opt/thrift-0.9.1/ 執行sudo make

可是卻出現這樣的error:
make[5]: Entering directory `/opt/thrift-0.9.1/lib/php/src/ext/thrift_protocol'
make[5]: *** No targets specified and no makefile found. Stop.
make[5]: Leaving directory `/opt/thrift-0.9.1/lib/php/src/ext/thrift_protocol'
make[4]: *** [src/ext/thrift_protocol/modules/thrift_protocol.so] Error 2
make[4]: Leaving directory `/opt/thrift-0.9.1/lib/php'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/opt/thrift-0.9.1/lib/php'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/thrift-0.9.1/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/thrift-0.9.1'
make: *** [all] Error 2

不知道jazz大大有沒有碰過 感激不盡!


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 11 篇文章 ]  前往頁數 12  下一頁

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作