【发布时间】:2017-04-28 06:16:45
【问题描述】:
我编写 Scala 代码如下:
44 val config: Configuration = HBaseConfiguration.create()
45 config.set("hbase.zookeeper.property.clientPort", zooKeeperClientPort)
46 config.set("hbase.zookeeper.quorum", zooKeeperQuorum)
47 config.set("zookeeper.znode.parent", zooKeeperZNodeParent)
48 config.set("hbase.master", hbaseMaster)
49 config.addResource("hbase-site.xml")
50 config.addResource("hdfs-site.xml")
51 HBaseAdmin.checkHBaseAvailable(config);
52 val admin: HBaseAdmin = new HBaseAdmin(config)
53 // descriptor.addColumn(new HColumnDescriptor(Bytes.toBytes("cfbfeature")))
54 val conn = ConnectionFactory.createConnection(config)
55 table = conn.getTable(TableName.valueOf(outputTable))
这是我的完整错误日志:
zooKeeperClientPort:2181, zooKeeperQuorum:zk1.hbase.busdev.usw2.cmcm.com,zk2.hbase.busdev.usw2.cmcm.com,zk3.hbase.busdev.usw2.cmcm.com,zooKeeperZNodeParent:/hbase, outputTable:RequestFeature, hbaseMaster:10.2.2.62:60000 16/12/13 08:25:56 WARN util.HeapMemorySizeUtil:hbase.regionserver.global.memstore.upperLimit 已被 hbase.regionserver.global.memstore.size 弃用 16/12/13 08:25:56 WARN util.HeapMemorySizeUtil:hbase.regionserver.global.memstore.upperLimit 已被 hbase.regionserver.global.memstore.size 弃用 16/12/13 08:25:56 WARN util.HeapMemorySizeUtil:hbase.regionserver.global.memstore.upperLimit 已被 hbase.regionserver.global.memstore.size 弃用 16/12/13 08:25:57 INFO zookeeper.RecoverableZooKeeper:进程标识符=hconnection-0x6ae9e162 连接到 ZooKeeper ensemble=zk2.hbase.busdev.usw2.cmcm.com:2181,zk1.hbase.busdev.usw2.cmcm。 com:2181,zk3.hbase.busdev.usw2.cmcm.com:2181 16/12/13 08:25:57 WARN util.HeapMemorySizeUtil:hbase.regionserver.global.memstore.upperLimit 已被 hbase.regionserver.global.memstore.size 弃用 16/12/13 08:25:57 WARN util.DynamicClassLoader: 无法识别 dir hdfs://mycluster/hbase/lib 的 fs,忽略 java.net.UnknownHostException:未知主机:mycluster 在 org.apache.hadoop.ipc.Client$Connection.(Client.java:214) 在 org.apache.hadoop.ipc.Client.getConnection(Client.java:1196) 在 org.apache.hadoop.ipc.Client.call(Client.java:1050) 在 org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225) 在 com.sun.proxy.$Proxy3.getProtocolVersion(未知来源) 在 org.apache.hadoop.ipc.RPC.getProxy(RPC.java:396) 在 org.apache.hadoop.ipc.RPC.getProxy(RPC.java:379) 在 org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:119) 在 org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:238) 在 org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:203) 在 org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89) 在 org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1386) 在 org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66) 在 org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1404) 在 org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254) 在 org.apache.hadoop.fs.Path.getFileSystem(Path.java:187) 在 org.apache.hadoop.hbase.util.DynamicClassLoader.(DynamicClassLoader.java:104) 在 org.apache.hadoop.hbase.protobuf.ProtobufUtil.(ProtobufUtil.java:229) 在 org.apache.hadoop.hbase.ClusterId.parseFrom(ClusterId.java:64) 在 org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:75) 在 org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:86) 在 org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.retrieveClusterId(ConnectionManager.java:833) 在 org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.(ConnectionManager.java:623) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:238) 在 org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:218) 在 org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:119) 在 org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:2508) 在 com.cmcm.datahero.streaming.actor.ToHBaseActor.preStart(ToHBaseActor.scala:51) 在 akka.actor.Actor$class.aroundPreStart(Actor.scala:472) 在 com.cmcm.datahero.streaming.actor.ToHBaseActor.aroundPreStart(ToHBaseActor.scala:16) 在 akka.actor.ActorCell.create(ActorCell.scala:580) 在 akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456) 在 akka.actor.ActorCell.systemInvoke(ActorCell.scala:478) 在 akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:263) 在 akka.dispatch.Mailbox.run(Mailbox.scala:219) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745) 16/12/13 08:25:57 INFO client.ConnectionManager$HConnectionImplementation: 关闭 zookeeper sessionid=0x356c1ee7cac04c8
【问题讨论】:
-
但是这里的“mycluster”不是主机。我对错误是什么感到非常困惑。有人可以帮助我吗?
-
您是从 Windows 连接您的集群还是在它自己的集群内连接? hmaster ip 正确吗?
-
还可以像这样签入客户端程序以验证类路径中的正确 jar
val cl = ClassLoader.getSystemClassLoader cl.asInstanceOf[java.net.URLClassLoader].getURLs.foreach(println) -
感谢您的所有帮助。我终于发现我的第三方 scala-package 版本不正确。我修好了。
-
那么请将其作为答案发布并接受为所有者。它将是指向其他人的指针