2016-11-21 8 views
0

Spark JavaRDDをHDFSに保存しようとしています。プロセスは正常に実行されましたが、HDFSに保存されたファイルは表示されません。以下は私のコードです。私はそれをローカルで実行しています。 (直接のIntelliJからmain()メソッドを実行している。)SparkからJavaRDDをHDFSに保存する

public static void main(String[] args){ 

     String file = "/Path/to/file/abc.csv"; 

     SparkConf conf = new SparkConf().setAppName("test").setMaster("local"); 
     JavaSparkContext sc = new JavaSparkContext(conf); 

     JavaRDD<String> lines = sc.textFile(file); 


     JavaRDD<String > filteredLines = lines.filter(new Function<String, Boolean>() { 
      @Override 
      public Boolean call(String s) throws Exception { 
       return s.contains("Hollywood"); 
      } 
     }); 

     filteredLines.coalesce(1).saveAsObjectFile("hdfs://localhost:9000/input"); 

     sc.close(); 
    } 

Iは、Spark 2.0とのHadoop 2.7.2でこのコードを実行しています。私のhadoopでは、site-site.xmlはlocalhost:9000として設定されています。私はhadoopのドキュメントで述べたように私のHDFS擬似分散クラスタを開始しています。

私はここで何が欠けていますか?

+0

このコードをHadoop設定のあるマシンで実行していますか?一度だけホスト名で試してみてください。 – mrsrinivas

+0

はい。同じマシンからコードを実行しています。 – user7005835

答えて

0

最後にこれを解決できました。 2件ありました

1)私はHadoop-2.7.2を使用しています。私のJavaバージョンはjdk1.8でした。 JDK1.8は、Hadoop2.0以降でのみサポートされているようです。 Hadoop-2.7ではJDK1.7が必要です。 Javaバージョンを1.7に変更しました

2)Hadoopディレクトリに権限がありませんでした。必要な許可を与え

のchmod -R 755/Hadoopの/ディレクトリを実行します。

0

saveAsSequenceFileで試してみましたか?

はちょうどこの

https://spark.apache.org/docs/1.0.0/api/java/org/apache/spark/rdd/SequenceFileRDDFunctions.html

感謝を見てください。

+0

あなたはもっと説明できますか? – mrsrinivas

+0

saveAsSequenceFileとsaveAsObjectFileで試行します。誰も働いていない – user7005835

+0

@ user7005835、これで一度loook私はあなたが間違いなく解決策を見つけることを望むhttps://github.com/databricks/learning-spark/blob/master/src/main/java/com/oreilly/learningsparkexamples/java /BasicSaveSequenceFile.java – user4342532

関連する問題