2016-02-23 2 views
1

Я пытаюсь создать проект sbt Scala, добавив некоторый код из Flink.I успешно добавил большинство проектов Flink, но Flink-ML.Добавить зависимости Flink ML

Я пытался добавить различную зависимость и ошибки следующим образом: конфигурация

sbt.build:

resolvers += Resolver.mavenLocal 
// I have downloaded the Flink project and compiled in local. 
libraryDependencies += "org.apache.flink" % "flink-ml_2.10" % "1.0-SNAPSHOT" 

Ошибка следующим образом:

Error:Error while importing SBT project:<br/>...<br/><pre>[info] Resolving org.scala-sbt#cache;0.13.8 ... 
[info] Resolving org.scala-sbt#testing;0.13.8 ... 
[info] Resolving org.scala-sbt#test-agent;0.13.8 ... 
[info] Resolving org.scala-sbt#test-interface;1.0 ... 
[info] Resolving org.scala-sbt#main-settings;0.13.8 ... 
[info] Resolving org.scala-sbt#apply-macro;0.13.8 ... 
[info] Resolving org.scala-sbt#command;0.13.8 ... 
[info] Resolving org.scala-sbt#logic;0.13.8 ... 
[info] Resolving org.scala-sbt#precompiled-2_8_2;0.13.8 ... 
[info] Resolving org.scala-sbt#precompiled-2_9_2;0.13.8 ... 
[info] Resolving org.scala-sbt#precompiled-2_9_3;0.13.8 ... 
[error] Modules were resolved with conflicting cross-version suffixes in {file:/home/ubuntu/workspace/Flink-project-sbt/}flink-project-sbt: 
[error] org.apache.flink:flink-runtime <none>, _2.10 
[error] org.apache.flink:flink-scala <none>, _2.10 
[error] org.apache.flink:flink-optimizer <none>, _2.10 
[trace] Stack trace suppressed: run 'last *:update' for the full output. 
[trace] Stack trace suppressed: run 'last *:ssExtractDependencies' for the full output. 
[error] (*:update) Conflicting cross-version suffixes in: org.apache.flink:flink-runtime, org.apache.flink:flink-scala, org.apache.flink:flink-optimizer 
[error] (*:ssExtractDependencies) Conflicting cross-version suffixes in: org.apache.flink:flink-runtime, org.apache.flink:flink-scala, org.apache.flink:flink-optimizer 
[error] Total time: 33 s, completed Feb 23, 2016 8:56:38 AM</pre><br/>See complete log in <a href="/home/ubuntu/.IntelliJIdea15/system/log/sbt.last.log">/home/ubuntu/.IntelliJIdea15/system/log/sbt.last.log</a> 

Я также пробы с флинком мл для 2.11

libraryDependencies += "org.apache.flink" % "flink-ml_2.11" % "0.10.1" 

Ошибка заключается в следующем:

Error:Error while importing SBT project:<br/>...<br/><pre>[error] org.apache.flink:flink-scala <none>, _2.11 
[error] org.apache.flink:flink-optimizer <none>, _2.11 
[error] org.apache.flink:flink-shaded-hadoop2 <none>, _2.11 
[error] org.clapper:grizzled-slf4j _2.10, _2.11 
[error] com.typesafe.akka:akka-actor _2.10, _2.11 
[error] com.twitter:chill _2.10, _2.11 
[error] com.twitter:bijection-core _2.10, _2.11 
[error] com.twitter:bijection-avro _2.10, _2.11 
[error] org.apache.flink:flink-core <none>, _2.11 
[error] com.twitter:chill-bijection _2.10, _2.11 
[error] com.twitter:chill-avro _2.10, _2.11 
[error] com.github.scopt:scopt _2.10, _2.11 
[error] com.typesafe.akka:akka-remote _2.10, _2.11 
[error] org.apache.flink:flink-java <none>, _2.11 
[error] com.typesafe.akka:akka-slf4j _2.10, _2.11 
[trace] Stack trace suppressed: run 'last *:update' for the full output. 
[trace] Stack trace suppressed: run 'last *:ssExtractDependencies' for the full output. 
[error] (*:update) Conflicting cross-version suffixes in: org.apache.flink:flink-runtime, org.apache.flink:flink-scala, org.apache.flink:flink-optimizer, org.apache.flink:flink-shaded-hadoop2, org.clapper:grizzled-slf4j, com.typesafe.akka:akka-actor, com.twitter:chill, com.twitter:bijection-core, com.twitter:bijection-avro, org.apache.flink:flink-core, com.twitter:chill-bijection, com.twitter:chill-avro, com.github.scopt:scopt, com.typesafe.akka:akka-remote, org.apache.flink:flink-java, com.typesafe.akka:akka-slf4j 
[error] (*:ssExtractDependencies) Conflicting cross-version suffixes in: org.apache.flink:flink-runtime, org.apache.flink:flink-scala, org.apache.flink:flink-optimizer, org.apache.flink:flink-shaded-hadoop2, org.clapper:grizzled-slf4j, com.typesafe.akka:akka-actor, com.twitter:chill, com.twitter:bijection-core, com.twitter:bijection-avro, org.apache.flink:flink-core, com.twitter:chill-bijection, com.twitter:chill-avro, com.github.scopt:scopt, com.typesafe.akka:akka-remote, org.apache.flink:flink-java, com.typesafe.akka:akka-slf4j 
[error] Total time: 21 s, completed Feb 23, 2016 8:59:12 AM</pre><br/>See complete log in <a href="/home/ubuntu/.IntelliJIdea15/system/log/sbt.last.log">/home/ubuntu/.IntelliJIdea15/system/log/sbt.last.log</a> 

