2016-08-03 2 views
0

Пожалуйста, помогите, я полный noob, когда дело доходит до Spark и Haddop в целом. Мой код выглядит следующим образом:Невозможно прочитать файлы в SparkSQL в java

public static void main(String[] args) throws IOException { 

    String[] jars = {"D:\\customJars\\sparky.jar","D:\\customJars\\guava-19.0.jar"}; 
     System.setProperty("hadoop.home.dir", "D:\\hadoop-common-2.2.0-bin-master"); 
     SparkConf sparkConf = new SparkConf().setAppName("com.nucleus.spark.MlibPOC") 
       .setMaster("spark://10.1.50.165:7077") 
       .setJars(jars); 


    JavaSparkContext jsc = new JavaSparkContext(sparkConf); 
    SQLContext sqlContext = new SQLContext(jsc); 


    DataFrame df = sqlContext.read().json("src/com/nucleus/spark/generated.json"); 


} 

Моего Спарк Cluster развертываются как единый кластер на 10.1.50.165 работает RHEL6 и когда я запускаю этот простой код, при попытке чтения файла JSON я получаю исключение, как:

Исключение в потоке «основного» org.apache.spark.SparkException: Работа прервана из-за сбоя стадии: задача 1 на стадии 0.0 неудачной 4 раза, наиболее недавний отказ: Lost задачу 1.3 в стадии 0,0 (TID 5, 10.1.50.165): java.io.FileNotFoundException: Файл файл:/D:/WorkSpace2/SparkHadoopProject/src/com/nuc Leus/искра/generated.json не существует org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus (RawLocalFileSystem.java:534) на org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal (RawLocalFileSystem.java: 747) на org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus (RawLocalFileSystem.java:524) на org.apache.hadoop.fs.FilterFileSystem.getFileStatus (FilterFileSystem.java:409) на org.apache .hadoop.fs.ChecksumFileSystem $ ChecksumFSInputChecker. (ChecksumFileSystem.java:140) по адресу org.apache.hadoop.fs.ChecksumFileSystem.open (ChecksumFileSystem.java:341) at org.apache.hadoop.fs.FileSystem.open (FileSystem.java:766) в org.apache.hadoop.mapred.LineRecordReader. (LineRecordReader.java:108) по адресу org.apache.hadoop.mapred.TextInputFormat. getRecordReader (TextInputFormat.java:67) at org.apache.spark.rdd.HadoopRDD $$ anon $ 1. (HadoopRDD.scala: 237) at org.apache.spark.rdd.HadoopRDD.compute (HadoopRDD.scala: 208) в org.apache.spark.rdd.HadoopRDD.compute (HadoopRDD.scala: 101) в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 306) в org.apache.spark.rdd .RDD.iterator (RDD.scala: 270) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 38) на org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 306) на org.apache.spark.rdd.RDD.iterator (RDD.scala: 270) на org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 38) на org.apache.spark.rdd. RDD.computeOrReadCheckpoint (RDD.scala: 306) at org.apache.spark.rdd.RDD.iterator (RDD.scala: 270) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 38) на org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 306) на org.apache.spark.rdd.RDD.iterator (RDD.scala: 270) на org.apache.spark.scheduler. ResultTask.runTask (ResultTask.scala: 66) в org.apache.spark.scheduler.Task.run (Task.scala: 89) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 227) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) на java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) на java.lang.Thread.run (Thread. Java: 745)

StackTrace

