美文网首页
Spark的安装与集群配置

Spark的安装与集群配置

作者: 静宸丶水默含声 | 来源:发表于2018-08-07 16:16 被阅读19次

    一、spark的安装

    Spark安装包下载地址:http://spark.apache.org/downloads.html

    1.安装jdk,并配置jdk环境变量
    2.解压缩
    tar -xf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/
    
    3.修改文件夹
    mv spark-2.1.1-bin-hadoop2.7/ spark-2.1.1
    

    二、配置Spark【Standalone】

    1.进入spark-2.1.1/conf目录下
    • 将slaves.template复制为slaves
    • 将spark-env.sh.template复制为spark-env.sh
    • 修改slave文件,将work的hostname输入:
    hadoop202
    hadoop203
    
    • 修改spark-env.sh文件,添加如下配置:
    SPARK_MASTER_HOST=hadoop201
    SPARK_MASTER_PORT=7077
    
    2.进入sbin目录,修改spark-config.sh
    export JAVA_HOME=/opt/module/jdk1.7.0_79
    
    3.同步所有集群的其他节点配置
    xsync.sh /opt/module/spark-2.1.1/conf/
    xsync.sh /opt/module/spark-2.1.1/sbin/spark-config.sh
    

    三、操作spark

    1.启动和停止spark
    sbin/start-all.sh
    
    停止spark
    sbin/stop-all.sh
    
    2.访问spark集群
    • 命令行操作
    bin/spark-shell  --master spark://hadoop201:7077
    # 或者
    /opt/module/spark-2.1.1/bin/spark-shell \
    --master spark://hadoop201:7077 \
    --executor-memory 2g \
    --total-executor-cores 2
    
    bin/spark-submit
    

    例如:

    # 利用蒙特卡罗算法求PI
    /opt/module/spark-2.1.1/bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master spark://hadoop201:7077 \
    --executor-memory 1G \
    --total-executor-cores 2 \
    /opt/module/spark-2.1.1/examples/jars/spark-examples_2.11-2.1.1.jar \
    100
    

    四、配置Job History Server【Standalone】

    • 将spark-default.conf.template复制为spark-default.conf
      修改spark-default.conf文件,开启Log:
    spark.eventLog.enabled     true
    spark.eventLog.dir         hdfs://hadoop101:9000/directory
    spark.eventLog.compress    true
    

    【注意:HDFS上的目录需要提前存在】

    • 修改spark-env.sh文件,添加如下配置:
    export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://hadoop101:9000/directory"
    
    • 注意:如果遇到Hadoop HDFS的写入权限问题:org.apache.hadoop.security.AccessControlException
      解决方案: 在hdfs-site.xml中添加如下配置,关闭权限验证
    <property>
               <name>dfs.permissions</name>
               <value>false</value>
    </property>  
    

    五、配置Spark HA【Standalone】

    集群部署完了,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠.

    • Spark集群规划:master01,master02是Master;slave01,slave02,slave03是Worker
    • 安装配置Zookeeper集群,并启动Zookeeper集群
    • 停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置:
    export SPARK_DAEMON_JAVA_OPTS=" -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1,zk2,zk3 -Dspark.deploy.zookeeper.dir=/spark"
    
    具体步骤:
    • 1.在 master01节点上修改spark-env.sh配置文件
    • 2.将配置文件同步到所有节点。
    • 3.在master01上执行sbin/start-all.sh脚本,启动集群并启动第一个master节点,然后在master02上执行sbin/start-master.sh启动第二个master节点。
    • 4.程序中spark集群的访问地址需要改成:spark://master01:port1,master02:port2

    六、配置Spark【Yarn】

    • 修改Hadoop配置下的yarn-site.xml:
    <configuration>
    <!-- Site specific YARN configuration properties -->
            <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>master01</value>
            </property>
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
            </property>
            <!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
            <property>
                    <name>yarn.nodemanager.pmem-check-enabled</name>
                    <value>false</value>
            </property>
            <!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
            <property>
                    <name>yarn.nodemanager.vmem-check-enabled</name>
                    <value>false</value>
            </property>
    </configuration>
    
    • 修改Spark-env.sh 添加:
    HADOOP_CONF_DIR=/opt/hadoop/hadoop-2.7.3/etc/hadoop
    YARN_CONF_DIR=/opt/hadoop/hadoop-2.7.3/etc/hadoop
    

    相关文章

      网友评论

          本文标题:Spark的安装与集群配置

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