docker下的spark集群,调整参数榨干硬件,docker pyspark

docker下的spark集群,调整参数榨干硬件SPARK_WORKER_CORES: 2
SPARK_WORKER_MEMORY: 2g
SPARK_WORKER_PORT: 8881
SPARK_WORKER_WEBUI_PORT

SPARK_WORKER_CORES: 2

SPARK_WORKER_MEMORY: 2g

SPARK_WORKER_PORT: 8881

SPARK_WORKER_WEBUI_PORT: 8082

SPARK_PUBLIC_DNS: 本地主机

链接:

掌握

公众:

7012

7013

7014

7015

8881

第:卷

./conf/worker2:/conf

./data/worker2:/tmp/数据

注意,volume参数映射到docker-compose.yml中同一级别的conf和data目录,如上所示。这里只列出worker1和worker2的内容,workers3到worker6的内容类似。

hdfs的文件目录导致的磁盘空间不足问题

首先我们看一下hdfs的文件目录结构。

第:卷

hadoop_datanode1:/hadoop/dfs/数据

上面的hadoop_datanode1数据卷配置位于docker-compose.yml末尾,默认语句为:

第:卷

hadoop_namenode:

hadoop_datanode1:

hadoop_datanode2:

hadoop_datanode3:

hadoop_historyserver:

容器运行后,运行命令docker Inspection datanode1 查看容器信息。与数据量相关的信息包括:

《坐骑》: [

{

“类型”:“体积”,

“名称”:“temp_hadoop_datanode1”,

“源”:“/var/lib/docker/volumes/temp_hadoop_datanode1/_data”,

“目的地”:“/hadoop/dfs/data”,

“司机”:“本地”,

“模式”:“读写”,

“RW”: 正确,

“传播‘:’”

}

]

可以看到hdfs容器的文件目录对应主机上的/var/lib/docker/volumes。

4. 使用df -m 检查磁盘空间。如下所示,“/var/lib/docker/volumes”所在设备“/dev/nvme0n1p3”只有20G可用空间(29561)。如果这个空间不够,而HDFS默认的副本数是3,那么显然会存储大量的文件。

root@willzhao-deepin:/data/work/spark/temp# df -m

文件系统1M 块使用情况可用挂载点的使用情况(%)

udev 7893 0 7893 0% /dev

tmpfs 1584 4 1581 1% /运行

/dev/nvme0n1p3 43927 12107 29561 30% /

tmpfs 7918 0 7918 0% /dev/shm

tmpfs 5 1 5 1% /运行/锁定

tmpfs 7918 0 7918 0% /sys/fs/cgroup

/dev/nvme0n1p4 87854 181 83169 1% /home

/dev/nvme0n1p1 300 7 293 3% /boot/efi

/dev/sda1 468428 109152 335430 25% /数据

tmpfs 1584 1 1584 1% /运行/用户/108

tmpfs 1584 0 1584 0% /运行/用户/0

上面的磁盘信息显示设备/dev/sda1还有300G,所以将hdfs文件目录映射到/dev/sda1可以缓解磁盘空间问题,因此docker-compose可以帮助hdfs配置三个数据节点。 yml 文件将被修改为如下所示:

数据节点1:

image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8

容器名称: 数据节点1

依赖_on:

名称节点

第:卷

./hadoop/datanode1:/hadoop/dfs/data

环境文件:

./hadoop.env

数据节点2:

image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8

容器名称: 数据节点2

依赖_on:

名称节点

第:卷

./hadoop/datanode2:/hadoop/dfs/data

环境文件:

./hadoop.env

数据节点3:

image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8

容器名称:数据节点3

依赖_on:

名称节点

第:卷

./hadoop/datanode3:/hadoop/dfs/data

环境文件:

./hadoop.env

然后删除以下配置:

第:卷

hadoop_namenode:

hadoop_datanode1:

hadoop_datanode2:

hadoop_datanode3:

hadoop_historyserver:

开发master的4040和work的8080端口

通过UI页面观察任务执行过程中的细节,可以帮助您更全面、直观地了解执行情况。因此,需要更改开放端口的配置。

如下所示,expose参数增加4040表示对外暴露4040端口,ports参数增加4040:4040表示将容器的4040映射到主机的4040端口。

大师:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: Master

command: bin/spark-class org.apache.spark.deploy.master.Master -h master

主机名: master

环境:

MASTER: Spark : //主控:7077

SPARK_CONF_DIR: /conf

SPARK_PUBLIC_DNS: 本地主机

链接:

名称节点

公众:

4040

7001

7002

7003

7004

7005

7077

6066

端口:

