2016-11-02 6 views
1

私はScala、SBT、Intellijで新しくなりました。以下SBTファイル使用ScalaのSBTによるHBase依存性

name := "mycompany" 

version := "0.0.1-SNAPSHOT" 

scalaVersion := "2.11.8" 

libraryDependencies ++= Seq(
    "org.apache.spark" %% "spark-core" % "2.0.1", 
    "org.apache.spark" %% "spark-sql" % "2.0.1", 
    "org.apache.spark" %% "spark-mllib" % "2.0.1", 
    "org.apache.hbase" % "hbase-client" % "1.2.0", 
    "com.typesafe.akka" %% "akka-http-experimental" % "2.4.11" 
) 

resolvers ++= Seq(
    "Apache Repository" at "https://repository.apache.org/content/repositories/releases/" 
) 

3つのApacheのスパークの依存関係は、赤は 'Unreasolved dpendancy' タグとのIntelliJに下線が引かれています。しかし、私はSparkライブラリをインポートすることができ、Sparkジョブは問題なくローカルモードで実行されます。

IDE内のHBaseライブラリからインポートできません。以下の輸入はすべて

import org.apache.hadoop.hbase.HBaseConfiguration 
import org.apache.hadoop.hbase.KeyValue 
import org.apache.hadoop.hbase.MasterNotRunningException; 
import org.apache.hadoop.hbase.TableName 
import org.apache.hadoop.hbase.ZooKeeperConnectionException 
import org.apache.hadoop.hbase.client.Connection 
import org.apache.hadoop.hbase.client.ConnectionFactory 
import org.apache.hadoop.hbase.client.Get 
import org.apache.hadoop.hbase.client.Result 
import org.apache.hadoop.hbase.client.Table 
import org.apache.hadoop.hbase.util.Bytes 

を解決できない私は、すべての問題がなく、唯一のmavenでこれらの行で上記の輸入を使用してJavaでコードを書かれている:

<dependency> 
     <groupId>org.apache.hbase</groupId> 
     <artifactId>hbase-client</artifactId> 
     <scope>provided</scope> 
     <version>1.2.0</version> 
    </dependency> 

私が間違って何をしているのですか? pamuさんの投稿へ

EDIT

おかげで、私はリゾルバを交換した

ありがとう:しかし、私はまだいくつかの未解決のインポートを持っている

resolvers ++= Seq(
    "Apache Repository" at "https://repository.apache.org/content/repositories/releases/", 
    "Cloudera repo" at "//repository.cloudera.com/artifactory/cloudera-repos/" 
) 

(他は上記今やOKです) :

import org.apache.hadoop.hbase.HBaseConfiguration 
import org.apache.hadoop.hbase.KeyValue 
import org.apache.hadoop.hbase.util.TableName 
import org.apache.hadoop.hbase.util.Bytes 

あなたの助けのための

EDITバージョン1.2.0で述べたのHBaseのlibに

libraryDependencies ++= Seq(
    "org.apache.hbase" % "hbase-server" % 1.2.1, 
    "org.apache.hbase" % "hbase-client" % 1.2.1, 
    "org.apache.hbase" % "hbase-common" % 1.2.1, 
    "org.apache.hadoop" % "hadoop-common" % 2.7.3 
) 
+0

あなたはどのように後でそれを使用した例がありますか? HBaseの読み書きはどうでしたか? –

+1

@Mariano Kamp更新 – ogen

答えて

1

このようなクラスが存在しません。 jar -tvfで確認できます。これらのクラスは2.0.0に存在します(確かに) hbase API

+1

あなたはそうです、彼らはhbase-commonにいます。私の.sbtにhbase-commonを追加することで問題は解決します。しかし、なぜこれがMavenでは必要でないのか分かりません(Mavenには自動的にhbase-commonが含まれています)。 SBTが自動的に依存関係を追加する方法はありますか? – ogen

+0

あなたのsbtバージョンは何ですか? http://www.scala-sbt.org/1.0/docs/sbt-0.13-Tech-Previews.htmlこれは、0.13.8まで推移依存性の解決のようなmavenがないことを意味します。 – FaigB

+0

したがって、あなたは依存関係を提供する必要があります。適切なリゾルバとのlib依存関係 – FaigB

関連する問題