基于docker的Hadoop-spark集群安装(centos 7系统)
·
基于docker的Hadoop-spark集群安装(centos 7系统)
参考博客:https://zhuanlan.zhihu.com/p/421375012
推荐(个人电脑用作实验)配置:4~8G + 8核
使用操作系统 Centos 7,在VMware下进行的安装
步骤:
- 拉取大佬弄好的hadoop+spark的docker镜像:docker pull s1mplecc/spark-hadoop:3
- 编写docker-compose.yml,共享目录/opt/share到物理机 ~/docker/spark/share,方便修改和传文件
version: '2'
services:
spark:
image: s1mplecc/spark-hadoop:3
hostname: master
environment:
- SPARK_MODE=master
- SPARK_RPC_AUTHENTICATION_ENABLED=no
- SPARK_RPC_ENCRYPTION_ENABLED=no
- SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
- SPARK_SSL_ENABLED=no
volumes:
- ~/docker/spark/share:/opt/share
ports:
- '8080:8080'
- '4040:4040'
- '8088:8088'
- '8042:8042'
- '9870:9870'
- '19888:19888'
spark-worker-1:
image: s1mplecc/spark-hadoop:3
hostname: worker1
environment:
- SPARK_MODE=worker
- SPARK_MASTER_URL=spark://master:7077
- SPARK_WORKER_MEMORY=1G
- SPARK_WORKER_CORES=1
- SPARK_RPC_AUTHENTICATION_ENABLED=no
- SPARK_RPC_ENCRYPTION_ENABLED=no
- SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
- SPARK_SSL_ENABLED=no
volumes:
- ~/docker/spark/share:/opt/share
ports:
- '8081:8081'
spark-worker-2:
image: s1mplecc/spark-hadoop:3
hostname: worker2
environment:
- SPARK_MODE=worker
- SPARK_MASTER_URL=spark://master:7077
- SPARK_WORKER_MEMORY=1G
- SPARK_WORKER_CORES=1
- SPARK_RPC_AUTHENTICATION_ENABLED=no
- SPARK_RPC_ENCRYPTION_ENABLED=no
- SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
- SPARK_SSL_ENABLED=no
volumes:
- ~/docker/spark/share:/opt/share
ports:
- '8082:8081'
- 使用 docker-compose up -d构建容器和集群,docker ps查看启动的容器:

- 使用交互式命令进入容器(docker exec -it {容器名,不用写全称} /bin/bash),修改集群所有节点的 $HADOOP_HOME/etc/hadoop/core-site.xm文件,该镜像没有安装vi和vim编辑器,可以使用sed命令来修改文件,也可以在共享文件中修改后复制。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://{节点host名}:9000</value>
</property>
</configuration>
比如说:
- 根据官方文档,第一次启动HDFS需要格式化namenode节点:
文档:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html#Purpose:~:text=The%20first%20time%20you%20bring%20up%20HDFS%2C%20it%20must%20be%20formatted.%20Format%20a%20new%20distributed%20filesystem%20as%20hdfs%3A
$HADOOP_HOME/bin/hdfs namenode -format
- 在master节点启动集群
/opt/start-hadoop.sh
- 启动datanode节点:
$HADOOP_HOME/bin/hdfs --daemon start datanode
-
在master节点使用jps查看java进程,确保namenode, datanode,SecondaryNameNode都成功启动:

-
查看hdfs的datanode是否上线,使用 hdfs fsck / :

-
上传文件到hdfs和使用spark访问hdfs,可参考大佬的博客:https://zhuanlan.zhihu.com/p/421375012#:~:text=resourcemanager%0AStarting%20nodemanagers-,%E5%90%91%20HDFS%20%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6,-%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E5%B0%86
更多推荐
所有评论(0)