
专为大规模数据处理而设计的快速通用的计算引擎。类 Hadoop MapReduce 的通用并行计算框架。拥有 Hadoop MapReduce 所具有的优点。但不同于 MapReduce 的是 Job 中间输出结果可以缓存在内存中,从而不再需要读写 HDFS ,减少磁盘数据交互。因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的算法。Spark 是 Scala 编写,方便快速编程。
下载链接
UOS安装并配置sbt工具
UOS安装并配置Maven工具
touch Dockerfile
FROM amd64/buildpack-deps:buster-curl as installer
# 安装sbt工具
RUN set -x &&
curl -SL --output /var/tmp/sbt.tgz https://github.com/sbt/sbt/releases/download/v1.5.5/sbt-1.5.5.tgz &&
tar -xzvf /var/tmp/sbt.tgz -C /usr/local &&
rm -rf /var/tmp/sbt.tar.gz
# 安装maven工具
RUN set -x &&
curl -SL --output /var/tmp/maven.tar.gz http://mirrors.aliyun.com/apache/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz?spm=a2c6h.25603864.0.0.5feb2c3aIEQN7l &&
tar -xzvf /var/tmp/maven.tar.gz -C /usr/local &&
mv /usr/local/apache-maven-3.8.6 /usr/local/maven &&
rm -rf /var/tmp/maven.tar.gz
# 安装spark
RUN set -x &&
curl -SL --output /var/tmp/spark.tar.gz http://mirrors.aliyun.com/apache/spark/spark-3.2.2/spark-3.2.2-bin-without-hadoop.tgz?spm=a2c6h.25603864.0.0.76785afb8rDlcQ &&
tar -xzvf /var/tmp/spark.tar.gz -C /usr/local/ &&
mv /usr/local/spark-3.2.2-bin-without-hadoop /usr/local/spark &&
rm -rf /var/tmp/spark.tar.gz
FROM chenchongbiao/hive:v1
ENV SPARK_HOME=/usr/local/spark
ENV SBT_HOME=/usr/local/sbt
ENV MAVEN_HOME=/usr/local/maven
ENV PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin:$SBT_HOME/bin:$MAVEN_HOME/bin
WORKDIR $SPARK_HOME
COPY --from=installer ["/usr/local/sbt", "/usr/local/sbt"]
COPY --from=installer ["/usr/local/maven", "/usr/local/maven"]
COPY --from=installer ["/usr/local/spark", "/usr/local/spark"]
单机模式
修改配置
spark-env.sh
export JAVA_HOME=/usr/local/jdk1.8 export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop export SPARK_DIST_CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath) export SPARK_MASTER_HOST=linux01 export SPARK_MASTER_PORT=7077
standalone.yml
version: '3'
services:
linux01:
image: chenchongbiao/spark:v1
working_dir: /usr/local/spark
container_name: linux01
hostname: linux01
volumes:
- ./standalone/conf/spark-env.sh:/usr/local/spark/conf/spark-env.sh
restart: always
运行
运行单机模式
sudo docker-compose -f standalone.yml up -d
进入容器
sudo docker exec -it linux01 bash
进入spark-shell
spark-shell
退出
:quit伪分布模式 修改配置
spark-env.sh
# 开启Spark历史记录 SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs:///eventLog/ -Dspark.history.fs.cleaner.enabled=true" export JAVA_HOME=/usr/local/jdk1.8 export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop export SPARK_DIST_CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath) export SPARK_MASTER_HOST=linux01 export SPARK_MASTER_PORT=7077
workers
linux01运行
运行伪分布模式
sudo docker-compose -f pseudo.yml up -d
进入容器
sudo docker exec -it linux01 bash
命名空间格式化
hdfs namenode -format
启动hadoop
../hadoop/sbin/start-all.sh
启动spark
start-all.sh
进入spark-shell
spark-shell
退出
:quit分布模式 修改配置
同伪分布模式
运行运行分布模式
sudo docker-compose -f cluster.yml up -d
进入容器
sudo docker exec -it linux01 bash
命名空间格式化
hdfs namenode -format
启动hadoop
../hadoop/sbin/start-all.sh
启动spark
start-all.sh
进入spark-shell
spark-shell
退出
:quit仓库链接
大数据应用开发环境