2016-09-06 21 views
0

我試圖通過scala實現一個簡單的mapreduce作業。然而,當我使用命令運行該程序包,

hadoop jar hadoop.jar mapreduce.MaxTemperature hdfs://sandbox/user/ajay/input hdfs://sandbox/user/ajay/output 

我得到的錯誤,

16/09/06 16:06:12 INFO mapreduce.Job: Task Id : attempt_1473177830264_0002_m_000001_2, Status : FAILED Error: java.lang.ClassNotFoundException: scala.Predef$ 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
     at mapreduce.MaxTemperatureMapper.map(MaxTemperatureMapper.scala:17) 
     at mapreduce.MaxTemperatureMapper.map(MaxTemperatureMapper.scala:9) 
     at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146) 
     at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787) 
     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 
     at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:415) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) 
     at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) 

即使我已經添加了斯卡拉庫到類路徑中,我得到上述錯誤。

hadoop的版本:Hadoop的2.7.1.2.3.0.0-255 階版本:2.11.8 Java版本1.7.0_85

任何建議表示讚賞。

+0

看起來像版本衝突? –

+0

@Paul在我的sbt構建我已經將依賴項設置爲'lazy val root =(project in file(「。」))。 設置(commonSettings:_ *)。 設置( 名:= 「Hadoop的」, libraryDependencies ++ = SEQ( 「org.apache.hadoop」 % 「Hadoop的客戶端」 % 「2.7.1」 ) )'和我的Hadoop版本的Hadoop'版本的Hadoop 和2.7.1.2.3.0.0-2557' Java版本是'Java的版本 Java版本 「1.7.0_85」 ' –

+0

和Scala版本是scalaVersion:= 「2.11.8」 –

回答

1

除了將scala庫添加到客戶端的類路徑之外,還必須將其添加到執行任務的所有節點。這可以使用ToolRunner hadoop jar scala-2.11/hadoop_2.11-0.1.0.jar mapreduce.WordCount -libjars /usr/lib/scala-2.11.8/lib/scala-library.jar