Driver: в org.apache.spark.scheduler.DAGScheduler.org $ апача $ искры $ планировщик $ DAGScheduler $$ failJobAndIndependentStages (DAGScheduler.scala: 1431) в org.apache.spark .scheduler.DAGScheduler $$ anonfun $ abortStage $ 1.Apply (DAGScheduler.Скала: 1419) в org.apache.spark.scheduler.DAGScheduler $$ anonfun $ abortStage $ 1.Apply (DAGScheduler.scala: 1418) в scala.collection.mutable.ResizableArray $ class.foreach (ResizableArray.scala: 59) в scala.collection.mutable.ArrayBuffer.foreach (ArrayBuffer.scala: 47) на org.apache.spark.scheduler.DAGScheduler.abortStage (DAGScheduler.scala: 1418) на org.apache.spark. scheduler.DAGScheduler $$ anonfun $ handleTaskSetFailed $ 1.Apply (DAGScheduler.scala: 799) в org.apache.spark.scheduler.DAGScheduler $$ anonfun $ handleTaskSetFailed $ 1.Apply (DAGScheduler.scala: 799) в scala.Option .foreach (Option.scala: 236) по адресу org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed (DAGScheduler.scala: 799) на org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive (DAGScheduler.scala: 1640) на org.apache.spark.scheduler .DAGSchedulerEventProcessLoop.onReceive (DAGScheduler.scala: 1599) на org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive (DAGScheduler.scala: 1588) в org.apache.spark.util.EventLoop $$ Анон $ 1.Run (EventLoop.scala: 48) на org.apache.spark.scheduler.DAGScheduler.runJob (DAGScheduler.scala: 620) на org.apache.spark.SparkContext.runJob (SparkContext.scala: 1832) на org.apache .spark.SparkContext.runJob (SparkContext. scala: 1952) at org.apache.spark.rdd.RDD $$ anonfun $ уменьшить $ 1.apply (RDD.scala: 1025) в org.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 150) на org.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 111) на org.apache.spark.rdd.RDD.withScope (RDD.scala: 316) в org.apache.spark .rdd.RDD.reduce (RDD.scala: 1007) в org.apache.spark.rdd.RDD $$ anonfun $ treeAggregate $ 1.apply (RDD.scala: 1150) по адресу org.apache.spark.rdd. RDDOperationScope $ .withScope (RDDOperationScope.scala: 150) at org.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 111) at org.apache.spark.rdd .RDD.withScope (RDD.scala: 316) в org.apache.spark.rdd.RDD.treeAggregate (RDD.scala: 1127) в org.apache.spark.sql.execution.datasources.json.InferSchema $. делать вывод (InferSchema.scala: 65) в org.apache.spark.sql.execution.datasources.json.JSONRelation $$ anonfun $ 4.Apply (JSONRelation.scala: 114) в org.apache.spark.sql. execute.datasources.json.JSONRelation $$ anonfun $ 4.apply (JSONRelation.scala: 109) в scala.Option.getOrElse (Option.scala: 120) в org.apache.spark.sql.execution.datasources.json. JSONRelation.dataSchema $ lzycompute (JSONRelation.scala: 109) at org.apache.spark.sql.execution.datasources.json.JSONRelation.dataSchema (JSONRelation.scala: 108) в org.apache.spark.sql.sources.HadoopFsRelation.schema $ lzycompute (interfaces.scala: 636) на org.apache.spark.sql.sources.HadoopFsRelation.schema (interfaces.scala: 635) в org.apache.spark.sql.execution.datasources.LogicalRelation (LogicalRelation.scala: 37). на org.apache.spark.sql.DataFrameReader.load (DataFrameReader.scala: 125) на org.apache.spark .sql.DataFrameReader.load (DataFrameReader.scala: 109) на org.apache.spark.sql.DataFrameReader.json (DataFrameReader.scala: 244) на com.nucleus.spark.MlibPOC.main (MlibPOC.java: 44) Вызвано: java.io.FileNotFoundException: Файл файл:/D: /WorkSpace2/SparkHadoopProject/src/com/nucleus/spark/generated.json не существует org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus (RawLocalFileSystem.java:534) на org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal (RawLocalFileSystem.java:747) на org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus (RawLocalFileSystem.java:524) на org.apache.hadoop. fs.FilterFileSystem.getFileStatus (FilterFileSystem.java:409) at org.apache.hadoop.fs.ChecksumFileSystem $ ChecksumFSInputChecker. (ChecksumFileSystem.java:140) по адресу org.apache.hadoop.fs.ChecksumFileSystem.open (ChecksumFileSystem.java:341) на org.apache.hadoop.fs.FileSystem.open (FileSystem.java:766) на org.apache.hadoop.mapred.LineRecordReader. . (LineRecordReader.java:108) на org.apache.hadoop.mapred.TextInputFormat.getRecordReader (TextInputFormat.java:67) в org.apache.spark.rdd.HadoopRDD $$ Anon $ 1 (HadoopRDD.scala: 237) на org.apache.spark.rdd.HadoopRDD.compute (HadoopRDD.scala: 208) на org.apache.spark.rdd.HadoopRDD.compute (HadoopRDD.scala: 101) на org.apache.spark.rdd .RDD.computeOrReadCheckpoint (RDD.scala: 306) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 270) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 3 8) на org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 306) на org.apache.spark.rdd.RDD.iterator (RDD.scala: 270) на org.apache.spark. rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 38) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 306) at org.apache.spark.rdd.RDD.iterator (RDD.scala: 270) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 38) по адресу org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 306) at org.apache.spark. rdd.RDD.iterator (RDD.scala: 270) в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 66) в org.apache.spark.scheduler.Task.run (Task.scala: 89) по адресу: org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 227) на java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) в java.lang.Thread.run (Thread.java:745)

+1

Параметр 'FileNotFoundException' это ключ здесь ... он не может найти «D:/WorkSpace2/SparkHadoopProject/src/com/kernel/spark/generated.json'. –

+0

Да, но файл находится в «D: /WorkSpace2/SparkHadoopProject/src/com/nucleus/spark/generated.json» Я положил его туда и проверил его снова и снова –

+0

Возможно, попробуйте установить его явно: 'D: \\ WorkSpace2 \\ SparkHadoopProject \\ src \\ com \\ ядро ​​\\ spark \\ generated.json' –

ответ

0

Это работает для меня на Спарк 1.6:

scala> val jtex = sqlContext.read.json("file:///opt/test.json") 
    jtex: org.apache.spark.sql.DataFrame = [_corrupt_record: string, age: string, id: string, name: string] 

    scala> val jtex = sqlContext.read.format("json").option("samplingRatio", "1.0").load("file:///opt/test.json") 
    jtex: org.apache.spark.sql.DataFrame = [age: string, id: string, name: string] 

    scala> jtex.show() 
    +---+----+-------+ 
    |age| id| name| 
    +---+----+-------+ 
    | 25|1201| satish| 
    | 28|1202|krishna| 
    | 39|1203| amith| 
    | 23|1204| javed| 
    | 23|1205| prudvi| 
    +---+----+-------+ 
+0

Принудительный путь для перехода к локальным fs с файлом: ///; в случае многокластерной среды этот файл должен присутствовать на всех машинах. –

+0

Да Это работает в искровой оболочке на '10.1.50.165', ' val jtex = sqlContext.read.json ("file: ///home/npdfinn/generated.json") ' , но как это сделать работа в моей программе java, которая находится на другой машине? Пожалуйста, помогите! Там же не работает! 'Нет путей ввода, указанных в задании' –

+0

Вам нужно запустить искровое приложение на сервере и настроить необходимые банки, файлы и т. д., чтобы указать на эту систему. Вы можете создать искровое приложение на своей локальной машине, но в конечном итоге вы должны запустить его на сервере и перенести все необходимые файлы и изменить все указатели на этот сервер. –

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