zoukankan      html  css  js  c++  java
  • hadoop spark on yarn 集群搭建

    一、环境准备

    1. 机器: 3 台虚拟机

    机器 角色
     l-qta3.sp.beta.cn0 NameNode,ResourceManager,spark的master
    l-querydiff1.sp.beta.cn0 DataNode,NodeManager,Worker
    l-bgautotest2.sp.beta.cn0 DataNode,NodeManager,Worker

    2. jdk版本

    [xx@l-qta3.sp.beta.cn0 ~]$ java -version
    java version "1.7.0_45"
    Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
    Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

    3. 准备工作

      1)ssh 免密登陆: 集群中的机器需要相互免密访问。参考:http://www.cnblogs.com/lijingchn/p/5580263.html

      2)hadoop 2.6.5 binary  下载。地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz

    4. 解压 hadoop-2.6.5.tar.gz

        将hadoop-2.6.5.tar.gz解压缩到 /home/q/

      cmd : tar -xzvf hadoop-2.6.5.tar.gz -C /home/q/

    5. 修改配置文件

      配置文件都在 etc/hadoop/下,这些配置文件里面都有样例,有些是必须设置的。官网配置的介绍:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html

      5.1 修改hadoop-env.sh

        export JAVA_HOME=xxx    -- java 的安装目录

      5.2 修改yarn-env.sh

        export JAVA_HOME=xxxx 

      5.3 修改slaves      配置slave的机器名 (这些机器需要能按机器名ping通,即要需要/etc/hosts 文件,按 ip 空格 机器名 的格式设置。)

       slave1

       slave2

      5.4 配置core-site.xml (从core-site.xml.example copy 过来一个,重命名即可。) 

    <configuration>
       <!-- 文件系统的地址,jdycluster 对应的是namenode 的地址,这里需要将namenode 的hosts 映射到这个名称。 -->
    <property> <name>fs.defaultFS</name> <value>hdfs://jdycluster</value> </property> <property> <name>io.file.buffer.size</name> <value>4194304</value> </property> <property> <name>fs.trash.interval</name> <value>1440</value> </property> <property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org .apache.hadoop.io.compress.SnappyCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value> </property> <property> <name>io.compression.codec.lzo.class</name> <value>com.hadoop.compression.lzo.LzoCodec</value> </property> <property> <name>ha.failover-controller.cli-check.rpc-timeout.ms</name> <value>60000</value> </property> <property> <name>ipc.client.connect.timeout</name> <value>60000</value> </property> <!-- to solve "impersonate" issue --> <property> <name>hadoop.proxyuser.jdydev.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.jdydev.groups</name> <value>*</value> </property> </configuration>

      5.5  配置hdfs-site.xml

    <configuration>
        <property>
            <name>dfs.nameservices</name>
            <value>jdycluster</value>
        </property>
      <!-- 目录需要自己建好 --> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/q/hadoop-2.6.5/dfs/name</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.blocksize</name> <value>268435456</value> </property> <property> <name>dfs.namenode.handler.count</name> <value>100</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>   <!--- 目录需要自己建好 ---> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/q/hadoop-2.6.5/dfs/data</value> </property> <property> <name>dfs.ha.namenodes.jdycluster</name> <value>nn1</value> </property> <property> <name>dfs.namenode.rpc-address.jdycluster.nn1</name> <value>l-qta3.sp.beta.cn0:8020</value> </property> <property> <name>dfs.namenode.http-address.jdycluster.nn1</name> <value>l-qta3.sp.beta.cn0:50070</value> </property>
    <property> <name>dfs.client.failover.proxy.provider.jdycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property>    <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>

      5.6  配置mapred-site.xml, 这里都是map-reduce 的参数

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.map.memory.mb</name>
            <value>1536</value>
        </property>
        <property>
            <name>mapreduce.map.java.opts</name>
            <value>-Xmx1024M</value>
        </property>
        <property>
            <name>mapreduce.reduce.memory.mb</name>
            <value>3072</value>
        </property>
    
        <property>
            <name>mapreduce.reduce.java.opts</name>
            <value>-Xmx2560M</value>
        </property>
    
        <property>
            <name>mapreduce.task.io.sort.mb</name>
            <value>512</value>
        </property>
        <property>
            <name>mapreduce.task.io.sort.factor</name>
            <value>100</value>
        </property>
        <property>
            <name>mapreduce.reduce.shuffle.parallelcopies</name>
            <value>50</value>
        </property>
    
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>l-qta3.sp.beta.cn0:10020</value>
        </property>
    
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>l-qta3.sp.beta.cn0:19888</value>
        </property>
    
        <property>
            <name>mapreduce.jobhistory.intermediate-done-dir</name>
            <value>/mr-history/tmp</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.done-dir</name>
            <value>/mr-history/done</value>
        </property>

      5.7 配置yarn-site.xml

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
    
        <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>l-qta3.sp.beta.cn0:8032</value>
        </property>
        <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>l-qta3.sp.beta.cn0:8030</value>
        </property>
        <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>l-qta3.sp.beta.cn0:8035</value>
        </property>
        <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>l-qta3.sp.beta.cn0:8033</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>l-qta3.sp.beta.cn0:8088</value>
        </property>
    
    </configuration>

      5.8 配置slaves, 这里配置的就是DataNode,NodeManager,Worker的机器。

        l-qta3.sp.beta.cn0

        l-bgautotest2.sp.beta.cn0

      5.9  scp到所有salve机器相同目录下

        scp -r /home/q/hadoop-2.6.5  xx@slave[1-2]:/home/q/

     6 启动hadoop 集群

      6.1 格式化NameNode

         在NameNode执行以下操作

    cd  /home/q/hadoop-2.6.5/bin
    sudo bin/hadoop namenode –format

      6.2 启动hadoop集群

    方式1:
    sbin/start-dfs.sh #启动HDFS sbin/start-yarn.sh #启动资源管理器
    方式2:
    sbin/start-all.sh                 
    注意: 在启动过程中,启动脚本会依次ssh方式登陆各台机器,所以即使是启动本机的服务也会ssh,这时候 本机也要做免密登陆,否则NameNode会起不来。

      6.3 验证集群是否启动

    在NameNode上执行 jps
    返回如下:
    6996 ResourceManager
    6611 NameNode
    6412 Jps
    在DataNode上执行 jps
    返回如下:
    22285 NodeManager
    22151 DataNode

      说明已经启动成功。进入Hadoop的Web管理页面:http://l-qta3.sp.beta.cn0:50070/

     7. 安装spark

      首先到spark官网下载和你安装的hadoop 版本匹配的spark 版本。http://spark.apache.org/downloads.html

      7.1 解压缩 spark-2.0.2-bin-hadoop2.6.tgz

    sudo tar -zxvf spark-2.0.2-bin-hadoop2.6.tgz -C /home/q/

      7.2 配置spark-env.sh

    cd /home/q/spark-2.0.2-bin-hadoop2.6/conf
    cp spark-env.sh.template spark-env.sh
    sudo vi spark-env.sh
    export JAVA_HOME=/home/q/java/default

    export HADOOP_HOME=/home/q/hadoop-2.6.5
    export HADOOP_CONF_DIR=/home/q/hadoop-2.6.5/etc/hadoop/
    export SPARK_LOCAL_DIRS=/home/q/spark-2.0.2-bin-hadoop2.6
    export SPARK_CLASSPATH=/home/q/spark-2.0.2-bin-hadoop2.6/bin
    export SPARK_CLASSPATH=$SPARK_CLASSPATH:/home/q/hadoop-2.6.5/share/hadoop/mapreduce/lib/hadoop-lzo-0.4.20-SNAPSHOT.jar
    export HIVE_CONF_DIR=/home/q/apache-hive-2.1.1-bin/conf

      7.3 配置salves

    vi slaves
    l-bgautotest2.sp.beta.cn0
    l-querydiff1.sp.beta.cn

      7.4 将spark的安装文件scp到slaves的相同目录下

    scp -r /home/q/spark-2.0.2-bin-hadoop2.6 xx@slaves[1-2]:/home/q/

      7.5 启动spark 集群

    sbin/start-all.sh

      7.6 验证是否启动spark集群

    master 机器上执行  jps
    返回中有:
    11016 Master
    slave 机器上执行 jps:
    返回中有:
    6689 Worker
    说明启动成功。

    进入Spark的Web管理页面:http://l-qta3.sp.cn0:8080 .

  • 相关阅读:
    Django安装和启动
    转载:Python 包管理工具解惑
    电子商务的基本理念
    javascript的循环使用
    错误码
    weex初始
    Flex 布局
    css样式重置表
    手机端页面自适应解决方案—rem布局
    实用的60个CSS代码片段[下]
  • 原文地址:https://www.cnblogs.com/parkin/p/6952370.html
Copyright © 2011-2022 走看看