基于Kubernetes的Spark部署完全指南
副问题[/!--empirenews.page--]
【金融特辑】光大****科技部DBA女神带你从0到1揭秘MGR
【编者的话】本文是在Kubernets上搭建Spark集群的操纵指南,同时提供了Spark测试使命及相干的测试数据,通过阅读本文,你可以实践从建造Spark镜像、搭建Spark容器集群,到在集群上运行测试使命的完备流程。 Yarn曾经是Hadoop默认的资源编排打点平台。但最近环境有所变革,出格是对付Hadoop中的Spark,因为其与S3等其他存储平台集成得很好,而与Hadoop生态中其他组件反而没有太细密的关联,因此Kubernetes正敏捷更换Yarn,成为基于工具存储的Spark体系的默认编排打点平台。在这篇文章中,我们将深入研究如安在Kubernetes集群上构建和陈设Spark容器。因为Spark的运行依靠于数据,我们将设置Spark集群通过S3 API举办存储操纵。 构建Spark容器 在Kubernetes上陈设应用的第一步,是建设容器。固然有些项目会提供官方的容器镜像,但截至到写此文时,Apache Spark并没有提供官方镜像。因此我们将本身建设Spark容器,让我们从Dockerfile开始。 FROM java:openjdk-8-jdk
ENV hadoop_ver 2.8.2 ENV spark_ver 2.4.4
RUN mkdir -p /opt && cd /opt && curl ${hadoop_ver}/hadoop-${hadoop_ver}.tar.gz | tar -zx && ln -s hadoop-${hadoop_ver} hadoop && echo Hadoop ${hadoop_ver} installed in /opt
RUN mkdir -p /opt && cd /opt && curl ${spark_ver}/spark-${spark_ver}-bin-without-hadoop.tgz | tar -zx && ln -s spark-${spark_ver}-bin-without-hadoop spark && echo Spark ${spark_ver} installed in /opt
ENV SPARK_HOME=/opt/spark ENV PATH=$PATH:$SPARK_HOME/bin ENV HADOOP_HOME=/opt/hadoop ENV PATH=$PATH:$HADOOP_HOME/bin ENV LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
RUN curl -o /opt/spark/jars/hadoop-aws-2.8.2.jar RUN curl -o /opt/spark/jars/httpclient-4.5.3.jar RUN curl time/joda-time/2.9.9/joda-time-2.9.9.jar -o /opt/spark/jars/joda-time-2.9.9.jar RUN curl -o /opt/spark/jars/aws-java-sdk-core-1.11.712.jar RUN curl -o /opt/spark/jars/aws-java-sdk-1.11.712.jar RUN curl -o /opt/spark/jars/aws-java-sdk-kms-1.11.712.jar RUN curl -o /opt/spark/jars/aws-java-sdk-s3-1.11.712.jar
ADD start-common.sh start-worker start-master / ADD core-site.xml /opt/spark/conf/core-site.xml ADD spark-defaults.conf /opt/spark/conf/spark-defaults.conf ENV PATH $PATH:/opt/spark/bin 在这个Dockerfile中,我们起首从官方地点下载Apache Spark和Hadoop,然后从Maven获取关联的jar包。当全部关联的文件都已经下载并解压到一个特定的目次后,我们将这些重要的设置文件添加到镜像中。 在这个进程中,你可以很利便的添加本身情形特有的设置。 本来我们可以跳过以上步调,直接行使一个预先构建好的镜像,可是通过解读这些步调可以让我们的读者看到Spark容器内部的内容,高级用户可以据此修改来满意他们非凡的需求。 以上示例中行使到的Dockerfile和其他关联的设置文件,可以从这个GitHub客栈中获取。假如要行使这个客栈中的内容,请先行使以下呼吁将其克隆到当地: git clone git@github.com:devshlabs/spark-kubernetes.git 此刻,你可以按照必要在你的情形中举办任何变动,然后构建镜像,并上传到你行使的容器注册表中。在本文的示例中,我行使Dockerhub作为容器注册表,呼吁如下: cd spark-kubernetes/spark-container docker build . -t mydockerrepo/spark:2.4.4 docker push mydockerrepo/spark:2.4.4 记得将个中的mydockerrepo替代为你现实的注册表名字。 在Kubernetes上陈设Spark (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |