HQL中count(*),count(1),count(column)的区别 1、执行计划:count(*)explain select count(*) from dpods_SMS_Queue limit 100;ExplainABSTRACT SYNTAX TREE:(TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME dpods_SMS_Queue))) (TOK_INSERT (TOK_DESTINATION (TO...
如何在Kerberos环境使用Flume采集Kafka数据并写入HDFS(转载) 原文地址:https://cloud.tencent.com/developer/article/1078494一、概况在Kafka集群实际应用中,Kafka的消费者有很多种(如:应用程序、Flume、Spark Streaming、Storm等),本篇文章主要讲述如何在Kerberos环境使用Flume采集Kafka数据并写入HDFS。本文的数据流图如下:内容概述1.Kafka集群启...
SparkSQL 学习笔记---SparkStreaming 一、大数据实时计算原理二、Spark Streaming1、SparkStreaming简介Spark Streaming是SparkCore API的一种扩展,可以用于进行大规模,高吞吐,容错的实时数据流的处理,支持从很多数据源中读取数据, 必粗Kafka,FlumeTwitter,ZeroMQ或者是TCP Socket。并且能够使用类似高阶函数的复杂算法来进行数据的处理,比如map、r...
Flink学习笔记------深入理解Apache Flink核心技术 原文地址:https://www.cnblogs.com/feiyudemeng/p/8998772.htmlApache Flink(下简称Flink)项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多人的关注。本文将深入分析Flink的一些关键技术与特性,希望能够帮助读者对Flink有更加深入的了解,对其他大数据系统开发者也能有所裨益。本文假设读者已对...
SparkSQL 学习笔记----JDBC数据源实战 1、使用jdbc数据源Spark SQL支持使用JDBC从关系型数据库中读取数据。读取的数据又DataFrame表示,可以很方便地使用Spark Core提供的各种算子进行处理。java版本Map<String,String> options = new HashMap<String,String>();options.put("url","jdbc:mysql...
SparkSQL 学习笔记----Hive数据源实战 1、什么是HiveContextSpark SQL支持对Hive中存储的数据进行读写操作Hive中的数据时,必须创建HiveContext(HiveContext也是已经过时的不推荐使用,嘤嘤嘤~还没学好就已经过时了)。HiveContext继承自SQLContext,但是增加了在Hive元数据库中查找表,以及HiveSQL语法编写SQL的功能。除了sql()方法,HiveContext还提...
SparkSQL 学习笔记----案例实战之查询分数大于80分的学生信息 1、Json数据源Spark SQL可以自动推断JSON文件的元数据,并且加载其数据,创建一个DataFrame。可以使用SQLContext.read.json()方法,针对一个元素类型为String的RDD,或者是一个JSON文件。注意:这里使用的JSON文件与传统意义上的JSON文件不同。每行都必须,也只能包含一个单独的、自包含的、有效地JSON对象。不能让一个JSON对象分散在多行...
SparkSQL 学习笔记----Parquet数据源之合并元数据 1、使用场景如同ProtocolBuffer,Avro,Thrift一样,Parquet也是支持元数据合并的。用户可以在一开始就定义一个简单的元数据,然后随着业务的需要,逐渐往元数据中添加更多的列。在这种情况下,用户可能会创建多个Parquet文件,有着多个不同的但是却互相兼容的元数据。Parquet数据源支持自动推断出这种情况,并且进行多个Parquet文件的元数据的合并。2、 开启Par...
SparkSQL 学习笔记----自动分区推断 1、表分区表分区是一种常见的优化方式。比如hive中就提供了表分区的特性。在一个分区表中,不同分区的数据通常存储在不同目录中,分区列的值通常就包含在了分区目录的目录名中。SparkSQL中的Parquet数据源,支持自动根据目录名推断出分区信息。例如,如果将人口数据存储在分区表中,并且使用性别和国家作为分区列,那么目录结构可能如下所示tableName |- gender=male ...
SparkSQL 学习笔记----数据源Parquet之使用编程方式加载数据 一、Parquet简介1、whatParquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发2、why列式存储和行式存储相比的优势:可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量压缩源码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编码(比如Run Length Encoding 和 Delta Encoding)...
SparkSQL 学习笔记----通用的load和save操作 一、通用的load和save操作的作用对于Spark SQL和DataFrame来说,无论是从什么数据源创建出来的DataFrame,都有一些共同的load和save操作。可以将一份数据load出来,变成一个DataFrame,然后可以对这个DataFrame执行一些查询筛选等操作,然后save到其他路径中。load操作主要用于加载数据,创建出DataFrame;save操作,主要用户将D...
SparkSQL 学习笔记----将RDD转换成DataFrame 一、RDD转换成DataFrame1、为什么要将RDD转换成DataFrame转换成DataFrame之后就可以直接针对HDFS等任何可以构建为RDD的数据,进行Spark SQL进行SQL查询了。2、Spark SQL支持两种方式来将RDD转化成DataFrame使用反射来推断包含了特定数据类型的RDD的元数据这种基于反射的方法,代码比较简洁,当你已经知道你的RDD的元数据时,是一种...
flume之HDFS Sink详解(转载) 原文地址:http://www.aboutyun.com/thread-21422-1-1.html一、重要问题点1.哪些配置影响着hdfs文件的关闭?2.HDFS Sink中每次都会触发的事件是什么?3.HDFS Sink中参数的优先级是怎样的?二、HDFS Sink跟写文件相关配置hdfs.path -> hdfs目录路径hdfs.filePrefix -> 文件前缀...
Spark 学习笔记----宽依赖与窄依赖深度剖析 窄依赖: Narrow Dependency。一个RDD,对它的父RDD只有简单的一对一的依赖关系,也就是说RDD的每个partition仅仅依赖于父RDD中的一个partition,父RDD和子RDD的partition之间的对应关系是一对一的;宽依赖: Shuffle Dependency。本质就是Shuffle。也就是说每一个父RDD的partition中的数据,都有可能传输一部分,到下一...
Spark 学习笔记----Spark内核架构深度剖析 一、Spark内核架构1、Application2、spark-submit3、Driver4、SparkContext5、Master6、Worker7、Executor8、 Job9、DAGScheduler10、TaskScheduler11、ShuffleMap Task and Resut Task二、Spark内核运行流程Application: 写完的Spa...
Spark 学习笔记----top(n)与groupTop(n) 一、案例需求:1、对文本文件内的数字,取最大的前3个2、对每个班级内的学生成绩,取出前3名(分组取topn)二、top(n)java/** * 案例需求 * 对文本文件内的数字,取最大的前3个 */public class Top_N { public static void main(String[] args) { SparkConf conf =...
Spark 学习笔记----Action操作实战 Action算子常用的action操作算子主要如下:1、reduce2、collect3、count4、take(n)5、saveAsTextFile6、countByKey7、foreachjava版本public class ActionOperation { public static void main(String[] args) { //...
Spark 学习笔记----高级编程之基于排序机制的wordcount程序 1、案例需求(1)对文本文件内的内阁单词都统计出其出现的次数(2)按照每个单词出现次数的数量,降序排序2、实战开发java版本/** * 排序的wordcount程序 * */public class SortWordCount { public static void main(String[] args) { //创建SparkConf和JavaS...