[HADOOP] TaskID. <init> (Lorg / apache / hadoop / mapreduce / JobID; Lorg / apache / hadoop / mapreduce / TaskType; I) V
HADOOPTaskID. (Lorg / apache / hadoop / mapreduce / JobID; Lorg / apache / hadoop / mapreduce / TaskType; I) V
val jobConf = new JobConf(hbaseConf)
jobConf.setOutputFormat(classOf[TableOutputFormat])
jobConf.set(TableOutputFormat.OUTPUT_TABLE, tablename)
val indataRDD = sc.makeRDD(Array("1,jack,15","2,Lily,16","3,mike,16"))
indataRDD.map(_.split(','))
val rdd = indataRDD.map(_.split(',')).map{arr=>{
val put = new Put(Bytes.toBytes(arr(0).toInt))
put.add(Bytes.toBytes("cf"),Bytes.toBytes("name"),Bytes.toBytes(arr(1)))
put.add(Bytes.toBytes("cf"),Bytes.toBytes("age"),Bytes.toBytes(arr(2).toInt))
(new ImmutableBytesWritable, put)
}}
rdd.saveAsHadoopDataset(jobConf)
hadoop 또는 spark 작업을 실행할 때 종종 오류가 발생합니다.
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.mapred.TaskID.<init>(Lorg/apache/hadoop/mapreduce/JobID;Lorg/apache/hadoop/mapreduce/TaskType;I)V
at org.apache.spark.SparkHadoopWriter.setIDs(SparkHadoopWriter.scala:158)
at org.apache.spark.SparkHadoopWriter.preSetup(SparkHadoopWriter.scala:60)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1.apply$mcV$sp(PairRDDFunctions.scala:1188)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1.apply(PairRDDFunctions.scala:1161)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1.apply(PairRDDFunctions.scala:1161)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:358)
at org.apache.spark.rdd.PairRDDFunctions.saveAsHadoopDataset(PairRDDFunctions.scala:1161)
at com.iteblog.App$.main(App.scala:62)
at com.iteblog.App.main(App.scala)`
처음에는 항아리 충돌이라고 생각하지만 항아리를주의 깊게 확인했습니다. 다른 항아리는 없습니다. 스파크 및 하둡 버전은 다음과 같습니다.
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.0.1</version>`
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>2.6.0-mr1-cdh5.5.0</version>
그리고 TaskID와 TaskType이 모두 hadoop-core jar에 있지만 동일한 패키지에는 없다는 것을 알았습니다. mapred.TaskID가 mapreduce.TaskType을 참조 할 수있는 이유는 무엇입니까?
해결법
-
==============================
1.나는 또한 그러한 문제에 직면했다. 기본적으로 jar 문제로 인해 발생합니다.
나는 또한 그러한 문제에 직면했다. 기본적으로 jar 문제로 인해 발생합니다.
Maven spark-core_2.10에서 Jar 파일 추가
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version>2.0.2</version> </dependency>
Jar 파일을 변경 한 후
-
==============================
2.아,이 문제를 해결하고 maven 의존성을 추가하십시오.
아,이 문제를 해결하고 maven 의존성을 추가하십시오.
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>2.6.0-cdh5.5.0</version> </dependency>
오류가 사라집니다!
from https://stackoverflow.com/questions/41055923/taskid-initlorg-apache-hadoop-mapreduce-jobidlorg-apache-hadoop-mapreduce-ta by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 스칼라에서 HBase 스캔 TimeRange가 작동하지 않음 (0) | 2019.08.16 |
---|---|
[HADOOP] MASTER = yarn-cluster를 사용하여 HiveFromSpark 예제를 실행하십시오. (0) | 2019.08.16 |
[HADOOP] LoadFunc에 대한 예제 및 추가 설명 (0) | 2019.08.16 |
[HADOOP] 하둡 : 큰 직렬화 된 객체 처리 (0) | 2019.08.16 |
[HADOOP] ffmpeg를 HDFS로 직접 출력 (0) | 2019.08.16 |