本地搭建 Glue Spark History Server

本地搭建 Glue Spark History Server 步骤

问题描述:

https://docs.amazonaws.cn/glue/latest/dg/monitor-spark-ui-history.html

文档中提供了两种搭建方式,cloudformation和docker image。第一种方式中国区不支持。所以中国区要想查看Glue job 的 history ui 只能用docker image自建server。而文档里提供的 Dockerfile 中使用的国外镜像源,非常慢,我测试了一下按文档上的步骤搭建完成需要1个多小时。并且只能通过代理访问,不能在EC2服务器以外的浏览器访问。所以有了这篇文章。这套流程搭建仅需5-10分钟。

解决的痛点:

  1. 修改 docker 镜像源为国内源,加快docker构建速度。

  2. 将获取spark jar的方式从 maven 下载换成了由本地提供。避免从maven官方库下载过程。

  3. 配置docker服务启动后允许外部网络访问。

解决方案:

https://github.com/aws-samples/aws-glue-samples/tree/master/utilities/Spark_UI/

  • 准备一个较大存储空间的EC2,从 github 拉取文件。
$ sudo yum install -y git
$ git clone https://github.com/aws-samples/aws-glue-samples.git
$ cd ./aws-glue-samples/utilities/Spark_UI/
  • 手动下载 spark 源文件,并解压
$ wget https://dlcdn.apache.org/spark/spark-3.3.2/spark-3.3.2-bin-without-hadoop.tgz
$ tar -xzf spark-3.3.2-bin-without-hadoop.tgz
完成后的目录如下:
[hadoop@ip-10-0-2-113 Spark_UI]$ pwd
/home/hadoop/aws-glue-samples/utilities/Spark_UI
[hadoop@ip-10-0-2-113 Spark_UI]$ ls
Dockerfile  pom.xml  README.md  spark-3.3.2-bin-without-hadoop  spark-3.3.2-bin-without-hadoop.tgz

  • 修改 Dockerfile 文件
$ vim Dockerfile
	:set number   显示行号,在第8行后回车,加入下面的配置
	ADD spark-3.3.2-bin-without-hadoop /opt/spark
	然后注释掉 10-13 行,保存退出。

效果如下:
ADD pom.xml /tmp
ADD spark-3.3.2-bin-without-hadoop /opt/spark
#RUN curl -o ./spark-3.3.0-bin-without-hadoop.tgz https://archive.apache.org/dist/spark/spark-3.3.0/spark-3.3.0-bin-without-hadoop.tgz
#RUN tar -xzf spark-3.3.0-bin-without-hadoop.tgz && \
#    mv spark-3.3.0-bin-without-hadoop /opt/spark && \
#    rm spark-3.3.0-bin-without-hadoop.tgz

  • 安装 docker 服务
$ sudo yum -y install docker
  • 指定docker国内镜像源。
创建或编辑一个 daemon.json 配置文件,填写下面的配置内容
$ sudo vim /etc/docker/daemon.json
	{
	 "registry-mirrors" : [
	   "https://mirror.ccs.tencentyun.com",
	   "http://registry.docker-cn.com",
	   "http://docker.mirrors.ustc.edu.cn",
	   "http://hub-mirror.c.163.com"
	 ]
	}

  • 启动docker服务
$ sudo systemctl start docker
  • 拉取镜像
[hadoop@ip-10-0-2-113 Spark_UI]$ pwd
/home/hadoop/aws-glue-samples/utilities/Spark_UI
$ sudo docker build -t glue/sparkui:latest ./
  • 启动Spark history server
$ sudo docker run -itd -e \
SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=s3a://用来存放Spark日志的桶名/自定义目录名/ -Dspark.hadoop.fs.s3a.access.key=你的AK -Dspark.hadoop.fs.s3a.secret.key=你的SK -Dspark.hadoop.fs.s3a.endpoint=s3.cn-north-1.amazonaws.com.cn" \
-p 0.0.0.0:13030:18080 \
glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"

# -p 我这里用EC2的13030端口映射到了docker内的18080端口,只有用 0.0.0.0 才能让外部访问。
  • 确保你的本地浏览器与你的EC2网络连接是通的,然后访问你的History server服务地址:
http://你的EC2公有DNS:13030/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QiaoLiar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值