Spark的部署及使用:1.spark的搭建

      spark有三种部署模式,分别为:本地部署(local),伪分布式部署(独立集群部署standalone),完全分布式集群部署(外部集群管理器部署)

      前两种大多数情况下用于开发调测,并不用于生产环境。

      一、搭建前的准备

      1.jdk1.8.0_171.zip(spark2.2及以后版本不在支持jdk1.7及以下版本)

      2.scala-2.11.1.tgz

      3.hadoop-3.0.3.tar.gz

      4.spark-2.3.1-bin-hadoop2.7.tgz(spark版本要和hadoop版本相对应)

      5.zookeeper-3.4.10.tar.gz

     下载以上压缩包,注意版本兼容性

二、本地模式搭建

        1.配置SSH免密码登陆

#生成公钥
ssh-keygen  -t  rsa 
#将公钥加入authorized_keys(授权用户)
cat /root/.ssh/id_rsa.pub >>  /root/.ssh/authorized_keys

         验证执行 ssh root@localhost  不需要密码直接登陆,配置成功。

        2.安装jdk

        将jdk压缩包解压到本地用户目录下(/usr/local/java),并配置环境变量:

vim /etc/profile

export JAVA_HOME=/usr/local/java
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$CLASSPATH

source /etc/profile

     然后执行java -version 正确显示jdk版本信息,表示jdk安装成功

       3.安装scala

        将scala压缩包解压到本地用户目录下(/usr/local/scala),并配置环境变量:

vim  /etc/profile

export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin

source /etc/profile

     然后执行scala -version正确显示scala版本信息,表示scala安装成功

     4.本地安装

     将spark压缩包解压到本地用户目录下(/usr/local/spark),并配置环境变量:

vim /etc/profile

export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin


source /etc/profile

   进入$SPARK_HOME/conf目录下,拷贝spark-env.sh.template文件至spark-env.sh,并编辑:

vim spark-env.sh


export SPARK_MASTER_HOST=master       #master节点主机名
export SPARK_MASTER_IP=10.10.10.1     #master节点IP地址
export JAVA_HOME=/usr/local/java
export SPARK_LOCAL_IP=10.10.10.1
export SPARK_WORKER_MEMORY=1g         #worker节点内存
export SPARK_WORKER_CORES=2           #worker节点核心数

 执行spark-shell,进入spark命令模式,既代表spark本地模式部署完毕。

执行/usr/local/spark/sbin/start-all.sh,启动spark。执行jps,如下:

22080 Master
22235 Jps
22190 Worker

 

二、伪分布式搭建

准备三台服务器:10.10.10.1(master),10.10.10.2(slave01),10.10.10.3(slave02)。(IP(hostname)}

(1)建立相同的账户

   分别在三台服务器上执行:

   useradd -u 0   -o  -g root  -G root -d /home/username username
   usermod -u 0  -o  -g root  -G root username
   passwd username 
   su username

输入密码,切换到新建用户(已下以spark为例)

(2)修改/etc/hosts

  分别修改三台服务器的/etc/hosts文件:

vim /etc/hosts
 
10.10.10.1  master  master
10.10.10.2  slave01 slave01
10.10.10.3  slave02 slave02

  (3)配置SSH免密码登陆(具体看上节)

  三台服务器相互之间都要配置

 (4) 安装jdk,scala(具体看上节)

 (5)安装spark

   修改spark-env.sh


export SPARK_MASTER_HOST=master       #master节点主机名
export SPARK_MASTER_IP=10.10.10.1     #master节点IP地址
export JAVA_HOME=/usr/local/java
export SPARK_LOCAL_IP=10.10.10.1
export SPARK_WORKER_MEMORY=1g         #worker节点内存
export SPARK_WORKER_CORES=2           #worker节点核心数

  修改slaves

cp slaves.template  slaves

vim slaves


slave01
slave02

slaves文件只在master结点起作用,只有添加在slaves文件中的结点才会被作为slave结点启动。

将jdk,scala,spark发送到其他两台服务器上,并配置相应环境变量

 

执行/usr/local/spark/sbin/start.all,执行jps,master如下:

23332 Jps
23256 Master


worker如下:

27222 Jps
27162 Worker


表示启动成功

三、完全分布式部署(以yarn为例)

     在伪分布式部署的基础上

  (1)安装hadoop

   解压hadoop到用户目录(/usr/local/hadoop)

   添加环境变量:

vim /etc/profile

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

   进入$HADOOP_CONF_DIR目录,

修改hadoop-env.sh文件

vim hadoop-env.sh

export JAVA_HOME=$JAVA_HOME


