2016-12-23 4 views
0

Я автономное приложение с SBT, и я хочу загрузить мои данные из HDFS, я использовал эту команду:Загрузка данных из HDFS -Spark Scala

val loadfiles1 = sc.textFile("hdfs:///tmp/MySimpleProject/file1.dat") 

но ошибка это так жанры:

[error] (run-main-0) java.io.IOException: Incomplete HDFS URI, no host: hdfs:/tmp/MyProjectSpark/file1.dat 
java.io.IOException: Incomplete HDFS URI, no host: hdfs:/tmp/MyProjectSpark/file1.dat 
     at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:133) 
     at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2433) 
     at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:88) 
     at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2467) 
     at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2449) 
     at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:367) 
     at org.apache.hadoop.fs.Path.getFileSystem(Path.java:287) 
     at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:221) 
     at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:270) 
     at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:199) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:248) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:246) 
     at scala.Option.getOrElse(Option.scala:120) 
     at org.apache.spark.rdd.RDD.partitions(RDD.scala:246) 
     at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:248) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:246) 
     at scala.Option.getOrElse(Option.scala:120) 
     at org.apache.spark.rdd.RDD.partitions(RDD.scala:246) 
     at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:248) 
     at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:246) 
     at scala.Option.getOrElse(Option.scala:120) 
     at org.apache.spark.rdd.RDD.partitions(RDD.scala:246) 
     at org.apache.spark.SparkContext.runJob(SparkContext.scala:1930) 
     at org.apache.spark.rdd.RDD.count(RDD.scala:1134) 
     at app$.main(App.scala:33) 
     at app.main(App.scala) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
[trace] Stack trace suppressed: run last compile:run for the full output. 
16/12/23 15:19:16 ERROR ContextCleaner: Error in cleaning thread 
java.lang.InterruptedException 
     at java.lang.Object.wait(Native Method) 
     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) 
     at org.apache.spark.ContextCleaner$$anonfun$org$apache$spark$ContextCleaner$$keepCleaning$1.apply$mcV$sp(ContextCleaner.scala:175) 
     at org.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1249) 
     at org.apache.spark.ContextCleaner.org$apache$spark$ContextCleaner$$keepCleaning(ContextCleaner.scala:172) 
     at org.apache.spark.ContextCleaner$$anon$1.run(ContextCleaner.scala:67) 
16/12/23 15:19:16 ERROR Utils: uncaught error in thread SparkListenerBus, stopping SparkContext 
java.lang.InterruptedException 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303) 
     at java.util.concurrent.Semaphore.acquire(Semaphore.java:317) 
     at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(LiveListenerBus.scala:80) 
     at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply(LiveListenerBus.scala:79) 
     at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply(LiveListenerBus.scala:79) 
     at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58) 
     at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1.apply$mcV$sp(LiveListenerBus.scala:78) 
     at org.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1249) 
     at org.apache.spark.scheduler.LiveListenerBus$$anon$1.run(LiveListenerBus.scala:77) 
16/12/23 15:19:16 INFO SparkUI: Stopped Spark web UI at http://10.0.2.15:4040 
java.lang.RuntimeException: Nonzero exit code: 1 
     at scala.sys.package$.error(package.scala:27) 
[trace] Stack trace suppressed: run last compile:run for the full output. 
[error] (compile:run) Nonzero exit code: 1 
[error] Total time: 10 s, completed Dec 23, 2016 3:19:17 PM 
16/12/23 15:19:17 INFO DiskBlockManager: Shutdown hook called 
16/12/23 15:19:17 INFO ShutdownHookManager: Shutdown hook called 
16/12/23 15:19:17 INFO ShutdownHookManager: Deleting directory /tmp/spark-515b242b-7450-4215-9831-8e6976cb41ba 
16/12/23 15:19:17 INFO ShutdownHookManager: Deleting directory /tmp/spark-515b242b-7450-4215-9831-8e6976cb41ba/userFiles-ee18e822-55c7-4613-b3f7-03e5a4c896e1 

Почему вся эта ошибка, просто я хочу загрузить файл из HDFS. Конфигурация контекста свече заключается в следующем:

val conf = new SparkConf().setAppName("My first project hadoop spark").setMaster("local[4]") 
val sc = new SparkContext(conf) 

И конфигурации HDFS в файле сайта-core.xml является следующее:

<property> 
     <name>fs.defaultFS</name> 
     <value>hdfs://sandbox.hortonworks.com:8020</value> 
     <final>true</final> 
    </property> 

Спасибо.

+0

ли вам нужно 3 слэш в начале (или просто 2)? '///' –

ответ

0

StackTrace говорит это ясно, что

Неполное HDFS URI, нет хозяина: HDFS: /tmp/MyProjectSpark/file1.dat

Пожалуйста, сформулируйте HDFS NameNode хоста и необязательный порт (по умолчанию 8020, укажите, если он отличается).

Что-то вроде этого (при условии локального хоста ваш NameNode):

HDFS: // локальный: 8020/TMP/MyProjectSpark/file1.dat

+0

это было уже [ответ] (http://stackoverflow.com/a/32197116/647053) в комментарии к ссылке. Ths дублируется –

+0

Спасибо. можете ли вы рассказать мне, как я могу узнать, сколько серверов запускает мое приложение, как я обращаюсь к ним или их вижу, потому что я узнал, что он существует с помощью Spark UI (пользовательский интерфейс) по адресу http: // : 4040 Я могу изменить размер памяти исполнителя и драйвера, и я вижу свой кластер. Я пробовал эту команду по URL: http://127.0.0.1:4040, но страница недоступна. Как я могу узнать свой драйвер-узел. Спасибо. – Alicia

+0

В искровом пользовательском интерфейсе вы можете увидеть всех исполнителей, используемых вашей работой. Столбец ID/хоста Исполнителя показывает, какой узел/сервер выполняет этот исполнитель. Перейдите на вкладку исполнителя выше (последняя вкладка), и последняя запись сообщит вам, где работает драйвер. – code