2016-11-18 6 views
0

のEclipse ScalaプログラムからHBase databaseに接続しようとしています。Eclipseからセキュリティ保護されたクラスタで実行されているHBaseデータベースにアクセスできませんか?

クラスタはsecured using Kerberosです。したがって、Hbaseデータベースに接続していません。

jarファイルを作成してクラスタで実行するたびに、これは開発やデバッグには役立ちません。

hbase-site.xmlをクラスパスに設定するにはどうすればよいですか?

hbase-site.xml, core-site.xml and hdfs-site.xmlのファイルをsourceというフォルダに追加しようとしましたが、このファイルをプロジェクトのビルドパスから外部クラスフォルダとして追加しようとしましたが、何も動作していません。私はこれをどのように機能させるのですか?

sqlContextを使用してHortonWorksコネクタを使用してHbaseテーブルを読み取っているので、hbase-site.xmlをsqlContextに設定することはできますか。

エラーログは次のとおりです。

Exception in thread "main" java.io.IOException: java.lang.reflect.InvocationTargetException 
     at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:240) 
     at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:218) 
     at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:119) 
     at org.apache.spark.sql.execution.datasources.hbase.RegionResource.init(HBaseResources.scala:93) 
     at org.apache.spark.sql.execution.datasources.hbase.ReferencedResource$class.liftedTree1$1(HBaseResources.scala:57) 
     at org.apache.spark.sql.execution.datasources.hbase.ReferencedResource$class.acquire(HBaseResources.scala:54) 
     at org.apache.spark.sql.execution.datasources.hbase.RegionResource.acquire(HBaseResources.scala:88) 
     at org.apache.spark.sql.execution.datasources.hbase.ReferencedResource$class.releaseOnException(HBaseResources.scala:74) 
     at org.apache.spark.sql.execution.datasources.hbase.RegionResource.releaseOnException(HBaseResources.scala:88) 
     at org.apache.spark.sql.execution.datasources.hbase.RegionResource.<init>(HBaseResources.scala:108) 
     at org.apache.spark.sql.execution.datasources.hbase.HBaseTableScanRDD.getPartitions(HBaseTableScan.scala:60) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) 
     at scala.Option.getOrElse(Option.scala:120) 
     at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) 
     at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) 
     at scala.Option.getOrElse(Option.scala:120) 
     at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) 
     at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) 
     at scala.Option.getOrElse(Option.scala:120) 
     at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) 
     at org.apache.spark.sql.execution.SparkPlan.executeTake(SparkPlan.scala:190) 
     at org.apache.spark.sql.execution.Limit.executeCollect(basicOperators.scala:165) 
     at org.apache.spark.sql.execution.SparkPlan.executeCollectPublic(SparkPlan.scala:174) 
     at org.apache.spark.sql.DataFrame$$anonfun$org$apache$spark$sql$DataFrame$$execute$1$1.apply(DataFrame.scala:1499) 
     at org.apache.spark.sql.DataFrame$$anonfun$org$apache$spark$sql$DataFrame$$execute$1$1.apply(DataFrame.scala:1499) 
     at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:56) 
     at org.apache.spark.sql.DataFrame.withNewExecutionId(DataFrame.scala:2086) 
     at org.apache.spark.sql.DataFrame.org$apache$spark$sql$DataFrame$$execute$1(DataFrame.scala:1498) 
     at org.apache.spark.sql.DataFrame.org$apache$spark$sql$DataFrame$$collect(DataFrame.scala:1505) 
     at org.apache.spark.sql.DataFrame$$anonfun$head$1.apply(DataFrame.scala:1375) 
     at org.apache.spark.sql.DataFrame$$anonfun$head$1.apply(DataFrame.scala:1374) 
     at org.apache.spark.sql.DataFrame.withCallback(DataFrame.scala:2099) 
     at org.apache.spark.sql.DataFrame.head(DataFrame.scala:1374) 
     at org.apache.spark.sql.DataFrame.take(DataFrame.scala:1456) 
     at org.apache.spark.sql.DataFrame.showString(DataFrame.scala:170) 
     at org.apache.spark.sql.DataFrame.show(DataFrame.scala:350) 
     at org.apache.spark.sql.DataFrame.show(DataFrame.scala:311) 
     at org.apache.spark.sql.DataFrame.show(DataFrame.scala:319) 
     at scb.HBaseBroadcast$.main(HBaseBroadcast.scala:106) 
     at scb.HBaseBroadcast.main(HBaseBroadcast.scala) 
Caused by: java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
     at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:238) 
     ... 44 more 
Caused by: java.lang.AbstractMethodError: org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider.getProxy()Lorg/apache/hadoop/io/retry/FailoverProxyProvider$ProxyInfo; 
     at org.apache.hadoop.io.retry.RetryInvocationHandler.<init>(RetryInvocationHandler.java:73) 
     at org.apache.hadoop.io.retry.RetryInvocationHandler.<init>(RetryInvocationHandler.java:64) 
     at org.apache.hadoop.io.retry.RetryProxy.create(RetryProxy.java:58) 
     at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:147) 
     at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:510) 
     at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:453) 
     at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:136) 
     at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591) 
     at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:89) 
     at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2625) 
     at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2607) 
     at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:368) 
     at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296) 
     at org.apache.hadoop.hbase.util.DynamicClassLoader.<init>(DynamicClassLoader.java:104) 
     at org.apache.hadoop.hbase.protobuf.ProtobufUtil.<clinit>(ProtobufUtil.java:241) 
     at org.apache.hadoop.hbase.ClusterId.parseFrom(ClusterId.java:64) 
     at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:75) 
     at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:105) 
     at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.retrieveClusterId(ConnectionManager.java:879) 
     at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:635) 
     ... 49 more 

答えて

1

あなたはHadoopの-DFSが競合しています。サーバーのバージョンと開発パスのバージョンを確認してください。

+0

ありがとう、私は別の依存関係としてhadoopを追加していないことを確認しましょう。私はSpark 1.6.1を構成しました。これは、HDP 2.4を使用しているクラスタで1.6.1バージョンに関連するすべての依存関係を取得しています.2、Spark 1.6.1バージョンを使用している、私は両方のHadoopのバージョンを確認します..ありがとう.. – Shankar

+1

Shankar、我々はスプライスマシンでこの問題が継続している。私たちはSpark 2.0に少し上がりました。あなたがもっと疑問がある場合(私はあなたがそう思われる)、このスレッドに応答してください。私たちの通常の問題は、Guava、Jackson、Servlet-apiの競合です。がんばろう! –

+0

あなたはKerberos認証に失敗しましたエラーではありません。 AFAIK jarファイルの不一致のために接続できません。私は同じ問題に直面しています。クラスター側にあるjarファイルと、同じjarバージョンのjarファイルをWindowsのEclipse.classpathに置く必要があることを確認するために、 'hbase classpath'と入力してください。 –

関連する問題