4040:4040

6066:6066

7077:7077

8080:8080

第:卷

./conf/master:/conf

./data:/tmp/数据

./jars:/root/jars

您还应该访问worker的网页来检查worker的状态并查看任务日志(这非常重要)。这里需要注意的一件事是有多个工人。以下配置将worker1的environment.SPARK_WORKER_WEBUI_PORT配置为8081,暴露8081,并将容器上的8081映射到主机上的8081。配置了worker2的environment.SPARK_WORKER_WEBUI_PORT。 8082,暴露8082,将容器的8082映射到主机的8082。

工人1:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: Worker 1

command: bin/spark-class org.apache.spark.deploy.worker.Worker Spark: //master:7077

主机名: 工作人员1

环境:

SPARK_CONF_DIR: /conf

SPARK_WORKER_CORES: 2

SPARK_WORKER_MEMORY: 2g

SPARK_WORKER_PORT: 8881

SPARK_WORKER_WEBUI_PORT: 8081

SPARK_PUBLIC_DNS: 本地主机

链接:

掌握

公众:

7012

7013

7014

7015

8881

8081

端口:

8081:8081

第:卷

./conf/worker1:/conf

./data/worker1:/tmp/数据

工人2:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: Worker 2

command: bin/spark-class org.apache.spark.deploy.worker.Worker Spark: //master:7077

主机名: 工作人员2

环境:

SPARK_CONF_DIR: /conf

SPARK_WORKER_CORES: 2

SPARK_WORKER_MEMORY: 2g

SPARK_WORKER_PORT: 8881

SPARK_WORKER_WEBUI_PORT: 8082

SPARK_PUBLIC_DNS: 本地主机

链接:

掌握

公众:

7012

7013

7014

7015

8881

8082

端口:

8082:8082

第:卷

./conf/worker2:/conf

./data/worker2:/tmp/数据

worker3-worker6的配置与上面类似,但注意它使用不同的端口号。

至此,更改已完成,最终版本的docker-compose.yml 包含以下内容:

版本:“2.2”

服务:

名称节点:

image: bde2020/hadoop-namenode:1.1.0-hadoop2.7.1-java8

容器名称:名称节点

第:卷

./hadoop/namenode:/hadoop/dfs/名称

./input_files:/input_files

环境:

CLUSTER_NAME=测试

环境文件:

./hadoop.env

端口:

50070:50070

资源经理:

image: bde2020/hadoop-resourcemanager:1.1.0-hadoop2.7.1-java8

容器名称: 资源管理器

依赖_on:

名称节点

数据节点1

数据节点2

环境文件:

./hadoop.env

历史服务器:

image: bde2020/hadoop-historyserver:1.1.0-hadoop2.7.1-java8

容器名称: 历史服务器

依赖_on:

名称节点

数据节点1

数据节点2

第:卷

./hadoop/historyserver:/hadoop/yarn/时间线

环境文件:

./hadoop.env

节点管理器1:

image: bde2020/hadoop-nodemanager:1.1.0-hadoop2.7.1-java8

容器名称: 节点管理器1

依赖_on:

名称节点

数据节点1

数据节点2

环境文件:

./hadoop.env

数据节点1:

image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8

容器名称: 数据节点1

依赖_on:

名称节点

第:卷

./hadoop/datanode1:/hadoop/dfs/data

环境文件:

./hadoop.env

数据节点2:

image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8

容器名称: 数据节点2

依赖_on:

名称节点

第:卷

./hadoop/datanode2:/hadoop/dfs/data

环境文件:

./hadoop.env

数据节点3:

image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8

容器名称:数据节点3

依赖_on:

名称节点

第:卷

./hadoop/datanode3:/hadoop/dfs/data

环境文件:

./hadoop.env

大师:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: Master

command: bin/spark-class org.apache.spark.deploy.master.Master -h master

主机名: master

环境:

MASTER: Spark : //主控:7077

SPARK_CONF_DIR: /conf

SPARK_PUBLIC_DNS: 本地主机

链接:

名称节点

公众:

4040

7001

7002

7003

7004

7005

7077

6066

端口:

4040:4040

6066:6066

7077:7077

8080:8080

第:卷

./conf/master:/conf

./data:/tmp/数据

./jars:/root/jars

工人1:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: Worker 1

command: bin/spark-class org.apache.spark.deploy.worker.Worker Spark: //master:7077

主机名: 工作人员1

环境:

SPARK_CONF_DIR: /conf

SPARK_WORKER_CORES: 2

SPARK_WORKER_MEMORY: 2g

SPARK_WORKER_PORT: 8881

