如果没搭建hbase,详情请看这篇https://abytelalala.cn/index.php/2024/06/26/%e5%9f%ba%e4%ba%8eubentudocker%e6%90%ad%e5%bb%bahadoop%ef%bc%8czookeeper%ef%bc%8chbase/
安装包
下载安装包
scala-2.12.13.tgz
spark-3.0.0-bin-hadoop3.2.tgz
jackson-databind-2.10.1.jar
//下载链接Central Repository: com/fasterxml/jackson/core/jackson-databind/2.10.1 (maven.org)
scala-2.12.13.tgz
spark-3.0.0-bin-hadoop3.2.tgz
拖动到mobaXterm的虚拟机页面/home/cust目录
在每个机器节点上创建目录,也就是输入下面两行命令
su -
mkdir /jara
jackson-databind-2.10.1.jar
自己新建jara文件夹,将这个jar拖动到mobaXterm的虚拟机页面/home/cust/jara目录
移动到hadoop01上,移动一次就行,配置好再复制到另两台就行了
su -
docker ps //查看指定的容器id
docker cp /home/cust/jara/jackson-databind-2.10.1.jar <指定容器id>:/jara/ //移动到docker里
docker cp /home/cust/scala-2.12.13.tgz <指定容器id>:/usr/local/ //移动到docker里
docker cp /home/cust/spark-3.0.0-bin-hadoop3.2.tgz <指定容器id>:/usr/local/ //移动到docker里
进入hadoop01终端
docker exec -it hadoop01 bash
配置spark
cd /usr/local
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz
mv spark-3.0.0-bin-hadoop3.2 /usr/local/spark
cd /usr/local/spark/conf
mv spark-defaults.conf.template spark-defaults.conf
mv slaves.template slaves
spark-defaults.conf
nano spark-defaults.conf
spark.driver.extraClassPath /jara/jackson-databind-2.10.1.jar
spark.executor.extraClassPath /jara/jackson-databind-2.10.1.jar
slaves
nano slaves
hadoop01
hadoop02
hadoop03
spark-env.sh
nano spark-env.sh
SPARK_MASTER_HOST=hadoop01
SPARK_MASTER_PORT=7077
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop/
export SPARK_CLASSPATH=/usr/local/hbase/lib/*
export SCALA_HOME=/usr/local/spark/
export HADOOP_CONF_DIR=/usr/loacl/hadoop/etc/hadoop/
export SPARK_WORKER_MERMORY=8G
spark-config.sh
cd ../sbin/
nano spark-config.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
环境变量配置以及复制
cd /usr/local/
tar -zxvf scala-2.12.13.tgz
mv scala-2.12.13 /usr/local/scala
nano /etc/profile
export SCALA_HOME=/usr/local/scala
export PATH=.:$SCALA_HOME/bin:$PATH
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile
scp /jara/jackson-databind-2.10.1.jar hadoop02:/jara
scp /jara/jackson-databind-2.10.1.jar hadoop03:/jara
scp /etc/profile hadoop03:/etc
scp /etc/profile hadoop02:/etc
scp -r scala hadoop02:/usr/local
scp -r scala hadoop03:/usr/local
scp -r spark/ hadoop02:/usr/local
scp -r spark/ hadoop03:/usr/local
测试
cd /usr/local/spark/bin
spark-shell
//ctrl+C 退出
python3 --version //检查python自带的是什么版本
spark-env.sh 文件中,设置 PYSPARK_PYTHON 环境变量的路径为正确的 Python 解释器路径,在每个节点上都改一遍
nano spark-env.sh
//加入如下内容
export PYSPARK_PYTHON=/usr/bin/python3.8 # 这里的版本为 Python 3.8,可以在/usr/bin里面用ls命令具体自己看看,好像版本不能过高,3.8就正好。
加入之后就可以检查pyspark了
pyspark
然后会出现命令行,就说明可以了
启动一个master节点
start-master.sh --webui-port 8081
启动一个worker节点
start-slave.sh spark://192.168.1.110:7077 --webui-port 8082
//这里面你需要知道这个你的docker映射到服务器端口的服务器ip是多少,替换我这个ip,端口刚才我们设置的就是7077没错不用改。
关闭这俩节点
stop-slave.sh
stop-master.sh
或者直接启动全部,但注意这里已经把hadoop同名命令配置环境变量了,所以要使用相关目录的命令。
/usr/local/spark/sbin/start-all.sh --webui-port 8081
最后jps进程是这些
root@hadoop01:~# jps
2530 QuorumPeerMain
10403 ThriftServer
2211 NodeManager
4579 HRegionServer
10980 Worker
3366 NameNode
10810 Master
11163 Jps
4428 HMaster
1870 ResourceManager
1534 DataNode
root@hadoop01:~#
//可以备份提交个镜像
/usr/local/spark/sbin/stop-all.sh
hbase-daemon.sh stop thrift
stop-hbase.sh
zkServer.sh stop//这个要三台机器都分别停止,别的只要在主节点hadoop01就可以了
stop-all.sh
docker stop hadoop01 hadoop02 hadoop03
docker commit hadoop01 hbase:spark
//指定是spark版本的hbase镜像,叫这个镜像名字是因为之前教程里是这个镜像,这里指定了部署完spark版本的