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
任何建議表示讚賞。
看起來像版本衝突? –
@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」 ' –
和Scala版本是scalaVersion:= 「2.11.8」 –