SPARK_WORKER_WEBUI_PORT: 8081

SPARK_PUBLIC_DNS: 本地主机

链接:

掌握

公众:

7012

7013

7014

7015

8881

8081

端口:

8081:8081

第:卷

./conf/worker1:/conf

./data/worker1:/tmp/数据

工人2:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: Worker 2

command: bin/spark-class org.apache.spark.deploy.worker.Worker Spark: //master:7077

主机名: 工作人员2

环境:

SPARK_CONF_DIR: /conf

SPARK_WORKER_CORES: 2

SPARK_WORKER_MEMORY: 2g

SPARK_WORKER_PORT: 8881

SPARK_WORKER_WEBUI_PORT: 8082

SPARK_PUBLIC_DNS: 本地主机

链接:

掌握

公众:

7012

7013

7014

7015

8881

8082

端口:

8082:8082

第:卷

./conf/worker2:/conf

./data/worker2:/tmp/数据

工人3:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: Worker 3

command: bin/spark-class org.apache.spark.deploy.worker.Worker Spark: //master:7077

主机名: 工作人员3

环境:

SPARK_CONF_DIR: /conf

SPARK_WORKER_CORES: 2

SPARK_WORKER_MEMORY: 2g

SPARK_WORKER_PORT: 8881

SPARK_WORKER_WEBUI_PORT: 8083

SPARK_PUBLIC_DNS: 本地主机

链接:

掌握

公众:

7012

7013

7014

7015

8881

8083

端口:

8083:8083

第:卷

./conf/worker3:/conf

./data/worker3:/tmp/数据

工人4:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: 工人4

command: bin/spark-class org.apache.spark.deploy.worker.Worker Spark: //master:7077

主机名: 工作人员4

环境:

SPARK_CONF_DIR: /conf

SPARK_WORKER_CORES: 2

SPARK_WORKER_MEMORY: 2g

SPARK_WORKER_PORT: 8881

SPARK_WORKER_WEBUI_PORT: 8084

SPARK_PUBLIC_DNS: 本地主机

链接:

掌握

公众:

7012

7013

7014

7015

8881

8084

端口:

8084:8084

第:卷

./conf/worker4:/conf

./data/worker4:/tmp/数据

工人5:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: Worker 5

command: bin/spark-class org.apache.spark.deploy.worker.Worker Spark: //master:7077

主机名: 工作人员5

环境:

SPARK_CONF_DIR: /conf

SPARK_WORKER_CORES: 2

SPARK_WORKER_MEMORY: 2g

SPARK_WORKER_PORT: 8881

SPARK_WORKER_WEBUI_PORT: 8085

SPARK_PUBLIC_DNS: 本地主机

链接:

掌握

公众:

7012

7013

7014

7015

8881

8085

端口:

8085:8085

第:卷

./conf/worker5:/conf

./data/worker5:/tmp/数据

工人6:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: Worker 6

command: bin/spark-class org.apache.spark.deploy.worker.Worker Spark: //master:7077

主机名: 工作人员6

环境:

SPARK_CONF_DIR: /conf

线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识

一线互联网P7面试集锦+各种大厂面试集锦

学习笔记以及面试真题解析

8

容器名称: Worker 5

command: bin/spark-class org.apache.spark.deploy.worker.Worker Spark: //master:7077

主机名: 工作人员5

环境:

SPARK_CONF_DIR: /conf

SPARK_WORKER_CORES: 2

SPARK_WORKER_MEMORY: 2g

SPARK_WORKER_PORT: 8881

SPARK_WORKER_WEBUI_PORT: 8085

SPARK_PUBLIC_DNS: 本地主机

链接:

掌握

公众:

7012

7013

7014

7015

8881

8085

端口:

8085:8085

第:卷

./conf/worker5:/conf

./data/worker5:/tmp/数据

工人6:

image: gettyimages/spark:2.3.0-hadoop-2.8

容器名称: Worker 6

command: bin/spark-class org.apache.spark.deploy.worker.Worker Spark: //master:7077

主机名: 工作人员6

环境:

SPARK_CONF_DIR: /conf

线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识

[外部链接图像正在传输.(img-WmRfnKtO-1719155238251)]

一线互联网P7面试集锦+各种大厂面试集锦

[外部链接图片正在传输中.(img-GIn1uz58-1719155238252)]

学习笔记以及面试真题解析

[正在传输外部链接图像.(img-PqZfyRPp-1719155238252)]

#以上关于Docker中调整参数对Spark集群和硬件进行压力的信息仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91854.html

(0)
CSDN的头像CSDN
上一篇 2024年6月23日
下一篇 2024年6月23日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注