2016-11-30 9 views
1

Sparkバッチジョブを作成しようとしています。私はそれを瓶にパッケージし、それを火花の送信と一緒に使用したい。SparkとHbase-clientのバージョンの互換性

Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less$colon$less; 
    at HBaseBulkload$.saveAsHFile(ThereInLocationGivenTimeInterval.scala:103) 
    at HBaseBulkload$.toHBaseBulk(ThereInLocationGivenTimeInterval.scala:178) 
    at ThereInLocationGivenTimeInterval$.main(ThereInLocationGivenTimeInterval.scala:241) 
    at ThereInLocationGivenTimeInterval.main(ThereInLocationGivenTimeInterval.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 

this answerによると、問題は、バージョンの非互換性に由来:私のプログラムは、私が提出火花でそれを実行しようとすると、しかし、私は次のエラーを取得する、スパーク・シェルで完璧に動作します。私はまた、thisを見つけましたが、私のスパークバージョンはここ1.6.0でのプロジェクトのための私の.sbtファイルです:

name := "HbaseBulkLoad" 

version := "1.0" 

scalaVersion := "2.10.5" 

resolvers += "Cloudera Repository" at "https://repository.cloudera.com/artifactory/cloudera-repos/" 

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.0" 
//libraryDependencies += "org.apache.hbase" % "hbase-common" % "1.2.0-cdh5.9.0" 
//libraryDependencies += "org.apache.hbase" % "hbase-client" % "1.2.0-cdh5.9.0" 
//libraryDependencies += "org.apache.hbase" % "hbase-server" % "1.2.0-cdh5.9.0" 

libraryDependencies += "org.apache.hbase" % "hbase-client" % "1.1.2" 
libraryDependencies += "org.apache.hbase" % "hbase-server" % "1.1.2" 
libraryDependencies += "org.apache.hbase" % "hbase-common" % "1.1.2" 

マイ輸入し、次のようにエラーがある原因のコードセグメント: /SimpleApp.scala/ 次のようにインポートorg.apache.spark.SparkContext org.apache.spark.SparkContext._ 輸入org.apache.spark.SparkConf インポート

// HBaseBulkLoad imports 
import java.util.UUID 

import org.apache.hadoop.conf.Configuration 
import org.apache.hadoop.fs.permission.FsPermission 
import org.apache.hadoop.fs.{Path, FileSystem} 
import org.apache.hadoop.hbase.{KeyValue, TableName} 
import org.apache.hadoop.hbase.client._ 
import org.apache.hadoop.hbase.io.ImmutableBytesWritable 
import org.apache.hadoop.hbase.mapreduce.{HFileOutputFormat2, LoadIncrementalHFiles} 
import org.apache.hadoop.hbase.util.Bytes 
import org.apache.hadoop.mapreduce.Job 
import org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner 
import org.apache.spark.rdd.RDD 
import org.apache.spark.Partitioner 
import org.apache.spark.storage.StorageLevel 

import scala.collection.JavaConversions._ 
import scala.reflect.ClassTag 

// Hbase admin imports 
import org.apache.hadoop.hbase.{HBaseConfiguration, HTableDescriptor} 
import org.apache.hadoop.hbase.client.HBaseAdmin 
import org.apache.hadoop.hbase.mapreduce.TableInputFormat 
import org.apache.hadoop.fs.Path; 
import org.apache.hadoop.hbase.HColumnDescriptor 
import org.apache.hadoop.hbase.util.Bytes 
import org.apache.hadoop.hbase.client.Put; 
import org.apache.hadoop.hbase.client.HTable; 
import java.util.Calendar 

val now = Calendar.getInstance.getTimeInMillis  
//val filteredRdd = myRdd.filter(... 
val resultRdd= filteredRdd.map{ row => (row(0).asInstanceOf[String].getBytes(), 
           scala.collection.immutable.Map("batchResults" -> 
             Array(("batchResult1", ("true", now))) 
           ) 
         ) 
     } 
println(resultRdd.count) 

答えて

0

作業.sbtファイルは次のとおりです。

name := "HbaseBulkLoad" 

version := "1.0" 

scalaVersion := "2.10.5" 

resolvers += "Cloudera Repository" at "https://repository.cloudera.com/artifactory/cloudera-repos/" 

libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.6.0-cdh5.9.0" 
libraryDependencies += "org.apache.hbase" % "hbase-common" % "1.2.0-cdh5.9.0" 
libraryDependencies += "org.apache.hbase" % "hbase-client" % "1.2.0-cdh5.9.0" 
libraryDependencies += "org.apache.hbase" % "hbase-server" % "1.2.0-cdh5.9.0" 

あなたはClouderaのを使用している場合は、以下のディレクトリ内のjarファイルとそれに対応するバージョンを見つけることができます。

/opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p0.23/jars 
関連する問題