赞
踩
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端口为history server端口的WebUI,展示信息为已完成和未完成的应用信息,当4040端口关闭后,可以通过18080端口查看相关信息。
演示如下:
首先创建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端口为展示master的信息的默认端口,主要展示信息如下:
查看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。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。