美文网首页
Spark的安装

Spark的安装

作者: sf705 | 来源:发表于2017-04-30 14:56 被阅读71次

    以前看过Hadoop,熟悉Hadoop的具体流程,也看了部分源码,由于Spark比Hadoop高效,想一直看也没来得及,今天准备玩玩Spark,先从安装开始。

    版本

    Java:1.8
    Hadoop:2.7.0
    Spark:2.1.0

    安装Java与Hadoop主要步骤

    • 配置jdk、Hadoop环境变量
    • 更改hosts文件
    • 配置SSH免密码登录
    • 修改Hadoop配置文件
    • 将配置好的jdk、Hadoop分发到各个节点
    • 格式化Hadoop

    Hadoop-2.7.0/etc/hadoop 目录里面

    本人将Java,Hadoop分别安装在,
    /home/my105/jdk1.9
    /home/my105/hadoop-2.7.0

    hadoop-env.sh

    export JAVA_HOME=/home/my105/jdk1.8

    配置core-site.xml

    <configuration>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://master:9000</value>
            </property>
            <property>
                    <name>io.file.buffer.size</name>
                    <value>131072</value>
            </property>
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>file:/home/my105/tmp</value>
            </property>
            <property>
                    <name>hadoop.proxyuser.hduser.hosts</name>
                    <value>*</value>
            </property>
            <property>
                    <name>hadoop.proxyuser.hduser.groups</name>
                    <value>*</value>
            </property>
    </configuration>
    

    配置YARN,yarn-site.xml

    <configuration>
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
            </property>
            <property>
                    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                    <value>org.apache.hadoop.mapred.ShuffleHandle</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.address</name>
                    <value>master:8032</value>
            </property>
            <property>
                    <name>yarn.resouremanager.scheduler.address</name>
                    <value>master:8030</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.resource-tracker.address</name>
                    <value>master:8031</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.admin.address</name>
                    <value>master:8033</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.webapp.address</name>
                    <value>master:8088</value>
            </property>
    </configuration>
    

    配置mapred-site.xml

    <configuration>
            <property>
                    <name>mapreduce.framwork.name</name>
                    <value>yarn</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.address</name>
                    <value>master:10020</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.webapp.address</name>
                    <value>master:19888</value>
            </property>
    </configuration>
    

    配置hdfs-site.xml

    此处我将NameNode和DataNode目录放:/home/my105/hadoop-2.7.0/nodetemp 中的两个文件,安装完成后执行:
    sudo chmod 777 hadoop-2.7.0 -R
    以上便于hadoop文件有权限创建上面的文件

    <configuration>
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>master:9001</value>
            </property>
            <property>
                    <name>dfs.namenode.name.dir</name>
                    <value>file:/home/my105/hadoop-2.7.0/nodetemp/namenode</value>
            </property>
            <property>
                    <name>dfs.datanode.data.dir</name>
                    <value>file:/home/my105/hadoop-2.7.0/nodetemp/datanode</value>
            </property>
            <property>
                    <name>dfs.replication</name>
                    <value>3</value>
            </property>
            <property>
                    <name>dfs.webhdfs.enabled</name>
                    <value>true</value>
            </property>
    </configuration>
    

    配置master与slave文件

    如果没有发现master文件,自己创建一个

    master文件:
      master
    slaves文件:
      slave1 
      slave2
      slave3
    

    格式化 与启动

    将配置好的Hadoop与JDK分别scp到各个Slave中,然后格式化,启动,进入Hadoop-2.7.0/ 目录

    ./bin/hadoop namenode - format
    ./sbin/start-all.sh
    

    最后输入:jps,查看启动进程

    master主机:
    10648 ResourceManager
    10265 NameNode
    12939 Jps
    10494 SecondaryNameNode
    slave主机:
    6977 NodeManager
    7202 DataNode
    7821 Jps
    

    错误分析

    如果没有出现上面的,或者出现错误,进入hadoop-2.7.0/logs
    我一开始格式化后再重新格式化后,发现slave主机的DataNode启动不了,直接进入logs
    vi hadoop-my105-datanode-slave1.log
    发现了如下错误
    org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to master
    就是master和slave主机生成的NameNode和DataNode目录文件不一样,所以先把生成的文件删除,然后再格式化,或者将Uuid 拷贝过去

    Paste_Image.png

    Spark 安装

    先进入官网下载一个
    版本:Spark-2.1.0

    Paste_Image.png

    安装流程

    • 配置文件
    • 分发到各个节点
    • 启动
      由于是预先安装得Hadoop,所以在此处选择without hadoop
      配置文件,可能没有,将spark-2.1.0/conf 下的部分带template的改为如下名字,并添加

    配置spark-env.sh

    export JAVA_HOME=/home/my105/jdk1.8
    export HADOOP_HOME=/home/my105/hadoop-2.7.0
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    SPARK_MASTER_IP=master
    SPARK_LOCAL_DIRS=/home/my105/spark-2.1.0
    SPARK_DRIVER_MEMORY=1G
    

    配置slvaes

    slave1
    slave2
    slave3
    

    启动集群

    ./sbin/start-all.sh 启动,然后jps会发现如下内容
    master主机:Maser

    10648 ResourceManager
    10265 NameNode
    13018 Jps
    10494 SecondaryNameNode
    11855 Master
    

    slave主机:Worker

    6977 NodeManager
    7202 DataNode
    7895 Jps
    7498 Worker
    

    相关文章

      网友评论

          本文标题:Spark的安装

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