转载——学习之路——Spark(2)

本文介绍了如何搭建Spark集群,包括配置SSH免密登录、安装JDK和Scala、配置Hadoop环境,以及Spark的相关设置。在四台机器上完成了从环境准备到集群配置的全过程。
摘要由CSDN通过智能技术生成


本文转载于 www.zicesun.com icesuns.github.io
本文讲介绍如何搭建spark集群。

搭建spark集群需要进行一下几件事情:

  1. 集群配置ssh无秘登录
  2. java jdk1.8
  3. scala-2.11.12
  4. spark-2.4.0-bin-hadoop2.7
  5. hadoop-2.7.6

上述所有的文件都安装在/home/zhuyb/opt文件夹中。

服务器

服务器是实验室的,选用了一台master和三台slave机器.IP和机器名在hosts文件中做了映射,因此可以通过hostname直接访问机器。

ip addrhostname
219.216.64.144master
219.216.64.200hadoop0
219.216.65.202hadoop1
219.216.65.243hadoop2

配置shh免密登录

详情参考集群环境ssh免密码登录设置
shh免密登录配置其实很容易,我们现在有四台机器,首先我们master上生成新的公钥和私钥文件。

ssh-keygen -t rsa                     #.ssh文件夹将出现id_rsa,id_rsa.pub
cat id_rsa.pub >> authorized_keys     #将公钥拷贝到authorized_keys文件中

然后按照同样的方式在三台slave机器上生成公钥和私钥,并将各自的authorized_keys文件拷贝到master上,并将文件中的公钥追加到master的authorized_keys文件中。

ssh-copy-id -i master #将公钥拷贝到master的authorized_keys中

最后讲master的authorized_keys文件拷贝到三台slave机器上。至此,四台机器即可实现ssh免密登录。

安装JDK和Scala

JDK版本是1.8, Scala版本是2.11。Scala 2.12与spark 2.4版本有些不兼容,在后续编程的时候会出现一些问题,之后应该会解决。讲jdk和scala文件解压之后,可在~/.bashrc 文件中配置环境变量。

export JAVA_HOME=/home/zhuyb/opt/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

export SCALA_HOME=/home/zhuyb/opt/scala-2.11.12
export PATH=${SCALA_HOME}/bin:$PATH

按照上述方式配置好之后,然后执行命令 source ~/.bashrc。所有的操作需要在每台机器上进行配置。

配置Hadoop

  1. 讲Hadoop文件解压到~/opt/文件夹下。
tar -zxvf hadoop-2.7.3.tar.gz
mv hadoop-2.7.3 ~/opt
  1. ~/.bashrc文件中配置环境变量,并执行source ~/.bashrc生效

    export HADOOP_HOME=/home/zhuyb/opt/hadoopp-2.7.6
    export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin/:$PATH
    export CLASSPATH=.:$HADOOP_HOME/lib:$CLASSPATH
    export HADOOP_PREFIX=/home/zhuyb/opt/hadoop-2.7.6
    
  2. 修改相应的配置文件

    a. 修改$HADOOP_HOME/etc/hadoop/slaves,将原来的localhost删除,改成如下内容:

        hadoop0
        hadoop1
        hadoop2
    

    b. 修改$HADOOP_HOME/etc/hadoop/core-site.xml

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/home/zhuyb/opt/hadoop-2.7.6/tmp</value>
        </property>
    
    </configuration>
    
    

    c. 修改$HADOOP_HOME/etc/hadoop/hdfs-site.xml

        <configuration>
        <property>
            <name>dfs.datanode.address</name>
            <value>0.0.0.0:50010</value>
        </property>
    
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>master:50090</value>
        </property>
        <!-- 备份数:默认为3-->
         <property>
            <name>dfs.replication</name>
             <value>3</value>
         </property>
        <!-- namenode-->
         <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/home/zhuyb/tmp/dfs/name</value>
         </property>
        <!-- datanode-->
         <property>
             <name>dfs.datanode.data.dir</name>
             <value>file:/home/zhuyb/tmp/dfs/data</value>
    </property>
    </configuration>
    

    d. 复制template,生成xml, cp mapred-site.xml.template mapred-site.xml,修改$HADOOP_HOME/etc/hadoop/mapred-site.xml

    <configuration>
    <!-- mapreduce任务执行框架为yarn-->
        <property>
             <name>mapreduce.framework.name</name>
             <value>yarn</value>
        </property>
    <!-- mapreduce任务记录访问地址-->
        <property>
              <name>mapreduce.jobhistory.address</name>
              <value>master:10020</value>
         </property>
        <property>
               <name>mapreduce.jobhistory.webapp.address</name>
                <value>master:19888</value>
         </property>
    </configuration>
    

    e. 修改$HADOOP_HOME/etc/hadoop/yarn-site.xml

        <configuration>
    	<!-- Site specific YARN configuration properties -->
    <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    
    </configuration>
    

    f. 修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh,修改JAVA_HOME

    export JAVA_HOME=~/opt/jdk1.8.0_121
    
  3. 将master Hadoop文件夹拷贝到Hadoop0,hadoop1,hadoop2三台机器上

scp -r ~/opt/hadoop-2.7.3 zhuyb@hadoop0:~/opt

配置Spark

  1. 将spark文件解压到~/opt下,然后在~/.bashrc配置环境变量,并执行source ~/.bashrc
export SPARK_HOME=/home/zhuyb/opt/spark-2.4.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME
  1. 复制spark-env.sh.template成spark-env.sh,cp spark-env.sh.template spark-env.sh修改$SPARK_HOME/conf/spark-env.sh,添加如下内容:
export JAVA_HOME=/home/zhuyb/opt/jdk1.8.0_201
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
  1. 复制slaves.template成slaves,cp slaves.template slaves,修改$SPARK_HOME/conf/slaves,添加如下内容:
hadoop0
hadoop1
hadoop2
  1. 修改hadoop0, hadoop1, hadoop2.
    修改hadoop1, hadoop2,hadoop0, $SPARK_HOME/conf/spark-env.sh,将export SPARK_LOCAL_IP改成hadoop1, hadoop2,hadoop0的IP

引用

Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值