2011-12-18 50 views
3

我使用apache accumulo ver 1.4.0,hadoop ver 0.20.2和zookeeper ver 3.3.3設置測試環境。請參閱下面的問題。請求Apache Accumulo錯誤幫助在測試環境中使用Hadoop和Zookeeper

Hadoop和動物園管理員工作的偉大在一起,但是當我開始accumulo使用的Apache孵化器,我得到信息的下面飼養員流的程序和一個警告:

2011-12-08 20:13:56,601 - INFO [main:[email protected]] - Reading configuration from: /home/hadoop/zookeeper-3.3.3/bin/../conf/zoo.cfg 
2011-12-08 20:13:56,603 - WARN [main:[email protected]] - Either no config or no quorum defined in config, running in standalone mode 
2011-12-08 20:13:56,616 - INFO [main:[email protected]] - Reading configuration from: /home/hadoop/zookeeper-3.3.3/bin/../conf/zoo.cfg 
2011-12-08 20:13:56,617 - INFO [main:[email protected]] - Starting server 
2011-12-08 20:13:56,626 - INFO [main:[email protected]] - Server environment:zookeeper.version=3.3.3-1073969, built on 02/23/2011 22:27 GMT 
2011-12-08 20:13:56,627 - INFO [main:[email protected]] - Server environment:host.name.paz 
2011-12-08 20:13:56,627 - INFO [main:[email protected]] - Server environment:java.version=1.6.0_26 
2011-12-08 20:13:56,628 - INFO [main:[email protected]] - Server environment:java.vendor=Sun Microsystems Inc. 
2011-12-08 20:13:56,629 - INFO [main:[email protected]] - Server environment:java.home=/usr/lib/jvm/java-6-sun-1.6.0.26/jre 
2011-12-08 20:13:56,629 - INFO [main:[email protected]] - Server environment:java.class.path=/home/hadoop/zookeeper-3.3.3/bin/../build/classes:/home/hadoop/zookeeper-3.3. 
3/bin/../build/lib/*.jar:/home/hadoop/zookeeper-3.3.3/bin/../zookeeper-3.3.3.jar:/home/hadoop/zookeeper-3.3.3/bin/../lib/log4j-1.2.15.jar:/home/hadoop/zookeeper-3.3.3/b 
in/../lib/jline-0.9.94.jar:/home/hadoop/zookeeper-3.3.3/bin/../src/java/lib/*.jar:/home/hadoop/zookeeper-3.3.3/bin/../conf: 
2011-12-08 20:13:56,630 - INFO [main:[email protected]] - Server environment:java.library.path=/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/i386/server:/usr/lib/jvm/java-6-su 
n-1.6.0.26/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib 
2011-12-08 20:13:56,630 - INFO [main:[email protected]] - Server environment:java.io.tmpdir=/tmp 
2011-12-08 20:13:56,631 - INFO [main:[email protected]] - Server environment:java.compiler=<NA> 
2011-12-08 20:13:56,631 - INFO [main:[email protected]] - Server environment:os.name=Linux 
2011-12-08 20:13:56,632 - INFO [main:[email protected]] - Server environment:os.arch=i386 
2011-12-08 20:13:56,633 - INFO [main:[email protected]] - Server environment:os.version=3.0.0-13-generic 
2011-12-08 20:13:56,633 - INFO [main:[email protected]] - Server environment:user.name=hadoop 
2011-12-08 20:13:56,634 - INFO [main:[email protected]] - Server environment:user.home=/home/hadoop 
2011-12-08 20:13:56,634 - INFO [main:[email protected]] - Server environment:user.dir=/home/hadoop 
2011-12-08 20:13:56,641 - INFO [main:[email protected]] - tickTime set to 2000 
2011-12-08 20:13:56,641 - INFO [main:[email protected]] - minSessionTimeout set to -1 
2011-12-08 20:13:56,642 - INFO [main:[email protected]] - maxSessionTimeout set to -1 
2011-12-08 20:13:56,661 - INFO [main:[email protected]] - binding to port 0.0.0.0/0.0.0.0:2181 
2011-12-08 20:13:56,691 - INFO [main:[email protected]] - Reading snapshot /home/hadoop/zoo/dataDir/version-2/snapshot.0 
2011-12-08 20:13:56,708 - INFO [main:[email protected]] - Snapshotting: 4e 
2011-12-08 20:14:52,147 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Accepted socket connection from /0:0:0:0:0:0:0:1:40694 
2011-12-08 20:14:52,153 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Client attempting to establish new session at /0:0:0:0:0:0:0:1:40694 
2011-12-08 20:14:52,154 - INFO [SyncThread:0:[email protected]] - Creating new log file: log.4f 
2011-12-08 20:14:52,410 - INFO [SyncThread:0:[email protected]] - Established session 0x13420623ee70000 with negotiated timeout 30000 for client /0:0:0:0:0:0:0:1:4069 
4 
2011-12-08 20:14:52,959 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Accepted socket connection from /127.0.0.1:38446 
2011-12-08 20:14:52,962 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Client attempting to establish new session at /127.0.0.1:38446 
2011-12-08 20:14:53,007 - INFO [SyncThread:0:[email protected]] - Established session 0x13420623ee70001 with negotiated timeout 30000 for client /127.0.0.1:38446 
2011-12-08 20:14:59,932 - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - EndOfStreamException: Unable to read additional data from client session 
id 0x13420623ee70000, likely client has closed socket 

,當我開始accumulo殼我得到以下錯誤:

18 12:44:38,746 [impl.ServerClient] WARN : Failed to find an available server in the list of servers: [] 
18 12:44:38,846 [impl.ServerClient] WARN : Failed to find an available server in the list of servers: [] 
18 12:44:38,947 [impl.ServerClient] WARN : Failed to find an available server in the list of servers: [] 
18 12:44:39,048 [impl.ServerClient] WARN : Failed to find an available server in the list of servers: [] 
18 12:44:39,148 [impl.ServerClient] WARN : Failed to find an available server in the list of servers: [] 
18 12:44:39,249 [impl.ServerClient] WARN : Failed to find an available server in the list of servers: [] 
18 12:44:39,350 [impl.ServerClient] WARN : Failed to find an available server in the list of servers: [] 
18 12:44:39,450 [impl.ServerClient] WARN : Failed to find an available server in the list of servers: [] 

回答

2

JVM允許更正tserver內存設置爲不超過waht。 Tserver不會崩潰並解決錯誤。 答案來自accumulo-incubator用戶列表,並在底部轉貼。 基本上,當進入並修改內存設置以在筆記本電腦上以僞分佈式模式運行時,我對accumulo-site.xml和accumulo-env.sh文件進行了有關平板電腦服務器內存使用情況的不正確修改。

20 18:20:00,951 [tabletserver.NativeMap] ERROR: Failed to load native 
map library 
/home/hadoop/accumulo/lib/native/map/libNativeMap-Linux-i386-32.so 
java.lang.UnsatisfiedLinkError: Can't load library: 
/home/hadoop/accumulo/lib/native/map/libNativeMap-Linux-i386-32.so 
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1706) 
at java.lang.Runtime.load0(Runtime.java:770) 
at java.lang.System.load(System.java:1003) 
at 
org.apache.accumulo.server.tabletserver.NativeMap.loadNativeLib(NativeMap.java:144) 
at 
org.apache.accumulo.server.tabletserver.NativeMap.<clinit>(NativeMap.java:156) 
at 
org.apache.accumulo.server.tabletserver.TabletServerResourceManager.<init>(TabletServerResourceManager.java:123) 
at 
org.apache.accumulo.server.tabletserver.TabletServer.config(TabletServer.java:2959) 
at 
org.apache.accumulo.server.tabletserver.TabletServer.main(TabletServer.java:3085) 
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.accumulo.start.Main$1.run(Main.java:89) 
at java.lang.Thread.run(Thread.java:662) 
20 18:20:00,999 [tabletserver.TabletServer] ERROR: Uncaught exception in 
TabletServer.main, exiting 
java.lang.IllegalArgumentException: Maximum tablet server map memory 
134,217,728 and block cache sizes 186,646,528 is too large for this JVM 
configuration 132,579,328 
at 
org.apache.accumulo.server.tabletserver.TabletServerResourceManager.<init>(TabletServerResourceManager.java:134) 
at 
org.apache.accumulo.server.tabletserver.TabletServer.config(TabletServer.java:2959) 
at 
org.apache.accumulo.server.tabletserver.TabletServer.main(TabletServer.java:3085) 
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.accumulo.start.Main$1.run(Main.java:89) 
at java.lang.Thread.run(Thread.java:662) 

具體的說明文字: 「本地庫不加載,這正在改變內存的線索誤差在/home/hadoop/accumulo/logs/tserver*.log文件被發現 映射到java工作區。添加到您的塊緩存大小,和您的內存使用規格 高於JVM將被允許分配到 。平板電腦服務器抱怨,並退出。您應該看到這些 抱怨accumulo監視網頁

您可能會發現重建本地地圖庫的好處,它將 將內存映射的分配移至JVM外部。這是不需要的 。

任何內存專用於高速緩存必須大於尺寸的JVM ,其中必須包括大量的工作空間的RPC調用 和垃圾收集隨着時間的推移更小的尺寸。」

0

如果您運行的動物園管理員客戶端(/home/hadoop/zookeeper-3.3.3/bin/zkCli.sh),做一個LS

/accumulo/<instance uuid>/tservers

我假設你不會看到列出的任何服務器。如果Accumulo已正確初始化,您應該看到列出了一個或多個平板電腦服務器。按照說明將您的Zookeeper服務器設置爲accumulo-site.xml後,您確定運行了Accumulo init script嗎?

+0

謝謝你的答覆。你是對的 - 沒有列出的服務器。我已經構建了好幾次,並且在幾個不同的Linux機器上:Ubuntu和Centos,並且仔細地遵循了指導。 accumulo目錄是在初始化後在HDFS中創建的,accumulo網頁可從localhost:50095獲取,但平板電腦服務器數始終保持爲零。有什麼建議麼。 – 2011-12-19 23:43:39

+0

我會建議發佈您的問題,並將accumulo-site.xml和日誌輸出包括到[用戶郵件列表](http://incubator.apache.org/accumulo/mailing_list.html)。開發人員非常樂於助人,且響應迅速 – Jared 2011-12-20 05:46:58

+0

謝謝Jared。我會給accumulo列表一個嘗試......我認爲這是一個動物園管理員配置錯誤,但可能是我在accumulo設置中沒有做的事情。 – 2011-12-20 18:21:10

0

確保將「instance.zookeeper.host」設置爲accumulo-site.xml文件中zookeeper節點的位置。

此外,請檢查您的tservers和記錄器的日誌。如果你有其他配置問題,他們不會上線,這將導致主人報告難以找到服務器。

0

走進$ ACCUMULO_HOME/conf目錄。結束文件的主人,奴隸和追蹤者,以包含一行讀取「本地主機」(我假設你正在做單節點)