使用spark-submit提交jar包到spark standalone集群(续)

继续上篇文章利用Intellij Idea在windows搭建spark 开发环境(含打jar包过程)(一) 以及Sparksql处理json日志[要求sparksql统计json日志条数存入mysql数据库]                         

本章将把打好的jar提交到集群运行。[如何打jar 包请看上文第一篇]

环境:centos7,windows10,intellij 2016.1.1

jar 包代码:[详细的步骤请看第二篇]

import scala.xml.XML
import scala.sys.process._
import org.apache.spark.sql.SQLContext
import scala.collection.mutable.ArrayBuffer
import scala.io.Source
import java.io.PrintWriter
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SQLContext
import java.sql.DriverManager
import java.sql.PreparedStatement
import java.sql.Connection
import org.apache.spark.sql.types.IntegerType
import org.apache.spark.sql.types.StructType
import org.apache.spark.sql.types.StructField
import org.apache.spark.sql.types.StringType
import org.apache.spark.sql.Row
import java.util.Properties
import org.apache.spark.sql.SaveMode
import java.sql.{Connection, DriverManager, ResultSet}
import scala.collection.mutable.ArrayBuffer
import org.apache.spark.SparkConf
object Distb{
  def  main(args:Array[String]): Unit ={
    val conf = new SparkConf().setAppName("distritb1").setMaster("spark://HDPMaster:7077")
    val sc = new SparkContext(conf)
    val driverUrl="jdbc:mysql://ip:3306/test?user=root&password=123456&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8"
    val sqlContext=new org.apache.spark.sql.SQLContext(sc)
    val path="/test/input/test.json"   
    val all=sqlContext.read.json(path)
    all.registerTempTable("testtab")
 val count_name=sqlContext.sql("select name,sum(size) as sizesum from testtab group by name")
    count_name.write.mode(SaveMode.Overwrite).jdbc(driverUrl, "testresult", new Properties)   
  }
  }

第一步:
把jar包上传至linux server.
默认是/test/test.jar

第二步:由于本例是standalone 模式,所以要指定--master spark://HDPMaster:7077 \
由于 我的spark-env.sh设置如下:
export SPARK_EXECUTOR_INSTANCES=2
export SPARK_EXECUTOR_CORES=1
export SPARK_EXECUTOR_MEMORY=3G
export SPARK_DRIVER_MEMORY=1G
export SPARK_MASTER_IP=HDPMaster
export SPARK_WORKER_MEMORY=4G     ###每个节点能用的内存是4G
export SPARK_MASTER_PORT=7077

所以我用的参数是--executor-memory 3g

运行参数设置如下:
/usr/hdp/2.5.0.0-1245/spark/bin/spark-submit \
--class Distb \
--master spark://HDPMaster:7077 \
--executor-memory 3g   \              
--executor-cores 2   \
--num-executors 2 \
/test/test.jar


然后进去spark UI监控进度:your_ip:4040。
如果程序没有报错,也可以去数据去查看表是否已经存在,数据是否已经有了。如果有了,说明成功!

[注意事项]
如果是集群的模式,你也可以用htop查看每台Slave节点的内存,CPU的变化,从而知道,集群的状态。





你可能感兴趣的:(spark开发环境搭建)