Spark基础概念

什么是Spark?Spark的特点和结构
    1、什么是Spark?
       Spark是一个针对大规模数据处理的快速通用引擎。
       类似MapReduce,都进行数据的处理
       
    2、Spark的特点:
        (1)基于Scala语言、Spark基于内存的计算
        (2)快:基于内存
        (3)易用:支持Scala、Java、Python
        (4)通用:Spark Core、Spark SQL、Spark Streaming
                   MLlib、Graphx
        (5)兼容性:完全兼容Hadoop

    3、Spark体系结构:主从结构
        (1)主节点:Master
        (2)从节点:Worker

搭建Spark的伪分布模式环境
    1、解压:tar -zxvf spark-2.2.1-bin-hadoop2.6.tar.gz -C /opt
    2、配置参数文件: conf/spark-env.sh
        export JAVA_HOME=/root/training/jdk1.7.0_75
        export SPARK_MASTER_HOST=bigdata11
        export SPARK_MASTER_PORT=7077
        
        conf/slaves ----> 从节点的主机信息
        bigdata11
        
    3、启动Spark伪分布环境
        sbin/start-all.sh此处跟hadoop命令相同,我后来改为了spark-start.sh 和spark-stop.sh
        
       Spark Web Console: http://192.168.8.xxx:8080

    4、集群启动

    

     spark-shell --master spark://Master:7077 

     --total-executor-cores 2 //内核数  

     --execute-memory 500mb  内存

 

  5、RDD 弹性分布式数据集

     特点

      1)是Spark基本数据的抽象

      2)scala中的集合,支持并行计算

       3)自动容错

       4)可伸缩性

      类型 :

         1)transformation 转换

         2)action 动作

      创建

 

 list转换为RDD

过滤filter

Union

GroupByKey

交集intersection

join关联,类似数据库中的表关联

leftOuterJoin左联接,保留左表,如果没有责任None

rightOuterJoin右联接,保留右表,如果没有责任None

笛卡尔积 cartesian

Action

1、collect 收集

2、saveAsTextFile(文件路径)   保存到root中

3、分区数rdd7.partitions.length
res40: Int = 4

4、count计数

5、reduce 聚合

 

6、countByKey

7.take获取几个元素

8、first

9、max min

10、takeOrdered排序后获取数据

11、倒叙获取数据

Spark高级算子

1、aggregate先局部后全局

2、aggregateBykey

3、combineBykey

最底层的方法 reduceByKey和底层调用度为combineByKey

4、coalesce

 rdd1.coalesce(4,true)  修改分区数 是否加shuffle
res6: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[4] at coalesce at <console>:27

5、 repartition  默认加了shuffle

rdd1.repartition(5)
res10: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[8] at repartition at <console>:27

5、 filterByRange 过滤出指定范围的元素

6、flatMapValue切分出每个元素

7、foldBykey通过key拼接字符串

8、foreach遍历每个元素

9、keyBy

 

10、mapPartitionsWithIndex按照分区进行存放元素

JDBCRDD API编程

访问数据库

cache缓存

会加载之前缓存中的数据

 checkPoint:

      1)先执行setCheckPoint

      2)先执行cache后执行checkPoint

代码优化:一个是速度,一个是安全 setCheckPoint 和checkpoint 进行

自定义排序

模式匹配

隐式转换

将其结果插入到mysql中

JDBCRDD

插入到M啊日啊DB数据库中

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值