无法将 Spark 与 Eclipse 中的 Hortonworks Sandbox 连接
Posted
技术标签:
【中文标题】无法将 Spark 与 Eclipse 中的 Hortonworks Sandbox 连接【英文标题】:Can't Connect Spark with Hortonworks Sandbox from eclipse 【发布时间】:2020-05-30 20:45:42 【问题描述】:我无法连接我在 eclipse 上编写的 spark 代码。
下面是代码,请指导我如何做同样的事情。 任何事情都会有帮助
>
> import java.util.Arrays;
>
> import org.apache.spark.SparkConf;
> import org.apache.spark.api.java.JavaPairRDD;
> import org.apache.spark.api.java.JavaRDD;
> import org.apache.spark.api.java.JavaSparkContext;
>
> public class SparkTest
>
public static void main(String[] args)
> SparkConf conf = new SparkConf()
.setAppName("JD Word Counter").setMaster("local");
>
> JavaSparkContext sc = new JavaSparkContext(conf);
> //hdfs://localhost:8020/user/root/textfile/test.txt
JavaRDD<String> inputFile = sc.textFile("hdfs://localhost:8020/user/root/textfile/test.txt");
> System.out.println("Hello start");
> System.out.println(inputFile.collect());
JavaRDD<String> wordsFromFile = inputFile.flatMap(content ->
Arrays.asList(content.split(" ")).iterator());
> System.out.println("hello end");
>
>
> //JavaPairRDD countData = wordsFromFile.mapToPair(t -> new Tuple2(t, 1)).reduceByKey((x, y) -> (int) x + (int) y);
//wordsFromFile
.saveAsTextFile("hdfs://localhost:8020/user/root/fileTest/");
>
> System.out.println(" This java program is complete");
>
>
>
错误:
> I/O error constructing remote block reader.
> org.apache.hadoop.net.ConnectTimeoutException: 60000 millis timeout
> while waiting for channel to be ready for connect. ch :
> java.nio.channels.SocketChannel[connection-pending
> remote=/172.18.0.2:50010] at org.apache.hadoop.net.NetUtils.c
【问题讨论】:
【参考方案1】:将 hdp 沙箱的 localhost
更改为 ip address
或将 hdfs-site.xml
文件放入您的类路径并确保所有端口都已打开并可从外部机器访问。
【讨论】:
我尝试将 localhost 更改为 IP 地址,但在这种情况下不起作用。我尝试从本地终端 ping HDFS 端口,但也不起作用。奇怪的是 "wordsFromFile.saveAsTextFile("hdfs://localhost:8020/user/root/fileTest/" 这个命令在 HDFS 中创建了一个目录,这意味着 localhost 是可访问的,但是我无法 "JavaRDD以上是关于无法将 Spark 与 Eclipse 中的 Hortonworks Sandbox 连接的主要内容,如果未能解决你的问题,请参考以下文章
无法通过 Unix Shell 终端中的 Spark 查看在配置单元中创建的表
无法使用 SSO 钱包将 Oracle 与 Apache Spark 连接