如何将sparkcontext连接到纱线上的CDH 6

时间:2019-02-04 06:14:02

标签: java apache-spark yarn cloudera

我正在尝试从Java上的CDH 6社区版本的远程计算机运行一个简单的mllib函数(fpgrowth)。

默认情况下,我尝试这样连接:

`SparkConf conf = new SparkConf().setAppName("FPGrowth").setMaster("spark://some ip:7077").set("spark.cores.max", "10");`

但是连接失败,我也检查了netstat -plnt,并且没有程序在7077端口上监听。

是否有新的方法可以在cdh 6上连接sparkcontext?我想它现在已集成在纱线上,但是我应该如何连接到t并生成sparkcontext?

谢谢

1 个答案:

答案 0 :(得分:0)

不幸的是,在Spark中从本地模式切换到集群模式并非易事,但这是一个有据可查的过程。您还必须确保可能将文件放在HDFS上,以确保可以从每个群集的执行节点访问文件(如果使用的话)。

您首先必须确保在运行代码的计算机上配置了Hadoop的客户端,然后才能执行代码。

通常,您将按以下方式使用spark-submit

$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode cluster \
    --driver-memory 4g \
    --executor-memory 2g \
    --executor-cores 1 \
    --queue thequeue \
    examples/jars/spark-examples*.jar \
    10

但是您也应该能够像这样执行它:

SparkSession spark = SparkSession.builder()
    .appName("app")
    .master("yarn")
    .getOrCreate();

您将在https://spark.apache.org/docs/latest/running-on-yarn.html中找到更多详细信息。