Мой содержимое файла SBT является:

name := "Flink-project-sbt" 

version := "1.0" 

scalaVersion := "2.10.6" 



libraryDependencies ++= Seq("org.apache.flink" % "flink-scala" % "0.10.2") 
libraryDependencies ++= Seq("org.apache.flink" % "flink-streaming-scala" % "0.10.2", "org.apache.flink" % "flink-clients" % "0.10.2") 

// Table API dependencies 
libraryDependencies += "org.apache.flink" % "flink-table" % "0.10.1" 

// Machine Learning 
libraryDependencies += "org.apache.flink" % "flink-ml_2.11" % "0.10.1" 
// Machine Learning 
resolvers += Resolver.mavenLocal 
//libraryDependencies += "org.apache.flink" % "flink-ml_2.10" % "1.0-SNAPSHOT" 

// Gelly 
libraryDependencies += "org.apache.flink" % "flink-gelly-scala" % "0.10.1" 

// for more dependencies see below url 
// http://mvnrepository.com/artifact/org.apache.flink 

fork in run := true 

Есть ли версия в Flink мл совместим с Скале 2.10?

Спасибо!

ответ

2

Проблема в том, что вы смешиваете версию 0.10.2 и версию 1.0-SNAPSHOT. В последней версии мы правильно представили суффиксы версии Scala _2.10 и _2.11. Кроме того, мы исправили некоторые проблемы с зависимостями, которые мешали плагину сборки sbt создавать живую банку. Поэтому я настоятельно рекомендую использовать текущий мастер, который имеет версию 1.0-SNAPSHOT.

Возможный файл SBT может выглядеть следующим

resolvers in ThisBuild ++= Seq(Resolver.mavenLocal) 

name := "flinkMLTest" 

version := "0.1-SNAPSHOT" 

organization := "org.example" 

scalaVersion in ThisBuild := "2.10.6" 

val flinkVersion = "1.0-SNAPSHOT" 

val flinkDependencies = Seq(
    "org.apache.flink" %% "flink-scala" % flinkVersion % "provided", 
    "org.apache.flink" %% "flink-ml" % flinkVersion) 

lazy val root = (project in file(".")). 
    settings(
    libraryDependencies ++= flinkDependencies 
) 

// make run command include the provided dependencies 
run in Compile <<= Defaults.runTask(fullClasspath in Compile, mainClass in (Compile, run), runner in (Compile, run)) 

Существует также новый шаблон giter8 для рабочих мест FLiNK. Если у вас есть giter8 installed, вы можете просто выполнить следующую команду для создания проекта Flink с использованием Scala и SBT.

g8 tillrohrmann/flink-project 
0
  1. вы должны либо пойти с Флинка 0.10.2 или FLiNK 1.0-SNAPSHOT, но не смешивать как
  2. в Флинка 0.10.2 нет Scala версия суффикса (т.е. _2.10 или _2.11)
  3. Flink 0.10.2 построен с Scala 2.10 (если вы хотите Scala 2.11 вам нужно построить Flink самостоятельно из исходного кода)
  4. Flink 1,0 будет поставляться с Масштабными версиями суффиксов для многих модулей (например., flink-scala становится flink-scala_2.10 и flink-scala_2.11). Эти суффиксы уже используются в текущем ведущем

Таким образом, вам необходимо решить, с версией Flink (и для текущего мастера, какая версия Scala) вы хотите использовать и задавать зависимости в согласованном виде.

Смежные вопросы