美文网首页
在Linux集群上部署Spark

在Linux集群上部署Spark

作者: 大数据与人工智能 | 来源:发表于2017-10-13 16:44 被阅读0次

简介

Spark 的安装部署比较简单,用户访问官网下载最新版本或历史版本,参阅官方文档作为参考。作者写本文时,最新的版本为2.2.0,因此此文章所述环境搭建均已Spark2.2.0版本为例。

Spark使用了Hadoop的HDFS作为持久化存储层,因此安装Spark时,应先安装与Spark版本兼容的Hadoop。同时Spark计算框架以Scala语言开发,对Scala,JDK版本也有具体要求。以版本2.2.0为例,需要java8,scala2.11.*。

本文的实际搭建环境为 Ubuntu16.04, 其他Linux发行版的安装类似,基本一致。

1 本地文件下载

2 安装 JAVA

  1. 将下载的JDK文件解压到/usr/local/jvm目录
  2. JDK 环境配置,用编辑器打开/etc/profile文件,加入如下内容:
    export JAVA_HOME = /use/local/jvm/jdk1.8.0_144
    export PATH = $PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
    
    关闭并保存profile文件
  3. 输入命令 source /etc/profile 使配置生效

3 安装 SCALA

  1. 找到下载好的安装包 scala-2.11.11.tgz

  2. 安装

    tar zxvf scala-2.11.11.tgz -C /usr/local/scala
    cd /usr/local/scala
    ln -s scala-2.11.11 scala
    
  3. 配置,打开/etc/profile,添加如下语句:

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

4 配置SSH免密登录

在分布式系统中,通常使用SSH服务来启动Slave节点上的程序,当节点数量比较大的时候,频繁的输入密码进行身份认证是比较差的体验,切安全性不一定高。使用SSH公私钥的方式达到SSH免密码登录。

首先在MASTER节点上创建一对公司钥(公钥文件 ~/.ssh/id_rsa.pub;私钥文件 /.ssh/id_rsa),然后把公钥拷贝到woeker节点上(/.ssh/authorized_keys)

5 Hadoop的安装配置

  • 将hadoop binary压缩包解压到目标目录(软链接自由选择用不用)

    tar zvxf hadoop-2.7.4.tar.gz -C /usr/local/hadoop
    ln -s hadoop-2.7.4 hadoop
    
  • 配置:“core-site.xml”:Hadoop的核心信息,包括临时目录、访问地址等;

        <property>
            <name>fs.defaultFS</name>name>
            <value>hdfs://Master:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file://root/bigdata/tmp</value>
        </property>
        <property>
            <name>io.file.buffer.szie</name>
            <value>131702</value>
        </property>
    
  • 配置:“yarn-site.xml”:可以简单理解为配置相关job的处理;

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.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>
        <name>yar.resourcemanager.webapp.address</name>
        <value>Master:8088</value>
    </property>
    
  • 创建 namenode 和 datanode目录,并配置路径

mkdir -p /hdfs/namenode
mkdir -p /hdfs/datanode
  • 配置:“hdfs-site.xml”:可以确定文件的备份个数、数据文件夹的路径;

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/hdfs/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/hdfs/datanode</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>true</value>
    </property>
    
  • 配置“mapredsite.xml”

    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>Master:10020</value>
    </property>
    <property>
        <name>mapreduce.hobhistory.webapp.address</name>
        <value>Master:19888</value>
    </property>
    
  • 配置”slaves“文件,在其中加入所有从节点的主机名

    x.x.x.x worker1
    x.x.x.x worker2
    
  • 格式化namenode

/usr/local/hadoop/hadoop-2.7.4/bin/hadoop namenode -format

6 Spark 的安装配置Spark

  • 解压spark binary 到目标目录
tar zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /usr/local/spark/spark-2.2.0-bin-hadoop2.7
  • 配置spark
    1. /etc/profile 文件添加:
    export SPARK_HOME=/usr/local/spark/spark-2.2.0-bin-hadoop2.7
    PATH=$PATH:$SPARK_HOME/bin
    
    1. 配置 /etc/hosts,加入集群中master以及哥哥worker节点的ip与hostname配对
    x.x.x.x Master-name
    x.x.x.x worker1
    x.x.x.x Worker2
    x.x.x.x Worker3
    
    1. 进入/usr/local/spark/spark-2.2.0-bin-hadoop2.7/conf,命令行执行
    cp spark-env.sh.template spark-env.sh
    vi spark-env.sh
    
    1. 文件末尾加入
    export JAVA_HOME=/usr/local/jvm/jdk1.8
    export SCALA_HOME=/usr/local/scala/scala
    export SPARK_MASTER_IP=127.0.1.1
    export SPARK_WORKER_MEMORY=1g
    
    保存并退出,执行
    cp slaves.template slaves
    vi slaves
    # 输入 worker节点的hostname
    worker1
    worker2
    worker3
    

7 Hadoop与Spark 集群的复制

我们到此为止已经完成了一台主机的配置,现在将该环境及部分配置文件从Master分发到各个Worker节点上。在集群环境中,有一台主机想多台主机间的文件传输一般使用pssh工具完成。为此,在Master上建立一个workerlist.txt,其中保存了所有Worker的IP.

复制环境 命令行
JDK环境 pssh -h workerlist -r /usr/local/scala /
SCALA环境 pssh -h workerlist -r /usr/local/scala /
Hadoop环境 pssh -h workerlist -r /usr/local/hadoop /
Spark环境 pssh -h workerlistt -r /usr/local/hadoop /
系统配置 pssh -h workerlist /etc/hosts /, pssh -h workerlist /etc/profile /

至此,Spark Linux 集群环境搭建完毕。

8 Spark 集群试运行
最近还在学习中,随时更新

相关文章

  • 在Linux集群上部署Spark

    简介 Spark 的安装部署比较简单,用户访问官网下载最新版本或历史版本,参阅官方文档作为参考。作者写本文时,最新...

  • Linux集群部署Spark

    一.系统环境安装 JDK下载、安装 JDK下载地址:https://www.oracle.com/technetw...

  • Spark 的 Yarn-cluster 模式和 Yarn-cl

    Spark 支持 Yarn 集群的部署模式,在 Spark On Yarn 模式下,每个 Spark 的 Exec...

  • 面试 | Spark知识点@20190101

    Spark有那几种部署模式,每种模式特点是什么? 本地模式:spark可以不跑在hadoop集群上,可以通过在本地...

  • Linux上redis集群部署

    我的CSDN网址:Linux上redis集群部署

  • 安装Spark

    Spark是什么 Spark是一个集群计算系统,可以在集群上部署和运行并行的应用,Spark初始是运行Scala应...

  • spark streaming + flume+python(编

    一、环境部署 hadoop集群2.7.1flume 1.7.0spark集群:spark-2.0.1-bin-ha...

  • 面试 | Spark知识点@20190102

    Spark基本架构 从集群部署的角度来看,Spark集群由集群管理器(Cluster Manager)、工作节点(...

  • 0901 Spark Standalone Mode

    转载请注明出处,谢谢合作~ Spark 独立集群部署模式 安全机制(Security) 安装 Spark 独立集群...

  • Redis停止的命令

    Redis停止的命令 我的redis是部署在linux机器上的,而且是redis集群。下面的命令都是在linux上...

网友评论

      本文标题:在Linux集群上部署Spark

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