• spark集群构建


    一、spark启动有standalong、yarn、cluster,具体的他们之间的区别这里不在赘述,请参考官网。本文采用的是standalong模式进行搭建及将接使用。

    1、首先去官网下载需要的spark版本:

       http://spark.apache.org/downloads.html

       本例使用的是spark-2.2.0-bin-hadoop2.7,hadoop使用的是2.7版本,spark是需要scala环境的,可以下载编译好的spark,这样就不需要自己在安装了。

       同时使用了hive仓库,还有kafka。hive版本:apache-hive-2.1.1-bin,(下载地址 http://mirrors.shuosc.org/apache/hive/)

       kafka版本:kafka_2.11-0.11.0.1(下载地址  http://mirrors.shuosc.org/apache/kafka/0.11.0.1/kafka_2.11-0.11.0.1.tgz)

       上述版本要搭配好,否则运行过程会报错。

    2、搭建spark的standalong集群

    1)将下载好的包上传到服务器上面,创建好一个目录用于安装,安装spark集群需要用到hdfs集群做存储,所以要先搭建hadoop集群,主要使用hdfs文件系统。

       #mkdir /data

      分别将包解压到data目录下面,然后就是设置环境变量:

    # cat  /etc/profile

    export HADOOP_HOME=/data/hadoop-2.7.3/
    export PATH=$PATH:$HADOOP_HOME/bin:/data/apache-hive-2.1.1-bin/bin
    JAVA_HOME=/usr/local/java
    JRE_HOME=/usr/local/java/jre
    JAVA_BIN=/usr/local/java/bin
    JRE_BIN=$JRE_HOME/bin
    PATH=$PATH:$JAVA_BIN:$JRE_BIN
    CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JAVA_HOME JRE_HOME JRE_BIN JAVA_BIN PATH CLASSPATH
    export KE_HOME=/data/kafka-eagle
    export PATH=$PATH:$KE_HOME/bin
    export HIVE_AUX_JARS_PATH=/data/apache-hive-2.1.1-bin/lib

    2)java环境要设置好,jdk1.8+。

      接下来就是修改配置文件:

    !hadoop参考我的其他文章(http://www.cnblogs.com/cuishuai/p/7496228.html),这里主要不一样的就是修改/etc/hosts文件将所有节点的ip和主机名的映射添加进去。然后修改$HADOOP/etc/hadoop目录下的slaves文件,将所有节点的主机名添加进来,所有的配置文件都用主节点上的。

    !所有的数据目录都要创建好,主要在$HADOOP目录下创建一个hdfs目录,并在改目录下创建两个子目录分别为data、name

    !启动集群

    只在master节点上执行:

    如果所有节点都是新的,需要先对namenode进行初始化:

    $HADOOP/bin/hdfs  namenode  -format

    $HADOOP/sbin/start-dfs.sh 

    $HADOOP/sbin/start-yarn.sh 

    #注:如果只是单纯的想要扩展hdfs的容量,那么在hdfs-site.xml里的: 

    <property> 

          <name>dfs.replication</name> 

          <value>1</value> 

        </property> 

    将上面的值设置为1,表示只有一个副本,也就是不备份。如果想要进行备份,就要设置为2或想要的值。

    master节点上启动后使用jps命令查看:

    其他slave节点上查看:

    [root@spark-worker ~]# jps
    17363 DataNode
    17660 NodeManager
    26350 Jps

    hadoop集群搭建完成,查看一下大小:

    [root@spark-worker ~]# hdfs dfs -df -h
    Filesystem          Size     Used  Available  Use%
    hdfs://spark:9000  1.3 T  456.4 G    794.2 G   35%

    其他hdfs常用的命令,参考我的其他文章。

    3)接下来大搭建spark集群:

    修改conf文件夹下的如下文件:

    !#cp   spark-env.sh.template   spark-env.sh 

    export PYTHONPATH=$PYTHONPATH:/data/sftp/huoqiu/script
    export SPARK_DRIVER_MEMORY=10g
    export SPARK_LOCAL_DIRS=/data/sparktmp
    export JAVA_HOME=/usr/local/java
    export SPARK_WORKER_MEMORY=55g
    export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=1800 -Dspark.worker.cleanup.appDataTtl=3600"
    export SPARK_PID_DIR=/tmp

    #设置spark 数据临时存放目录,一定要放在法存储的地方,否则数据量太大会报错。
    export SPARK_LOCAL_DIRS=/data/sparktmp

    !#cp   spark-defaults.conf.template   spark-defaults.conf  

    export PYTHONPATH=$PYTHONPATH:/data/sftp/huoqiu/script
    export SPARK_DRIVER_MEMORY=10g
    export SPARK_LOCAL_DIRS=/data/sparktmp
    export JAVA_HOME=/usr/local/java
    export SPARK_WORKER_MEMORY=55g
    export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=1800 -Dspark.worker.cleanup.appDataTtl=3600"
    export SPARK_PID_DIR=/tmp
    [root@spark-worker conf]# cat spark-defaults.conf
    spark.driver.extraClassPath /data/bigdata/mongo-hadoop-spark-2.0.2.jar:/root/elasticsearch-hadoop-6.0.0-beta1.jar:/data/bigdata/mysql-connector-java-5.1.43-bin.jar:/data/bigdata/spark-streaming-kafka-0-8-assembly_2.11-2.2.0.jar
    spark.jars /data/bigdata/mongo-hadoop-spark-2.0.2.jar,/data/bigdata/spark-streaming-kafka-0-8-assembly_2.11-2.2.0.jar,/root/elasticsearch-hadoop-6.0.0-beta1.jar
    spark.hadoop.validateOutputSpecs false
    spark.ui.reverseProxyUrl http://sp.nget.com
    spark.ui.reverseProxy true
    spark.executor.memory 2g
    spark.eventLog.dir /data/spark-events
    spark.history.fs.logDirectory file:/data/spark-events
    spark.eventLog.enabled true
    spark.executor.cores 2
    spark.cores.max 14
    spark.driver.maxResultSize 5g
    spark.driver.memory 10g
    spark.driver.extraJavaOptions -Duser.timezone="Asia/Shanghai"
    spark.es.nodes.discovery false
    spark.es.nodes.data.only false
    spark.es.nodes.wan.only false
    spark.history.fs.cleaner.enabled true
    spark.yarn.historyServer.address=127.0.0.1:18080
    spark.history.ui.port=18080
    spark.history.fs.cleaner.maxAge 7d
    spark.history.fs.numReplayThreads 40%
    spark.history.retainedApplications 50
    spark.history.fs.update.interval 15s
    spark.scheduler.mode FAIR
    spark.scheduler.allocation.file /data/spark-2.2.0-bin-hadoop2.7/conf/fairscheduler.xml

    !将mysql-connector-java-8.0.9-rc.jar放到spark的jars目录下面:

    下载地址:http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.9-rc/mysql-connector-java-8.0.9-rc.jar

    !cat  hive-site.xml

     <configuration>
     <property>
          <name>hive.server2.thrift.bind.host</name>
          <value>0.0.0.0</value>
          <description>metadata is stored in a MySQL server</description>
       </property>
     <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://spark:3306/metastore?createDatabaseIfNotExist=true&amp;useSSL=false</value>
          <description>metadata is stored in a MySQL server</description>
       </property>
       <property>
          <name>javax.jdo.option.ConnectionDriverName</name>
          <value>com.mysql.cj.jdbc.Driver</value>
          <description>MySQL JDBC driver class</description>
       </property>
       <property>
          <name>javax.jdo.option.ConnectionUserName</name>
          <value>root</value>
          <description>user name for connecting to mysql server</description>
       </property>
       <property>
          <name>javax.jdo.option.ConnectionPassword</name>
          <value>1qaz*@WSX</value>
          <description>password for connecting to mysql server</description>
       </property>
       <property>
             <name>hive.metastore.warehouse.dir</name>
             <value>hdfs://spark:9000/data/metastore/</value>
                 <description>location of default database for the warehouse</description>
             </property>
    <property>
      <name>fs.default.name</name>
      <value>hdfs://spark:9000</value>
    </property>
        <property>
            <name>bson.output.build_splits</name>
            <value>false</value>
         </property>
         <property>
            <name>bson.split.write_splits</name>
            <value>false</value>
         </property>
         <property>
            <name>bson.split.read_splits</name>
            <value>false</value>
         </property>
         <property>
            <name>hive.cli.print.header</name>
            <value>true</value>
         </property>
         <property>
            <name>mapred.reduce.child.java.opts</name>
            <value>-Xmx2g</value>
         </property>
     <property>
          <name>hive.exec.parallel</name>
          <value>false</value>
       </property>
     <property>
          <name>hive.support.sql11.reserved.keywords</name>
          <value>false</value>
       </property>

     <property>

         <name>hive.metastore.schema.verification</name>

         <value>false</value>

    </property>

    </configuration>

    1)       在HDFS上创建目录

    构建集群还需要一个slaves文件:

    cp slaves.template  slaves

    cat  slaves

    spark-worker
    spark

    将原有的slaves里面localhost注释掉。

    将上述的服务分别copy到其他服务器上。

    2)  启动spark

    到sbin目录下:

    # ./start-all.sh

    !!!可以访问如下地址:

    http://ip:8080

    此时使用jps在master上查看:

    [root@spark conf]# jps
    26912 Kafka
    16577 ConsoleConsumer
    26401 Jps
    11363 jar
    31013 HistoryServer
    24232 ConsoleProducer
    26602 CoarseGrainedExecutorBackend
    24810 NodeManager
    26443 SparkSubmit
    17166 Master
    21811 SparkSubmit
    23220 NameNode
    23479 DataNode
    24569 ConsoleConsumer
    25945 QuorumPeerMain
    17468 Worker
    24349 ResourceManager

    其他节点上:

    [root@spark-worker ~]# jps
    1601 CoarseGrainedExecutorBackend
    2226 Jps
    17363 DataNode
    16172 Worker
    17660 NodeManager

    至此spark集群搭建完毕。

  • 相关阅读:
    PHP实现带有验证码的登陆注册
    XML
    自定义注解--Annotation
    URL编程
    SpringMvc表单标签库
    Socket编程
    网络编程
    其他流
    Spring MVC-视图解析器
    IDEA(JAVA)使用json
  • 原文地址:https://www.cnblogs.com/cuishuai/p/7794882.html
Copyright © 2020-2023  润新知