美文网首页
spark集群搭建

spark集群搭建

作者: 竞媒体 | 来源:发表于2020-05-27 17:25 被阅读0次

    在上篇基础上安装spark集群

    安装scala

    scala-2.13.2.tgz   链接: https://pan.baidu.com/s/1Sd1t7ZJnE4NoaiQTUqjahw 提取码: arnc

    第一步:上传至/usr/local/scala并解压scala-2.13.2.tgz

    tar -zvxf scala-2.13.2.tgz

    第二步:配置环境变量

    vim  /etc/profile

    在/etc/profile文件中添加以下环境变量

    export SCALA_HOME=/usr/local/scala/scala-2.13.2

    export PATH=$PATH:$SCALA_HOME/bin

    第三步:使环境变量生效

    source /etc/profile

    第四步:将scala-2.13.2至slave1、slave2

    scp -r /usr/local/scala/scala-2.13.2  slave1:/usr/local/scala

    scp -r /usr/local/scala/scala-2.11.8  slave2:/usr/local/scala

    分别在slave1、salve2上重复第2步

    第五步:验证

    分别在master、salve1、salve2中执行scala -version,如果安装成功显示版本。

    安装spark集群

    上传spark-2.2.0-bin-hadoop2.7.tgz

    mv spark-2.2.0-bin-hadoop2.7 spark

    修改spark-env.sh配置文件

    vim spark-env.sh

    export JAVA_HOME=/root/jdk1.8.0_251

    export SCALA_HOME=/root/scala-2.13.2

    export HADOOP_HOME=/usr/local/hadoop/hadoop-2.10.0

    export SPARK_HOME=/root/spark

    export SPARK_WORKER_CORES=1

    # 每一个Worker最多可以使用的cpu core的个数

    #设置实例数

    export SPARK_WORKER_INSTANCES=1

    # 每一个Worker最多可以使用的内存

    export SPARK_WORKER_MEMORY=1G

    export SPARK_MASTER_HOST=mm

    # 配置JAVA_HOME,一般来说,不配置也可以,但是可能会出现问题

    # 一般来说,spark任务有很大可能性需要去HDFS上读取文件

    # 如果说你的spark就读取本地文件,也不需要yarn管理,不用配

    # 设置Master的主机名

    # 提交Application的端口,默认就是这个,万一要改呢,改这里

    #export SPARK_MASTER_PORT=7077

    修改slaves配置文件,添加Worker的主机列表

    mv slaves.template slaves

     vim slaves

    Slave1

    Slave2

    把SPARK_HOME/sbin下的start-all.sh和stop-all.sh这两个文件重命名

    比如分别把这两个文件重命名为start-spark-all.sh和stop-spark-all.sh

    原因:

    如果集群中也配置HADOOP_HOME,那么在HADOOP_HOME/sbin目录下也有start-all.sh和stop-all.sh这两个文件,当你执行这两个文件,系统不知道是操作hadoop集群还是spark集群。修改后就不会冲突了,当然,不修改的话,你需要进入它们的sbin目录下执行这些文件,这肯定就不会发生冲突了。我们配置SPARK_HOME主要也是为了执行其他spark命令方便

    把spark安装包分发给其他节点

    在集群所有节点中配置SPARK_HOME环境变量

    export SPARK_HOME=/root/spark

    export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

    在spark master节点启动spark集群

    start-spark-all.sh

    通过WEB查看状态

    namenode的webUI端口:50070

    yarn的web端口:8088

    spark集群的web端口:8080

    spark-job监控端口:4040

    安装pydev(参考官方文档 https://github.com/pyenv/pyenv)

    git clone https://github.com/pyenv/pyenv.git ~/.pyenv

    For bash:

    echo'export PYENV_ROOT="$HOME/.pyenv"'>>~/.bash_profileecho'export PATH="$PYENV_ROOT/bin:$PATH"'>>~/.bash_profile

    For Ubuntu Desktop:

    echo'export PYENV_ROOT="$HOME/.pyenv"'>>~/.bashrcecho'export PATH="$PYENV_ROOT/bin:$PATH"'>>~/.bashrc

    For Zsh:

    echo'export PYENV_ROOT="$HOME/.pyenv"'>>~/.zshrcecho'export PATH="$PYENV_ROOT/bin:$PATH"'>>~/.zshrc

    For Fish shell:

    set-UxPYENV_ROOT$HOME/.pyenvset-Uxfish_user_paths$PYENV_ROOT/bin$fish_user_paths

    安装python

    pydev install 3.6.5

    vim /etc/profile

    export PYSPARK_PYTHON=/root/.pyenv/versions/3.6.0/bin/python

    source /etc/profile

    运行pyspark

    Welcome to

          ____              __

        / __/__  ___ _____/ /__

        _\ \/ _ \/ _ `/ __/  '_/

      /__ / .__/\_,_/_/ /_/\_\  version 3.0.0-preview2

          /_/

    Using Python version 3.6.5 (default, May 28 2020 11:03:33)

    SparkSession available as 'spark'.

    >>>

    自此pyspark相关环境配置完成

    测试pyspark on yarn运行

    由于经常用到第三方的python库,这样在每台worker节点上去安装第三方库不太现实。

    可以使用下面的命令提交到cluster

    spark-submit   

    --master yarn 

    --deploy-mode cluster 

    --conf spark.yarn.dist.archives=hdfs:///user/hduser/data/spark_test.zip#pyenv 

     --conf spark.yarn.appMasterENV.PYSPARK_PYTHON=pyenv/3.6.0/bin/python 

    /root/spark/examples/src/main/python/als.py

    spark.yarn.dist.archives:hdfs:///user/hduser/data/spark_test.zip#pyenv  指定压缩文件地址,压缩文件被分发到 executor 上,并且解压,#pyenv 代表解压到的目录

    spark.yarn.appMasterEnv.PYSPARK_PYTHON:指定使用的 python 环境;pyenv 即上面的解压目录,3.6.0 即spark_test.zip解压后的目录。

    相关文章

      网友评论

          本文标题:spark集群搭建

          本文链接:https://www.haomeiwen.com/subject/fnxwahtx.html