精华内容
下载资源
问答
  • 转载于... 准备工作及环境 两台主机 10.4.20.181 spark01 10.4.20.48 spark02 ...参考我的另一篇博客centos7下卸载自带的java安装jdk8 ...建议创建一个单独的用户spark以从Unix文件系统隔...

    转载于https://dxysun.com/2018/04/16/centosForHadoop/

    准备工作及环境

    两台主机

    10.4.20.181 spark01
    10.4.20.48 spark02

    系统均为centos7

    jdk已经装好

    参考我的另一篇博客centos7下卸载自带的java安装jdk8

    创建用户

    建议创建一个单独的用户spark以从Unix文件系统隔离Hadoop文件系统

    1

    2

    3

    4

    useradd hadoop

    passwd hadoop

    New password:

    Retype new password:

    授权 root 权限,在root下面加一条hadoop的hadoop ALL=(ALL) ALL,用root用户执行如下命令

    1

    vim /etc/sudoers

    添加如下内容

    1

    2

    root ALL=(ALL) ALL

    spark ALL=(ALL) ALL

    SSH 免秘钥

    参考我的另一篇博客CentOs7搭建hadoop spark集群之ssh免密登录

    hadoop集群搭建

    下载hadoop2.7.5并解压到相应目录

    我在本地window已经下好了hadoop-2.7.5.tar.gz的压缩包,并使用xftp将其上传到了主机spark01的/home/spark/download目录下
    在用户spark的主目录下(即/home/spark)创建app文件夹,用于安装hadoop和spark,将hadoop-2.7.5解压到app目录下

    1

    2

    mkdir /home/spark/app

    tar -zxf /home/spark/download/hadoop-2.7.5.tar.gz -C /home/spark/app

     

    进入app目录并修改hadoop-2.7.5的文件名

    1

    2

    cd /home/spark/app

    mv hadoop-2.7.5 hadoop

     

    环境变量

    如果是对所有的用户都生效就修改vim /etc/profile 文件
    如果只针对当前用户生效就修改 vim ~/.bahsrc 文件

    1

    sudo vim /etc/profile

     

    在文件末尾添加以下内容

    1

    2

    3

    4

    #hadoop

    HADOOP_HOME=/home/spark/app/hadoop/

    PATH=$HADOOP_HOME/bin:$PATH

    export PATH HADOOP_HOME

     

    使环境变量生效,运行下面的命令使/etc/profile文件生效

    1

    source /etc/profile

     

    ~/.bahsrc文件同理

    配置Hadoop

    集群/分布式模式需要修改 /home/spark/app/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。
    进入hadoop 配置文件目录

    1

    cd /home/spark/app/hadoop/etc/hadoop/

     

    编辑 hadoop-env.sh 文件,找到 JAVA_HOME 改为 JDK 的安装目录

    1

    2

    vim hadoop-env.sh

    export JAVA_HOME=/usr/java

     

    这里我的jdk安装目录为/usr/java

    修改 core-site.xml
    打开 core-site.xml文件并对其进行编辑,如下图所示。

    1

    vim core-site.xml

     

    修改内容如下

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    <configuration>

    <property>

    <name>fs.defaultFS</name>

    <value>hdfs://spark01:9000</value>

    </property>

    <property>

    <name>hadoop.tmp.dir</name>

    <value>file:/home/spark/app/hadoop/tmp</value>

    </property>

    </configuration>

     

    spark01是我的master节点名,你可以将spark01换成你的master节点名,hadoop.tmp.dir属性也要换成自己的

    修改 hdfs-site.xml
    打开hdfs-site.xml文件并对其进行编辑,如下图所示。

    1

    vim hdfs-site.xml

    修改内容如下

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    <configuration>

    <property>

    <name>dfs.namenode.secondary.http-address</name>

    <value>spark01:50090</value>

    </property>

    <property>

    <name>dfs.replication</name>

    <value>2</value>

    </property>

    <property>

    <name>dfs.namenode.name.dir</name>

    <value>file:/home/spark/app/hadoop/tmp/dfs/name</value>

    </property>

    <property>

    <name>dfs.datanode.data.dir</name>

    <value>file:/home/spark/app/hadoop/tmp/dfs/data</value>

    </property>

    </configuration>

     

    注意修改master节点名,我的是spark01,dfs.namenode.name.dir和dfs.datanode.data.dir这两个属性

    修改 mapred-site.xml
    目录下么没有这个文件,这有一个模板,我们需要先拷贝一份

    1

    2

    cp mapred-site.xml.template mapred-site.xml

    vim mapred-site.xml

    修改内容如下

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    <configuration>

    <property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

    </property>

    <property>

    <name>mapreduce.jobhistory.address</name>

    <value>spark01:10020</value>

    </property>

    <property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>spark01:19888</value>

    </property>

    </configuration>

     

    注意修改master节点名

    修改 yarn-site.xml

    1

    vim yarn-site.xml

    修改内容如下

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    <configuration>

     

    <!-- Site specific YARN configuration properties -->

     

         <property>

                 <name>yarn.resourcemanager.hostname</name>

                          <value>spark01</value>

         </property>

         <property>

                  <name>yarn.nodemanager.aux-services</name>

                          <value>mapreduce_shuffle</value>

         </property>

    </configuration>

     

    注意修改master节点名

    配置集群

    复制节点
    将spark01的hadoop文件夹重打包后复制到其他子节点

    1

    2

    3

    cd /home/spark/app

    tar zcf hadoop.tar.gz hadoop

    scp hadoop.tar.gz spark@spark02:/home/spark/app

    在其他子节点 解压

    1

    tar -zxf hadoop.tar.gz

     

    配置slaves文件

    修改(Master主机)spark01的/home/spark/app/hadoop/etc/hadoop/slaves文件
    该文件指定哪些服务器节点是datanode节点。删除locahost,添加所有datanode节点的主机名

    1

    2

    cd /home/spark/app/hadoop/etc/hadoop/

    vim slaves

     

    删除localhost,添加节点主机名,这里我将master节点也作为datanode节点使用

    1

    2

    spark01

    spark02

     

    关闭防火墙

    CentOS系统需要关闭防火墙
    CentOS系统默认开启了防火墙,在开启 Hadoop 集群之前,需要关闭集群中每个节点的防火墙。有防火墙会导致 ping 得通但 telnet 端口不通,从而导致 DataNode 启动了,但 Live datanodes 为 0 的情况。
    在 CentOS 6.x 中,可以通过如下命令关闭防火墙:

    1

    2

    sudo service iptables stop # 关闭防火墙服务

    sudo chkconfig iptables off # 禁止防火墙开机自启,就不用手动关闭了

     

    若用是 CentOS 7,需通过如下命令关闭(防火墙服务改成了 firewall):

    1

    2

    systemctl stop firewalld.service # 关闭firewall

    systemctl disable firewalld.service # 禁止firewall开机启动

     

    启动集群操作

    首次启动需要先在 Master 节点执行 NameNode 的格式化:

    1

    hdfs namenode -format # 首次运行需要执行初始化,之后不需要

     

    接着可以启动 hadoop 了,启动需要在 Master 节点上进行:

    1

    2

    3

    start-dfs.sh

    start-yarn.sh

    mr-jobhistory-daemon.sh start historyserver

     

    通过命令 jps 可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 、datanode进程,
    master节点jps进程
    在slave节点可以看到DataNode 和 NodeManager 进程
    slave节点jsp进程
    缺少任一进程都表示出错。如果进程都启动成功说明hadoop集群搭建成功
    另外还需要在 Master 节点上通过命令 hdfs dfsadmin -report 查看 DataNode 是否正常启动,如果 Live datanodes 不为 0 ,则说明集群启动成功。
    Live datanodes
    也可以通过 Web 页面看到查看 DataNode 和 NameNode 的状态:http://spark01:50070/。如果不成功,可以通过启动日志排查原因。
    spark01
    访问http://spark01:8088,查看yarn的工作状态
    spark01

    执行分布式实例

    首先创建 HDFS 上的用户目录:

    1

    hdfs dfs -mkdir -p /user/spark

     

    将 /home/spark/app/hadoop/etc/hadoop 中的配置文件作为输入文件复制到分布式文件系统中

    1

    2

    hdfs dfs -mkdir input

    hdfs dfs -put /home/spark/app/hadoop/etc/hadoop/*.xml input

     

    接着就可以运行 MapReduce 作业了:

    1

    hadoop jar /home/spark/app/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

     

    可能会有点慢,但如果迟迟没有进度,比如 5 分钟都没看到进度,那不妨重启 Hadoop 再试试。若重启还不行,则很有可能是内存不足引起,建议增大虚拟机的内存,或者通过更改 YARN 的内存配置解决。

    运行结果如下图所示
    MapReduce
    同样可以通过 Web 界面查看任务进度 http://spark01:8088/cluster
    任务进度
    执行如下命令查看执行完毕后的输出结果:

    1

    hdfs dfs -cat output/*

    输出结果
    输出结果

    关闭 Hadoop 集群也是在 Master 节点上执行的:

    1

    2

    3

    stop-yarn.sh

    stop-dfs.sh

    mr-jobhistory-daemon.sh stop historyserver

     

    至此,hadoop集群搭建成功

    展开全文
  • hadoopspark集群搭建,了解hadoop分布式、伪分布式等方式集群搭建
  • Spark 1.6.2 + Hadoop 2.7.2 集群搭建

    千次阅读 2016-07-16 19:39:48
    版本信息:Centos7 + ...Hadoop + Spark 集群搭建系列文章,建议按顺序参考: Hadoop & Spark 集群搭建 理念思想 Hadoop 2.7.2 集群搭建-预备工作 Hadoop 2.7.2 集群搭建 Spark 1.6.2 + Hadoop 2.7.2 集

    版本信息:Centos7 + Hadoop 2.7.2 + Spark 1.6.2 + Scala 2.11.8

    Hadoop + Spark 集群搭建系列文章,建议按顺序参考:

    Hadoop & Spark 集群搭建 理念思想

    Hadoop 2.7.2 集群搭建-预备工作

    Hadoop 2.7.2 集群搭建

    Spark 1.6.2 + Hadoop 2.7.2 集群搭建 (不用点了,就是本文)


    预备工作

    JDK 安装配置

    请参考 Hadoop 2.7.2 集群搭建-预备工作中 JDK 的安装和配置。

    Scala 安装配置

    1.下载后解压至合适目录

    [liuyao@master ~]$ cd 03Software/04BigData/
    [liuyao@master 04BigData]$ tar -xzvf scala-2.11.8.tgz --directory=/home/liuyao/00Hadoop/
    scala-2.11.8/
    scala-2.11.8/man/
    scala-2.11.8/man/man1/
    ……

    2.配置环境变量,在 /etc/profile 中添加如下内容

    export SCALA_HOME=/home/liuyao/00Hadoop/scala-2.11.8
    export PATH=$PATH:${SCALA_HOME}/bin

    3.使 /etc/profile 文件更新生效

    [liuyao@master ~]$ source /etc/profile

    4.在 master 主机上配置完毕后,把Scala整个文件夹分发到slave各节点,并配置环境变量

    SSH配置

    主要是配置 SSH 以实现集群各节点间免密码登录(公钥登录),请参考 Hadoop 2.7.2 集群搭建-预备工作中 SSH 的安装和配置。


    Hadoop安装配置

    此部分所有步骤一一列出,但部分步骤省略操作细节,详情请参考 Hadoop 2.7.2 集群搭建 一文中的内容。

    1.下载后解压至合适目录

    2.配置 Hadoop 环境变量

    3.编辑配置文件

    (1) 配置hadoop-env.sh文件

    (2) 配置core-site.xml文件

    <configuration>
        <property>
            <name>fs.defaultFS</name>
          <value>hdfs://master:9000</value>
        </property>
        <property> 
            <name>hadoop.tmp.dir</name> 
            <value>/home/liuyao/00Hadoop/hadoop-2.7.2/tmp</value> 
        </property>
        <property>
            <name>io.file.buffer.size</name>
            <value>131072</value>
        </property>
        <property>
            <name>hadoop.proxyuser.hduser.hosts</name> #Hadoop全分布模式里,此处是spark而非hduser?下同
            <value>*</value>
        </property>
        <property>
            <name>hadoop.proxyuser.hduser.groups</name>
            <value>*</value>
        </property>
    </configuration>

    (3) 配置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> #Hadoop全分布模式里,此处为8035而非8031?
        </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>

    (4) 配置mapred-site.xml文件,完全同Hadoop全分布模式

    <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>
    </configuration>

    (5) 配置hdfs-site.xml文件,完全同Hadoop全分布模式

    <configuration>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>master:9001</value>
        </property>
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
        <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
        </property>
    </configuration>

    (6) 配置slaves文件,完全同 Hadoop 全分布模式

    101.X.XX.XX1
    101.X.XX.XX2

    (7) 将以上配置文件分发到各个节点,实际上应该直接把整个 Hadoop 目录分发过去(若从节点没安装Hadoop的话)

    4.格式化namenode,启动并测试 Hadoop


    Spark 安装配置

    下载安装并配置环境

    1.从官网上下载后解压至合适目录

    选择的版本是spark-1.6.2-bin-hadoop2.6.tgz,虽然Hadoop是2.7.2的,之前下载的是without-hadoop版本,运行出错。

    [liuyao@master 04BigData]$ tar -xzvf spark-1.6.2-bin-hadoop2.6.tgz --directory=/home/liuyao/00Hadoop/
    spark-1.6.2-bin-hadoop2.6/
    spark-1.6.2-bin-hadoop2.6/NOTICE
    spark-1.6.2-bin-hadoop2.6/CHANGES.txt
    ……

    2.配置 Spark 环境变量,在 /etc/profie 里添加如下两行

    export SPARK_HOME=/home/liuyao/00Hadoop/spark-1.6.2-bin-hadoop2.6
    export PATH=$PATH:${SPARK_HOME}/bin

    编辑配置文件

    1.配置spark-env.sh文件,加入下面内容

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-0.b14.el7_2.x86_64
    export SCALA_HOME=/home/liuyao/00Hadoop/scala-2.11.8
    export SPARK_WORKER_MEMORY=4g
    export SPARK_MASTER_IP=101.X.XX.XX0
    export MASTER=spark://101.X.XX.XX0:7077
    export HADOOP_CONF_DIR=/home/liuyao/00Hadoop/hadoop-2.7.2/etc/hadoop

    2.配置slaves文件,加入下面内容

    101.X.XX.XX1
    101.X.XX.XX2

    3.将以上配置文件分发到各个节点,实际上应该直接把整个 Spark 目录分发过去(若从节点没安装 Spark 的话)

    启动集群

    1.启动 Hadoop

    # master节点
    [liuyao@master hadoop-2.7.2]$ start-dfs.sh
    Starting namenodes on [master]
    master: starting namenode, logging to ……
    101.X.XX.XX2: starting datanode, logging to ……
    101.X.XX.XX1: starting datanode, logging to ……
    Starting secondary namenodes [master]
    master: starting secondarynamenode, logging to ……
    
    [liuyao@master hadoop-2.7.2]$ start-yarn.sh
    starting yarn daemons
    starting resourcemanager, logging to ……
    101.X.XX.XX2: starting nodemanager, logging to ……
    101.X.XX.XX1: starting nodemanager, logging to ……
    
    [liuyao@master hadoop-2.7.2]$ jps
    6441 Jps
    5755 SecondaryNameNode
    5373 NameNode
    6126 ResourceManager
    # slave1节点,slave2节点与之一样
    [liuyao@slave1 hadoop-2.7.2]$ jps
    5328 DataNode
    5958 Jps
    5661 NodeManager

    2.启动 Spark

    # master节点,可以看到,成功启动了Master进程
    [liuyao@master spark-1.6.2-bin-hadoop2.6]$ ./sbin/start-all.sh 
    starting org.apache.spark.deploy.master.Master, logging to ……
    101.X.XX.XX2: starting org.apache.spark.deploy.worker.Worker, logging to ……
    101.X.XX.XX1: starting org.apache.spark.deploy.worker.Worker, logging to ……
    
    [liuyao@master spark-1.6.2-bin-hadoop2.6]$ jps
    6485 Master
    6584 Jps
    5755 SecondaryNameNode
    5373 NameNode
    6126 ResourceManager
    # slave1节点,可以看到,成功启动了Worker进程,slave2节点与之一样
    [liuyao@slave1 hadoop-2.7.2]$ jps
    5328 DataNode
    6090 Worker
    6282 Jps
    5661 NodeManager

    集群测试

    Spark支持两种方式运行样例: run-example 方式和 Spark Shell 方式

    1.run-example 方式

    (1) 输入代码

    [liuyao@master spark-1.6.2-bin-hadoop2.6]$ ./bin/run-example org.apache.spark.examples.SparkPi
    16/07/16 22:39:22 INFO spark.SparkContext: Running Spark version 1.6.2
    16/07/16 22:39:22 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    ……

    (2) 通过Web UI 查看集群状态

    浏览器中输入http://master:8080,可以观察集群整个状态,如下图所示

    这里写图片描述

    2.Spark Shell 方式

    (1) 上传文件至HDFS

    [liuyao@master hadoop-2.7.2]$ hdfs dfs -ls /
    Found 1 items
    drwx-wx-wx   - liuyao supergroup          0 2016-07-16 23:33 /tmp
    [liuyao@master hadoop-2.7.2]$ hdfs dfs -put README.txt /tmp/
    [liuyao@master hadoop-2.7.2]$ hdfs dfs -ls /tmp/
    Found 2 items
    -rw-r--r--   2 liuyao supergroup       1366 2016-07-16 23:45 /tmp/README.txt
    drwx-wx-wx   - liuyao supergroup          0 2016-07-16 23:33 /tmp/hive

    (2) 启动Spark-shell

    [liuyao@master bin]$ spark-shell 
    16/07/16 23:33:27 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    ……
    Welcome to
          ____              __
         / __/__  ___ _____/ /__
        _\ \/ _ \/ _ `/ __/  '_/
       /___/ .__/\_,_/_/ /_/\_\   version 1.6.2
          /_/
    
    Using Scala version 2.10.5 (OpenJDK 64-Bit Server VM, Java 1.8.0_91)
    ……
    16/07/16 23:33:30 INFO repl.SparkILoop: Created spark context..
    Spark context available as sc.
    ……
    16/07/16 23:34:07 INFO repl.SparkILoop: Created sql context (with Hive support)..
    SQL context available as sqlContext.

    (3) 交互式操作

    scala> val readmeFile = sc.textFile("hdfs://master:9000/tmp/README.txt")
    16/07/16 23:46:21 INFO storage.MemoryStore: Block broadcast_0 stored as values in memory (estimated size 62.4 KB, free 62.4 KB)
    ……
    readmeFile: org.apache.spark.rdd.RDD[String] = hdfs://master:9000/tmp/README.txt MapPartitionsRDD[1] at textFile at <console>:27
    
    scala> var theCount = readmeFile.filter(line=>line.contains("The"))
    theCount: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at filter at <console>:29
    
    scala> theCount.count
    16/07/16 23:47:19 INFO mapred.FileInputFormat: Total input paths to process : 1
    …… 
    16/07/16 23:47:21 INFO scheduler.DAGScheduler: Job 0 finished: count at <console>:32, took 1.251228 s
    res0: Long = 4
    
    scala> val wordCount = readmeFile.flatMap(line=>line.split(" ")).map(word=>(word,1)).reduceByKey(_+_)
    wordCount: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[5] at reduceByKey at <console>:29
    
    scala> wordCount.collect
    16/07/16 23:48:49 INFO spark.SparkContext: Starting job: collect at <console>:32
    …… 
    16/07/16 23:48:49 INFO scheduler.DAGScheduler: Job 1 finished: collect at <console>:32, took 0.222501 s
    res1: Array[(String, Int)] = Array((under,1), (this,3), (distribution,2), (Technology,1), (country,1), (is,1), (Jetty,1), (currently,1), (permitted.,1), (check,1), (have,1), (Security,1), (U.S.,1), (with,1), (BIS,1), (This,1), (mortbay.org.,1), ((ECCN),1), (using,2), (security,1), (Department,1), (export,1), (reside,1), (any,1), (algorithms.,1), (from,1), (re-export,2), (has,1), (SSL,1), (Industry,1), (Administration,1), (details,1), (provides,1), (http://hadoop.apache.org/core/,1), (country's,1), (Unrestricted,1), (740.13),1), (policies,1), (country,,1), (concerning,1), (uses,1), (Apache,1), (possession,,2), (information,2), (our,2), (as,1), ("",18), (Bureau,1), (wiki,,1), (please,2), (form,1), (information.,1), (ENC,1), (Export,2), (included,1), (asymmetric,1), (Commodity,1), (Softwar...

    (4) 通过Web UI 查看集群状态
    Spark - Job 界面:http://master:4040/jobs/

    这里写图片描述

    Spark - Stage 界面:http://master:4040/stages/

    这里写图片描述

    Spark - Master & Workers 界面:http://master:8080/

    这里写图片描述


    参考资料

    http://www.cnblogs.com/tonylp/p/5233369.html

    http://www.open-open.com/lib/view/open1419490748562.html

    http://blog.csdn.net/stark_summer/article/details/42458081

    展开全文
  • 基于HadoopSpark集群搭建 准备 Spark三种运行模式简介 Local模式 Local 模式是最简单的一种Spark运行方式,它采用单节点多线程(cpu)方式运行,local模式是一种OOTB(开箱即用)的方式,只需要在spark-env.sh...

    title: Spark集群搭建
    date: 2020-03-19 19:30:31
    tags: Hadoop

    基于Hadoop的Spark集群搭建

    准备

    Spark三种运行模式简介

    Local模式

    • Local 模式是最简单的一种Spark运行方式,它采用单节点多线程(cpu)方式运行,local模式是一种OOTB(开箱即用)的方式,只需要在spark-env.sh导出JAVA_HOME,无需其他任何配置即可使用,因而常用于开发和学习

    • 方式:./spark-shell - -master local[n] ,n代表线程数

    Standalone模式

    • Spark可以通过部署与Yarn的架构类似的框架来提供自己的集群模式,该集群模式的架构设计与HDFS和Yarn大相径庭,都是由一个主节点多个从节点组成,在Spark 的Standalone模式中,主,即为master;从,即为worker.

    Spark on Yarn

    • 简而言之,Spark on Yarn 模式就是将Spark应用程序跑在Yarn集群之上,通过Yarn资源调度将executor启动在container中,从而完成driver端分发给executor的各个任务。将Spark作业跑在Yarn上,首先需要启动Yarn集群,然后通过spark-shell或spark-submit的方式将作业提交到Yarn上运行。

    实验环境

    本文默认各位读者已经提前搭建好了Hadoop集群,配置好了Java、Hadoop环境变量

    实验环境:Hadoop-2.7.7、jdk-8u231、Scala-2.13.1、Spark-2.4.5

    安装Scala

    Spark依赖scala,所以在安装Spark之前,这里要先安装scala。在每个节点上都进行安装。为方便操作,我们会使用XShell远程连接虚拟机进行实验

    下载和解压

    Scala官网:http://www.scala-lang.org/

    点击Download后下来到other resources选择scala-2.13.1.tgz下载

    下载完成后使用Xftp将压缩包传输到四台虚拟机的/root/download目录下

    接下来我们使用XShell的‘发送键输入到所有会话’对四台虚拟机同时进行操作

    切换到download目录下开始解包

    cd /root/donwload

    tar -zxvf scala-2.13.1.tgz -C /root/app

    配置环境变量

    vi /etc/profile

    在profile配置文件最后添加如下内容

    export SCALA_HOME=/root/app/scala-2.13.1
    export PATH=$PATH:$SCALA_HOME/bin
    

    保存退出后刷新一下配置文件

    source /etc/profile

    验证是否安装成功

    输入以下命令以检查Scala是否安装成功

    scala -version

    sp1

    安装Spark

    下载和解压

    Spark官网:http://spark.apache.org/downloads.html

    选择相应配置,我们使用Hadoop2.7.7,所以选择如下文件下载

    sp2

    与上面Scala的下载一样,下载完成后我们使用Xftp将压缩包传输到四台虚拟机的/root/download目录下

    切换到download目录下开始解包

    cd /root/donwload

    tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /root/app

    解压完成后我们进入app目录改一下spark目录的名字

    cd /root/app

    mv spark-2.4.5-bin-hadoop2.7 spark

    配置环境变量

    vi /etc/profile

    在profile配置文件末尾添加如下内容:

    export SPARK_HOME=/root/app/spark
    export PATH=$PATH:$SPARK_HOME/bin
    export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    

    保存退出后,刷新一下配置文件

    source /etc/profile

    配置spark-env.sh

    cd /root/app/spark/conf

    cp spark-env.sh.template spark-env.sh 将该文件复制并重命名

    vi spark-env.sh

    在文件结尾添加如下内容

    export SCALA_HOME=/root/app/jdk1.8.0_231
    export JAVA_HOME=/root/app/jdk1.8.0_231
    export HADOOP_HOME=/root/app/hadoop-2.7.7
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export SPARK_HOME=/root/app/spark
    export SPARK_MASTER_IP=master
    export SPARK_EXECUTOR_MEMORY=1G
    

    修改slaves文件

    cp slaves.template slaves 将该文件复制并重命名

    vi slaves

    删除文件末尾的localhost,并修改为如下内容

    h1
    h2
    h3
    h4
    

    sp3

    启动Spark

    注意,启动操作仅在主机(h1)上执行

    cd /root/app/spark

    sbin/start-all.sh

    sp4

    启动完成后使用jps命令即可看到Master与Worker两个进程

    在浏览器输入"192.168.48.101:8080"可以登录到web端查看spark

    sp5

    最后我们检查以下spark-shell能否正常使用

    cd bin

    spark-shell

    sp6

    按Ctrl+C可以退出spark-shell

    至此,Spark on Yarn就安装完成啦

    展开全文
  • 目标: 在已经存在的4个节点的hadoop 2.6集群上基础上,搭建spark集群。 4个机器分别为: master、slave1、slave2、slave3 1、资源下载 ...

    在已经存在的4个节点的hadoop 2.6集群上基础上,搭建spark集群。
    4个机器分别为: master、slave1、slave2、slave3

    1、源下


    根据要求,SCALA要2.11.x。

    下载完后的文件:解压到/usr/local/ 目录下。
    scala-2.11.8.tgz
    spark-2.0.0-bin-hadoop2.6.tgz
    tar -zxvf scala-2.11.8.tgz 
    mv scala-2.11.8 /usr/local/
    tar -zxvf spark-2.0.0-bin-hadoop2.6.tgz
    mv spark-2.0.0-bin-hadoop2.6  /usr/local/

    3、SCALA、SPARK

    scala官网配置介绍


    spark官网配置介绍


    配置清单

    1、profile增加环境变量 (/etc/profile)

    export JAVA_HOME=/usr/local/jdk1.7.0_67
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export HADOOP_HOME=/usr/local/hadoop-2.6.0
    export PATH=$PATH:$HADOOP_HOME/bin
    export SCALA_HOME=/usr/local/scala-2.11.8
    export PATH=$PATH:$SCALA_HOME/bin

    2、slave (/usr/local/spark-2.0.0-bin-hadoop2.6/conf/slave )

    slave1
    slave2
    slave3

    3、spark-env.sh (/usr/local/spark-2.0.0-bin-hadoop2.6/conf/spark-env.sh  )

    export JAVA_HOME=/usr/local/jdk1.7.0_67
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export SPARK_MASTER_HOST=master
    export SPARK_WORKER_MEMORY=512m

    4、启动集群

    sbin/start-all.sh

    启动后通过jps命令查看进程有没有启动。
    可以看到Master、Worker进程则启动成功

    5、测试集群

    cd 到example/jar目录下。 运行样例任务。
    ../../bin/spark-submit --class org.apache.spark.examples.SparkPi     --master yarn     --deploy-mode cluster       spark-examples*.jar     10

    看能看到输出了pi的值。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30066956/viewspace-2123915/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/30066956/viewspace-2123915/

    展开全文
  • Hadoop&Spark集群搭建

    2020-04-30 04:06:06
    Spark集群搭建基础环境集群规划ZOOKEEPER 集群搭建解压安装包文件到指定路径下修改配置文件配置环境变量HADOOP 高可用集群安装解压安装包文件到 指定路径下修改配置文件修改 hadoo-env.sh修改 mapred-site.xml修改 ...
  • Hadoop+Spark集群搭建

    千次阅读 2016-07-23 00:36:23
    搭建Hadoop+Spark集群的方法这篇文章主要是介绍了怎么在Linux平台下搭建HadoopSpark集群,得声明一点的是Spark并不依赖于Hadoop
  • 本人搭建Hadoop集群基础之上的Yarn及Spark集群配置过程,及相应的学习文档。对Spark的Python编程指南进行了部分翻译。欢迎大家指正。
  • 基于Hadoop集群的Spark集群搭建

    千次阅读 2019-05-31 08:53:28
    基于Hadoop集群的Spark集群搭建 一. 单机版Spark搭建 (1)将下载下来的软件包拉至集群中(主节点上) (2)解压至指定目录 (3)将解压下的文件移至某个特定目录下并查看 (4)修改环境变量 (5)使环境变量生效并进入scala...
  • 基于Linux平台下的HadoopSpark集群搭建研究.pdf
  • Hadoop 2.7.2 集群搭建

    千次阅读 2016-07-14 22:46:53
    Hadoop + Spark 集群搭建系列文章,建议按顺序参考: Hadoop & Spark 集群搭建 理念思想 Hadoop 2.7.2 集群搭建-预备工作 Hadoop 2.7.2 集群搭建 (不用点了,就是本文) Spark 1.6.2 + Hadoop 2.7.2 集群...
  • 使用Docker在本地搭建hadoopspark集群 本环境使用的单个宿主主机而不是跨主机集群本spark集群环境存在的意义可能在 于便于本地开发测试使用非常轻量级和便捷这个部署过程最好在之前有过一定的 hadoopspark集群部署...
  • hadoop+spark集群搭建 文章目录hadoop+spark集群搭建1、版本介绍2、安装java3、Hadoop配置3.1、解压文件3.2、配置环境变量4.Hadoop伪分布4.1 配置IP映射:4.2 免密登录:4.3 修改Hadoop配置文件:4.3.1 core-site....
  • 搭建1个master,2个slave的集群方案。软件操作系统:ubuntu16.04 hadoophadoop-2.7.2.tar.gz scala:scala-2.11.8.tgz spark: spark-1.6.1-bin-hadoop2.6.tgz java:jdk-8u91-linux-x64.tar.gz创建hadoop用户sudo ...
  • spark集群搭建Hadoop、Scala)

    千次阅读 2017-02-28 14:23:05
    hadoop spark 集群搭建,并有jdk配置 和部分的hdfs 命令
  • hadoop2.2.0集群搭建

    2020-12-30 19:16:25
    hadoop2.2.0集群搭建
  • hadoop2.2集群搭建遇到的各种问题。
  • Hadoop & Spark 集群搭建 理念思想

    千次阅读 2016-07-17 10:16:34
    前言断断续续吭哧吭哧了好几天,终于搞定了Hadoop集群三种模式的搭建,以及Spark+Hadoop集群搭建,使用的都是最新(稳定)版本,除了官网,网上几乎没有现成资料,也因此遇到很多大大小小的坑,使劲吭哧吭哧,终于...
  • Hadoop + Spark 集群搭建系列文章,建议按顺序参考: Hadoop & Spark 集群搭建 理念思想 Hadoop 2.7.2 集群搭建-预备工作 (不用点了,就是本文) Hadoop 2.7.2 集群搭建 Spark 1.6.2 + Hadoop 2.7.2 集群...
  • windows下基于Docker的Spark集群搭建 目录windows下基于Docker的Spark集群搭建1、实验目的2、实验平台3、实验内容和要求3.1 docker环境安装3.1.1 开启Hyper-V3.2 根据已有的docker文件创建镜像3.3 基于docker创建...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,802
精华内容 7,520
关键字:

hadoopspark集群搭建