export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 
export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec 
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH 


  

 修改core-site.xml文件

vim core-site.xml

<configuration>
   <property>
       #分布式文件系统入口
     <name>fs.default.name</name>
     <value>hdfs://master:9000</value>
  </property>
  <property>
     <name>hadoop.tmp.dir</name>
     <value>/usr/local/hadoop/tmp</value>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
</configuration>


  修改hdfs-site.xml

vim hdfs-site.xml

<configuration>
     <property>
        #备份副本数
       <name>dfs.replication</name>
      <value>2</value>
     </property>
     <property>
        #程序中访问hdfs,修改关闭权限检查
       <name>dfs.permissions.enabled</name>
      <value>false</value>
    </property>
    <property>
        #名称节点数据目录
       <name>dfs.namenode.name.dir</name>
       <value>/usr/local/hadoop/hdfs/name</value>
    </property>
   <property>
       #数据节点数据目录
      <name>dfs.datanode.data.dir</name>
      <value>/usr/local/hadoop/hdfs/data</value>
   </property>
   <property>
     #名称节点http ui访问url
     <name>dfs.namenode.http-address</name>
     <value>master:50070</value>
   </property>
   <property>
     #二级名称节点http ui访问url
     <name>dfs.namenode.secondary.http-address</name>
     <value>master:50090</value>
  </property>
  <property>
      #开启hdfs web界面
     <name>dfs.webhdfs.enabled</name>
     <value>true</value>
  </property>
</configuration>

修改mapred-site.xml文件

vim mapred-site.xml

<configuration>
      <property>
        <name>mapreduce.framework.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>
     <property>
        <name>mapreduce.application.classpath</name>
        <value>
            /usr/local/hadoop/etc/hadoop,
            /usr/local/hadoop/share/hadoop/common/*,
            /usr/local/hadoop/share/hadoop/common/lib/*,
            /usr/local/hadoop/share/hadoop/hdfs/*,
            /usr/local/hadoop/share/hadoop/hdfs/lib/*,
            /usr/local/hadoop/share/hadoop/mapreduce/*,
            /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
            /usr/local/hadoop/share/hadoop/yarn/*,
            /usr/local/hadoop/share/hadoop/yarn/lib/*
        </value>
    </property>
</configuration>

修改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.ShuffleHandler</value>
        </property>
        <property>
                #资源管理节点地址
               <name>yarn.resourcemanager.address</name>
               <value>master:8032</value>
       </property>
       <property>
               <name>yarn.resourcemanager.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>
                #资源管理器web 访问地址
               <name>yarn.resourcemanager.webapp.address</name>
               <value>master:8088</value>
       </property>
</configuration>

修改slaves(文件,无则创建,hadoop3.0以上为workers文件)

slave01
slave02

进入/usr/local/hadoop/sbin,

修改start-dfs.sh及stop-dfs.sh文件,增加如下类容:

HDFS_DATANODE_USER=spark
HDFS_DATANODE_SECURE_USER=spark
HDFS_NAMENODE_USER=spark
HDFS_SECONDARYNAMENODE_USER=spark

修改start-yarn.sh及stop-yarn.sh文件,增加如下内容:

YARN_RESOURCEMANAGER_USER=spark
HADOOP_SECURE_DN_USER=spark
YARN_NODEMANAGER_USER=spark

复制hadoop到其他两台服务器,并配置相应环境变量

scp -r /usr/local/hadoop root@spark02:/usr/local/

执行:

hadoop namenode -format

格式化名称节点,(如发现报错,可清理名称节点目录,重新执行)

执行 /usr/local/hadoop/sbin/start-all.sh,执行jps查看:

master如下:

5171 SecondaryNameNode
5561 ResourceManager
4810 NameNode
6060 Jps


slave如下:

5012 Jps
4698 NodeManager
4589 DataNode


表示hadoop部署成功

(2)修改spark

修改spark-env.sh

export SPARK_HOME=/usr/local/spark
export HADOOP_CONF_DIR=$HADOOP_CONF_DIR
export YARN_CONF_DIR=$HADOOP_CONF_DIR
export SPARK_DIST_CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath)

 

至此部署完成

 

*HA完全分布式部署将在本文最后章节讲解

*附录

hadoop配置文件参数汇总:

https://blog.csdn.net/weijie0917/article/details/52620611

hadoop命令大全:

https://blog.csdn.net/weijie0917/article/details/52620611

hadoop2.0常用端口及查看方法:

https://www.cnblogs.com/jancco/p/4447756.html

hadoop3.0新特性

https://www.cnblogs.com/corolcorona/p/6823842.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值