在apache中获取错误会激发简单的程序

时间:2016-01-31 10:03:48

标签: java apache-spark

我正在做一个简单的例子,在java中的apache spark中使用Internet并且我得到了错误 引起:java.net.UnknownHostException:my.txt
 你可以看到我的下面的代码作为参考!

import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

public class MyCount {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    String file = "hdfs://my.txt";
    JavaSparkContext sc = new JavaSparkContext("local", "Simple App");
    JavaRDD<String> lines = sc.textFile(file);
    long nums = lines.count();
    System.out.println(nums);
    }
}

3 个答案:

答案 0 :(得分:1)

你可以试试吗? String file =&#34; hdfs://localhost/my.txt"

PS:确保你在hdfs中有这个文件 my.txt 。  如果您没有该文件hdfs,请按照以下命令将文件从本地目录放入hdfs。

Hadoop fs -copyFromLocal /home/training/my.txt hadoop /

答案 1 :(得分:1)

老问题,但答案从未被接受,我读到它时的错误就是混合了#34;本地&#34; Spark的概念与#34; localhost。&#34;

使用此构造函数:JavaSparkContext(java.lang.String master, java.lang.String appName),您可能希望使用:

JavaSparkContext sc = new JavaSparkContext("localhost", "Simple App");

但问题是使用&#34; local&#34;。此外,HDFS文件名didn't specify a hostname"hdfs://SomeNameNode:9000/foo/bar/"

"hdfs://host:port/absolute-path"

从1.6.2开始,Javadoc for JavaSparkContext没有显示任何构造函数,让您直接指定集群类型:

  

http://spark.apache.org/docs/latest/api/java/index.html?org/apache/spark/api/java/JavaSparkContext.html

JavaSparkContext的最佳构造函数需要SparkConf对象。要做一些人类可读的东西,构建一个SparkConf对象,然后将其传递给JavaSparkContext,这是一个设置appname,指定Kryo序列化程序并设置master的示例:

    SparkConf sparkConf = new SparkConf().setAppName("Threshold")
            //.setMaster("local[4]");
            .setMaster(getMasterString(masterName))
            .set("spark.serializer",   "org.apache.spark.serializer.KryoSerializer")
            .registerKryoClasses(kryoClassArray);

    // create the JavaSparkContext now:
    JavaSparkContext jsc = new JavaSparkContext(sparkConf);

注意:备用.setMaster("local[4]");将使用本地模式,OP可能一直在尝试。

我有一个more extended answer here that addresses using hostnames vs. IP addresses以及更多用于设置SparkConf

的内容

答案 2 :(得分:0)

您可以尝试这个简单的字数统计程序

import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.FlatMapFunction;
import org.apache.spark.api.java.function.Function2;
import org.apache.spark.api.java.function.PairFunction;
import scala.Tuple2;
public class First {
    public static void main(String[] args) {

        SparkConf sf = new SparkConf().setMaster("local[3]").setAppName("parth");
        JavaSparkContext sc = new JavaSparkContext(sf);
        JavaRDD<String> textFile = sc.textFile("input file path");
        JavaRDD<String> words = textFile.flatMap((new FlatMapFunction<String, String>() {
            public Iterable<String> call(String s) { return Arrays.asList(s.split(" ")); }}));
            JavaPairRDD<String, Integer> pairs = words.mapToPair(new PairFunction<String, String, Integer>() {
            public Tuple2<String, Integer> call(String s) { return new Tuple2<String, Integer>(s, 1); }
});
JavaPairRDD<String, Integer> counts = pairs.reduceByKey(new Function2<Integer, Integer, Integer>() {
public Integer call(Integer a, Integer b) { return a + b; }
});
counts.saveAsTextFile("outputfile-path");
    }
}