Spark2.2项目开发流程

Spark2.2版本开发流程和Spark1.6版本基本相似,有部分不同的地方
在这里讲述整个项目开发的流程,作为一个文档的汇总。

1.版本控制和团队合作

本地没有,远程仓库有的情况
    打开  git bash
    然后          cd       /c/test
    创建目录 mkdir  analysis
    cd   /c/test/analysis
    git init 
    git  config --global  user.email  ''***.com''
    git  config --global user.name   "***"
    git remote add origin https://***/***.git
    git pull origin master

2.基本设置

I、Windows操作系统下开发环境设置
01.安装语言环境和开发工具以及设置网络对应关系
        <1>  安装JDK
                 安装SDK
                安装开发集成工具 Intellij
开发版本:
     Java 8+,   Scala 2.11,  Python 2.7+/3.4+ and R 3.1+. 
    02.环境变量
    JAVA_HOME                           C:\Program Files\Java\jdk1.8.0_102
    HADOOP_HOME                 C:\My_Files\Config\hadoop-common-2.7.1-bin-master
    HADOOP_USER_NAME        hdfs
    PATH                                        C:\ProgramData\Oracle\Java\javapath
                                                    C:\Program Files (x86)\scala\bin   
                                                    C:\Python27
                                                    C:\My_Files\Config\hadoop-common-2.2.0-bin-master\bin
     确认版本:  java -version
03.网络设置:
    C:\WINDOWS\system32\drivers\etc\hosts  添加集群IP和集群机器名称的对应关系
            172.12.10.21 linux21
            172.12.10.22 linux22
            172.12.10.23 linux23
04.     hadoop-common-2.7.1-bin-master
II、本地开发环境
    2.0版以后的版本,原有lib目录下的大JAR包被分散成多个小JAR包,
            原来的spark-assembly-*.jar已经不存在
            添加依赖包 :project Structure中-->libraries中的 --> +号 ,点击添加你放置的jar包的位置
    1.6以前的应该都有 spark-assembly-*.jar

3.项目开发步骤

    01.创建Maven工程
        maven 配置:配置依赖的包
        groupId = org.apache.spark
        artifactId = spark-core_2.11
        version = 2.2.0
    02.配置与连接
    04.构建Dataset DataFrame
        构建数据并计算
        方式一:使用Dataset 或者DataFrame
        import java.io.File
        import org.apache.spark.sql.Row
        import org.apache.spark.sql.SparkSession
        import spark.sql

      // getAbsolutePath():返回抽象路径名的绝对路径名字符串
        val warehouseLocation = new File("spark-warehouse").getAbsolutePath
        val spd= SparkSession.builder()
            .master("local")
            .appName("Word Count")
            .config("spark.sql.warehouse.dir", warehouseLocation)        
            .enableHiveSupport()
            .getOrCreate()

        //hive中读取数据
         spd.sql("use testdatabase")
         sql("SELECT * FROM src").show()

        //
        val df = spd.read.json("examples/src/main/resources/people.json")
        import spark.implicits._
        df.show()
        df.printSchema()
        df.createOrReplaceTempView("people")
        val sqlDF = spark.sql("SELECT * FROM people")
        sqlDF.show()
        //a global temporary view
        df.createGlobalTempView("people")
        spark.sql("SELECT * FROM global_temp.people").show()

        方式二,使用RDD
                val SparkConf = new SparkConf().
                            setMaster("mr.master")
                val sc = new SparkContext(SparkConf)

    04.将程序打包
        ---手动模式
    步骤、1>  File---->Project Structure----->
                    Artifact   --> +
                    <playDayCount>                                      
    步骤、2>Build------> BUild Artifact
    在这个文件夹下C:\Items\Spark_Odr\out\artifacts\Spark_Odr_jar
        会有Spark_Order.jarjar

    05.上传Jar包,并运行
        001.上传jar  Spark_Order.jar
        002.集群运行Spark---
        设定系统任务提交 bin/spark-submit脚本执行应用配置开发环境
        spark-submit --num-executors 4 
        --executor-cores 1 
        --executor-memory 4G 
        --master yarn-cluster 
        --queue qmc 
        --class com.text.Score /opt/clrDir/Spark_test.jar

参考:

Hive在spark2.0.0启动时无法访问spark-assembly-*.jar的解决办法
http://blog.csdn.net/wjqwinn/article/details/52692308
Spark SQL, DataFrames and Datasets Guide
http://spark.apache.org/docs/2.2.0/sql-programming-guide.html

blogroll

social