irpas技术客

Spark端口_tangfatter_spark端口

irpas 7703

一、4040端口

spark任务运行后,会将Driver所在机器绑定到4040端口,提供当前任务的监控页面。

此端口号默认为4040,展示信息如下:

调度器阶段和任务列表

RDD大小和内存使用情况

环境信息

正在运行的executors的信息

演示如下:

通过spark的java接口启动spark

SparkConf sc = new SparkConf(); // 创建一个SpakrConf对象用于配置Spark sc.setAppName("name") // 设定程序名字 .setMaster("local"); // 选择启动模式,这里用的local模式 SparkSession spark = SparkSession.builder().config(sc).getOrCreate(); //通过SparkSession启动 ...

启动Spark后可以通过localhost:4040端口查看当前任务情况(目前测试过这个localhost可以是127.0.0.1或127.0.1.1或本机IPv4地址)。

当有多个Spark上下文时,端口号会顺延,如4041、4042…

web端口可以通过spark.ui.port进行设置,例如:

SparkConf sc = new SparkConf(); sc.setAppName("name") .setMaster("local") .set("spark.ui.port", "4050"); // 设置后通过localhost:4050访问webui

注:4040端口仅在driver运行时存在,当程序结束,4040端口就不可访问了,这时可以通过history server访问历史任务信息

二、18080端口

18080端口为history server端口的WebUI,展示信息为已完成和未完成的应用信息,当4040端口关闭后,可以通过18080端口查看相关信息。

展示信息包含4040端口的所有信息

演示如下:

首先创建history sever的读取路径文件夹:

mkdir /usr/local/spark/spark-events(路径可自定义)

vi /usr/local/spark/conf/spark-env.sh

拷贝export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=/usr/local/spark/spark-events"到sarpk-env.sh中

? 注意:等于号后面的路径要与1中创建文件夹路径一致

启动history server:

cd /usr/local/spark/sbin

./start-history-server.sh

通过spark的java接口配置SparkConf:

SparkConf sc = new SparkConf(); sc.setAppName("name") .setMaster("local") .set("spark.eventLog.dir", "/usr/local/spark/spark-events") // 配置history server的存储路径,需要与1中读取路径一直 .set("spark.eventLog.enabled", "true") // 开启事件记录 .set("spark.eventLog.compress", "true") // 对存入的日志压缩

运行java代码后,然后即可通过localhost:18080查看历史任务信息

? 注:localhost是启动spark-history-server的机器的配置文件spark-env.sh中的SPARK_LOCAL_IP

history server端口号可以通过spark.history.ui.port进行设置,例如设置为28080:

vi /usr/local/spark/conf/spark-env.sh

export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=/usr/local/spark/spark-events -Dspark.history.ui.port=28080"

修改后重启history server:

./stop-history-server.sh

./start-history-server.sh

即可通过localhost:28080端口访问

三、8080端口

8080端口为展示master的信息的默认端口,主要展示信息如下:

Spakr master的urlworker信息任务信息

查看8080端口首先需要启动Spark StandAlone集群,这里通过手动启动:

命令行输入./sbin/start-master.sh启动master ,启动后可以在localhost:8080端口查看(localhost为机器的配置文件spark-env.sh中的SPARK_LOCAL_IP),此时还没有worker绑定到master

注:master的url可以通过spark-env.sh中的SPARK_MASTER_HOST和SPARK_MASTER_PORT修改。也可以在命令行启动时修改,例如./sbin/start-master.sh -h 127.0.0.1 -p 6666

绑定一个worker到master:

cd /usr/local/spark/sbin

./start-worker.sh spark://master'url(其中master'url可以从localhost:8080中查看)

注:worker启动时也可以通过-h和-p修改worker的url。

刷新8080端口网页,可以发现已经出现一个worker,这时已经部署好了1个master+1个worker的集群了,点击woker id可以查看worker信息。

注:如果是worker是从另一台机器绑定到master,需要将worker所在及其的SPARK_LOCAL_IP更改为IPv4地址才能通过master所在机器查看worker信息。

通过java端开启一个任务(统计文档字数):

SparkConf sc = new SparkConf(); sc.setAppName("Simple Application") .setMaster("spark://172.16.14.197:7077") // 声明任务绑定到的master的url .set("spark.eventLog.dir", "/usr/local/spark/spark-events") .set("spark.eventLog.enabled", "true") .set("spark.eventLog.compress", "true"); SparkSession spark = SparkSession.builder().config(sc).getOrCreate(); // 如果是集群,这里的文档需要在每台worker上都存在,否则会报文件不存在错误 Dataset<String> testData = spark.read().textFile("/usr/local/spark/LICENSE"); Dataset<String> testData1 = spark.read().textFile("/usr/local/spark/NOTICE"); long num = testData.count(); long num1 = testData1.count(); System.out.println(num); System.out.println(num1); spark.stop();

执行后,可以通过18080端口查看任务运行情况。

8080端口号同样可以被修改,在spark-env.sh中加入SPARK_MASTER_WEBUI_PORT=9090,就将端口号修改成了9090。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #spark端口 #Sc #new #sparkconf