最近在学习spark,想着着手搭建一下spark环境,几年前买的网课一直没看(太懒),跟着网课视频一步步安装,踩了不少坑,所以对课程提供的配置文件进行了调整,最终成功运行。修改后的配置文件放在下方链接了,可以点击链接下载。
https://download.csdn.net/download/qq_28319843/88328673
文件目录
以下文件安装包文件较大,为上传到资源中,其中的配置文件上传到资源中。
apache-hive-2.3.2-bin.tar.gz
hadoop-2.7.3.tar.gz
jdk-8u101-linux-x64.tar.gz
mysql-5.5.45-linux2.6-x86_64.tar.gz
mysql-connector-java-5.1.37-bin.jar
scala-2.11.8.tgz
spark-2.3.0-bin-hadoop2.7.tgz
├── apache-hive-2.3.2-bin.tar.gz
├── hadoop-2.7.3.tar.gz
├── jdk-8u101-linux-x64.tar.gz
├── mysql-5.5.45-linux2.6-x86_64.tar.gz
├── mysql-connector-java-5.1.37-bin.jar
├── scala-2.11.8.tgz
└── spark-2.3.0-bin-hadoop2.7.tgz
├── build.sh
├── build_network.sh
├── Dockerfile
├── config
│ ├── apt.conf
│ ├── core-site.xml
│ ├── hadoop-env.sh
│ ├── hdfs-site.xml
│ ├── hive-site.xml
│ ├── init_hive.sh
│ ├── init_mysql.sh
│ ├── mapred-site.xml
│ ├── master
│ ├── masters
│ ├── nohup.out
│ ├── pip.conf
│ ├── profile
│ ├── restart-hadoop.sh
│ ├── restart_containers.sh
│ ├── slaves
│ ├── spark-defaults.conf
│ ├── spark-env.sh
│ ├── ssh_config
│ ├── start-hadoop.sh
│ ├── start_containers.sh
│ ├── stop_containers.sh
│ └── yarn-site.xml
集群的整体构架
创建spark镜像
创建一个叫spark的文件夹,将整个文件目录拷贝进去。在该目录下打开终端
运行build.sh脚本,创建spark镜像
sh build.sh
运行结束后运行docker images ls可以查看建立好的镜像
docker images ls
启动容器
进入到config文件下,运行start_containers.sh启动容器
sh start_containers.sh
通过docker ps查看构建的镜像,
或者通过docker客户端查看
查看是否成功
进去容器
# 进如容器
docker exec -it hadoop-maste /bin/bash
查看mysql
# 检验mysql是否配配置启动成功
mysql -uroot -proot -hhadoop-mysql
查看hive是否配置成功
进去hive
beeline -u "jdbc:hive2://hadoop-hive:10001/default;transportMode=http;httpPath=cliservice" --color=true -n root
查看hive中的表
为了验证是否配置成功,在hive中创建一个woker数据库,在使用spark将数据写到woker中的表里面
create database woker;
进入spark创建数据
# 进入到hadoop-maste中使用spark写入数据
pyspark --master spark://hadoop-maste:7077 --conf spark.pyspark.python=/usr/bin/python3
创建并写入数据
>>> data=[("anne",1),("john",1)]
>>> data=spark.createDataFrame(data,schema=["name","age"])
>>> data.write.saveAsTable('worker.test1')
>>> data.show()
+----+---+
|name|age|
+----+---+
|anne| 1|
|john| 1|
+----+---+
从hive中查看
use woker;
select * from test1;
过程中的坑
- dockfile文件中的ubuntu没有指定版本,导致直接用原来的dockerfile文件会出很多错误,所以修改成版本为18.04;
- python版本不能太高,否则pyspark运行不起来
- spark集群的配置,需要注意调整spark-defaults.conf中spark.executor.memory=512M
spark.driver.memory=512M;初始设置成2G,导致运行经常挂到。可以根据自己电脑的配置进行调节