【机器学习大数据篇】对企业架构,Spark,HIVE,RDD,Spark sql深度透彻了解

传统的方式用的是spark+RDD

新的方式是用DataFrame做新的案例,python与spark相结合,做分析范式已经普及开来了

架构详解:

最底层的是数据的导入,导入之前是各种形态的,一类是orcale,mysql...,另一类是csv,txt...

SQOOP是导入结构化数据的,FLUME,KAFKA是导入流式数据的

数据导入后,紧接着就是存储,目前存储有三个模块,HDFS是基于文件方式进行存储的,HBase是基于键值对的方式进行存储的,KUDU落地的并不多

基于HDFS,可以拿什么方法进行数据的访问呢,传统的是MR,后期有HIVE,HIVE实际上就是把MR通过SQL转换了下,HIVE就是负责把我们写的SQL转换为MR,然后再去执行HDFS,所以说HIVE本身并没有存储功能,其实就是个转码器。

现在spark发展起来了,可以用spark去进行操作 ,可以把spark看作是Hive的替代产品,以上说的都是批处理的,流处理可以用spark streaming。也可以达到毫秒级别的,实际上是微批处理。

建模这块主要用的spark比较多了 spark是建模中的利器,通过把HDFS数据或外部数据导入到spark,可以享用内存级的运算速度,尤其是RDD在设计上满足多次迭代的分析需求的。

 

RDD分布式处理环境,与HDFS形成对应,一个在内存里,一个是在硬盘上的,下图是spark的一个架构

 

RDD:弹性分布式数据集,只读的,可分区的分布式数据集,这个数据集存放在内存或缓存中,可在计算中重复读取。

  RDD有5个特点:
    1、RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。
    2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。(分布式数据集)
    3、RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创建;有时也可以通过应用程序中的集合来创建。
    4、RDD最重要的特性就是,提供了容错性,可以自动从节点失败中恢复过来。即如果某个节点上的RDD partition,因为节点故障,导致数据丢了,那么RDD会自动通过自己的数据来源重新计算该partition。这一切对使用者是透明的。
    5、RDD的数据默认情况下存放在内存中的,但是在内存资源不足时,Spark会自动将RDD数据写入磁盘。(弹性)

RDD的转换和行动API

 

创建SparkRDD、SchemaRDD(dataFrame)和SparkSQL的API

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值