- 博客(42)
- 资源 (6)
- 收藏
- 关注
原创 分时间段统计交易数据
select a.shop_id,a.source_name,a.shop_jde_number,a.shop_open_date, case when crt_date >= shop_open_date and crt_date<=3_days then '3_days' when crt_date > 3_days and crt_date<=one_week then '3_to_one' when crt_dat...
2021-09-02 10:29:53 293
原创 Spark优化
https://segmentfault.com/a/1190000022526479一.增加资源1. 增加executor数量executor越多,spark任务并行能力越强 executor为3,core为2,则同一时间可以同时执行6个task executor为6,core为2,则同一时间可以同时执行12个task 执行速度提升2倍2. 增加core数量core越多,spark任务并行执行能力越强 executor为3,core为2,则同一时间可以同时执行6个task exe.
2021-04-16 14:13:14 191
原创 kafka的幂等性和事务
分布式系统中最难解决的两个问题是: 1.消息顺序保证(Guaranteed order of messages)。 2.消息的精确一次投递(Exactly-once delivery)。https://www.cnblogs.com/smartloli/p/11922639.html幂等性一般指 producer 投递了多少消息,consumer 就消费了多少消息,不会发生消息丢失或者消息重复的情况;幂等性只能保证单个partition的 Exactly-Once 语义的实现Kafka.
2021-04-16 14:06:53 381
原创 DataFrame、DateSet和RDD的区别和联系
什么是DataFrame在Spark中,DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。3、RDD和DataFrame的区别DataFrame与RDD的主要区别在于,DataFrame带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。使得Spark SQL得以洞察更多的结构信息,从而对藏于DataFrame背后的数据源以及作用于DataFrame之上的变换进行了针对性的优化,最终达到大幅提升运行时效率的目标。RDD,
2021-04-13 10:18:20 500
原创 Spark SQL
SparkSQL是Spark生态栈中处理结构化数据的一个模块。特点:可集成 统一数据入口 整合Hive 标准连接SparkSession的创建和初始化Spark中编程的入口,就是各种各样的Context,在SparkSQL也不例外,Spark1.6以前,SparkSQL唯一的入口就是SQLContext,及其子类HiveContext,在Spark1.6之后,便又提供了一个SQLContext和HiveContext的集成者——SparkSession。此时SparkSession就成为
2021-04-12 22:44:01 221
原创 高阶SQL
-- DATE_SUB(login_date,rn):如果连续则做差后值一样则表示连续活跃SELECT USER_ID, LOGIN_DATE, DATE_SUB( LOGIN_DATE, RN ) AS DIFF_DATE FROM( SELECT USER_ID,LOGIN_DATE, ROW_NUMBER ( ) OVER ( PARTITION BY USER_ID ORDER BY LOGIN_DATE ) AS RN FROM TE.
2021-04-02 00:03:17 288
原创 sql实现开窗效果
SELECT a.first_name, a.age, a.gender, count(b.age)+1 as rankFROM person a left join person b on a.age>b.age and a.gender=b.gender group by a.first_name, a.age, a.genderorder by gender,rank
2021-04-01 23:44:18 128
原创 8.共享变量
共享变量背景:广播变量 def main(args: Array[String]): Unit = { val conf = new SparkConf() .setAppName(s"${_01SparkBroadcastOps.getClass.getSimpleName}") .setMaster("local[2]") val sc = new SparkContext(conf)
2021-03-07 14:30:42 207
原创 7.SparkRDD的持久化
一个RDD如果被多次操作,为了提交后续的执行效率,我们建议对该RDD进行持久化操作。如何对一个RDD进行持久化呢?rdd.persist()/cache()就完成了rdd的持久化操作,我们可以将该rdd的数据持久化到内存,磁盘,等等。同样,如果我们已经不再对该rdd进行一个操作,而此时程序并没有终止,我们便可以卸载已经持久化的该rdd数据,rdd.unPersist()。持久化策略 MEMORY_ONLY(默认) rdd中的数据以java对象的形式,保存在内存
2021-03-07 12:41:12 216
原创 6.Action算子操作
Action算子是spark作业执行的动因,也就是说transformation要想执行,就需要action去触发,通常就将RDD的数据输出到外部的存储介质,或者返回给Driver。Foreach//执行action操作// rbk.foreach() //遍历该rdd中的每一条记录,该操作是在executor中的partition上面完成 /** * 将rdd的数从executor中拉取到driver端进行操作(全量数据的拉取)
2021-03-07 12:19:05 239
原创 5.Transformation(转换算子)
作用于一个已知的RDD,通过一系列转换算子(scala集合的高阶函数),将原始RDD的数据由一种形态,转化为新的一种形态,比如,rdd:RDD[String]--map-->RDD[(String, String)]。这种转换操作有一个特点,lazy懒加载,也就是说如果没有遇到的作业的执行,该算子操作不会被触发操作。常见的transformation操作,比如map、flatMap、filter、join、sample、groupByKey、reduceByKey、sortByKey等等。fla
2021-03-07 11:04:00 865
原创 3.Spark编程
1.创建项目指定maven坐标执行项目的目录删除项目原型自带的几个类指定maven依赖<properties> <scala.version>2.11.8</scala.version> <spark.version>2.2.2</spark.version> <hadoop.version>2.7.6</hadoop.version></properties>
2021-03-04 23:52:29 221 1
原创 2.Spark核心概念
1.名词解释1)ClusterManager:在Standalone(spark自身集群模式)模式中即为Master(主节点),控制整个集群,监控Worker。在YARN模式中为资源管理器。Spark集群的管理,管理spark集群的资源(cpu core、内存),yarn中的话就是ResourceManager。2)Worker:从节点,负责控制计算节点,启动Executor。在YARN模式中为NodeManager,负责计算节点的控制。3)Driver:运行Application的main()函
2021-03-04 22:04:57 373 2
原创 1.Spark介绍及安装
1.安装要求2.Windos运行spark启动spark/bin/spark-shell.cmd2我们可以了解到,每一个Spark应用程序,都会对应一个WebUI,默认的访问端口4040,如果被占用,就依次累加,4041,4042...3.本地提交一个spark作业Spark的作业的执行是分阶段stagestage-0stage-1executor4.命令解释val lines = sc.textFile("E:/data/hello.txt"
2021-03-04 21:43:51 228 1
原创 hadoop 1.0与2.0
Hadoop1.0对HDFS来说,其主要的运行架构则是master-slave架构,即主从架构。其中呢,master主节点称之为Namenode节点,而slave从节点称为DataNode节点。没有hdfs的高可用模式,使用的是nn,2nn那套架构。对MapReduce来说,同样时一个主从结构,是由一个JobTracker(主)和多个TaskTracker(从)组成。Hadoop2.0针对Hadoop1.0中NameNode制约HDFS的扩展性问题,提出HDFSFederat..
2021-02-23 09:25:29 317 2
原创 维度建模理论
维度建模和关系建模实体-关系建模是面向应用,遵循第三范式,以消除数据冗余为目标的设计技术。维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。关系模型 -在关系型数据库使用,适用于OLTP,应用第三范式,减少不于主键直接关联的字段,减少数据冗余。维度模型 -在大数据中使用,适用OLAP,在大规模数据中,跨表分析统计查询过程会造成多表关联,这会大大降低执行效率维度建模按照事实表,维度表来构建数据仓库,数据集市。星型模型:维度表和事实表直接关联。雪...
2021-02-22 22:37:33 423
原创 Hadoop的小文件问题
https://blog.csdn.net/u010010664/article/details/831051741、 HDFS上的小文件问题 现象:在现在的集群上已经存在了大量的小文件和目录。 方案:文件是许多记录(Records)组成的,那么可以通过调用HDFS的sync()方法和append方法结合使用,每隔一定时间生成一个大文件。或者可以通过写一个程序来来合并这些小文件。2、 MapReduce上的小文件问题如果文件非常小,并且拥有大量的这种小文件,那么每一个map ta...
2021-02-22 22:27:50 313
原创 hive-mapreduce过程
https://blog.csdn.net/u010738184/article/details/70893161/
2021-02-22 21:59:56 182
原创 Hql的执行顺序
sql的执行顺序是:(1)FROM<left_table> <join_type>JOIN<right_table>ON<on_predicate>(2)WHERE<where_predicate>(3)GROUP BY <group_by_specification>(4)HAVING<having_predicate>(5)SELECTDISTINCTTOP(<top_s...
2021-02-21 13:41:36 918
原创 面试题
1.DataNode在什么情况下不会备份单节点情况不会备份2.hdfs的datanode的添加和删除需要执行的命令添加:hdaoop-daemon.sh start datanodehadoop-daemon.sh start tasktracker删除:hadoopmaradmin -refreshnodeshadoop dfsadmin-refreshnodes重启namenodehdaoop-daemon.sh startnamenodeHDF...
2021-02-21 11:09:17 130
原创 数据倾斜模块
1.数据倾斜产生原因数据分配不均匀,导致某些reduce分区的数据量太多,job的执行一直卡在这几个reduce。产生原因:1.key值分布不均匀2.数据本身特性3.某些hql语句本身存在数据倾斜2.数据倾斜的具体表现任务进度长时间维持在99%(或100%),查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成。因为其处理的数据量和其他reduce差异过大。单一reduce的记录数与平均记录数差异过大,通常可能达到3倍甚至更多。 最长时长远大于平均..
2021-02-21 11:06:59 145
原创 mysql模块
1.索引的种类的区别普通索引:没有任何限制唯一索引:列里面不能有重复的值,可以有null主键索引:特殊的唯一索引,不能有null组合索引2.数据库的三大范式第一范式:数据库中每列都是不可分割的原子数据项第二范式:表中的每列数据都和主键相关第三范式:每列和主键都是直接关系,而不是间接关系3.E-R图一对一一对多多对多4.数据库查询优化1.查询不要使用select *2.避免索引失效情况5.索引失效情况...
2021-02-21 11:02:03 154
原创 hive调优
1.排序的选择尽量不要用orderby进行全局排序2.合理使用笛卡尔积尽量不要使用笛卡尔积,数据量会很大,笛卡尔积是A表的每条数据关联B表的每条数据。使用笛卡尔积时一定要加上过滤条件,减少数据的输入。3.in, exists, not in的高效实现in可以用leftsemijoin实现,也可以用left join whereisnotnullselect * from a where id in (select id from b);select...
2021-02-21 10:57:53 340
原创 数据治理模块
数据治理目的: 提高数据质量,缩减成本,降低风险,提高安全合规数据治理的对象: 数据资产数据资产虽不具备实物形态,但是它必定是实物在网络世界映射的一种虚拟形态。对于企业而言,人、设备、产品、物料、软件系统、数据库、以及任何涉及到使用文件作为载体的各类数据,都属于企业的数据资产。数据治理的内容: 元数据,数据存储,任务计算,数据安全数据质量: 数据真实性:数据必须真实准确的反映客观的实体存在或真实的业务,真实可靠的原始统计数据是企业统计工作的灵魂,是一切管理工作...
2021-02-21 10:50:23 338
原创 Flume模块
agent -flume的代理一个agent至少包含一套source-channel-sink架构source -数据来源avro source: 数据来自于用户指定的节点的端口exec source: 来自于一个linux 命令channel -通道memory channel : 内存作为中转站sink -目的地hdfs sink:*** 将收集的数据放在hdfs上...
2021-02-20 21:49:50 145 1
原创 Sqoop
一.导入hdfs命令select * from help_keyword where help_keyword_id>300;sqoop import \--connect jdbc:mysql://hdp02:3306/mysql \--username root \--password 123456 \--query 'select * from help_keyword where help_keyword_id>300 and $CONDITIONS' \--targ
2021-02-20 21:48:27 135
原创 海量数据问题
1、怎么在海量数据中找出重复次数最多的一个?将大文件的数据进行hash,相同hash值的数据分配到一个文件,然后统计出每个文件出现次数最多的单词和对应次数,然后比较每个文件的最大出现次数,得到重复次数最多的单词2、上千万或上亿数据(有重复),统计其中出现次数最多的前 N 个数据。3、一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前 10 个词,给出思想,给出时间复杂度分析。4、100w 个数中找出最大的 100 个数。100W个数进行ha...
2021-02-20 21:30:03 393
原创 HDFS模块
一.HDFS基本命令hdfs dfs -ls -R :递归展示所有内容 -mkdir :创建文件夹 -p :级联创建 -touchz :创建文件 -put/copyFromLocal :上传文件 hdfs dfs -put a.txt / 上传文件到HDFS根路径 -get/copyToLocal :文件下载 hdfs dfs -get /a.txt ./ 将dfs根目
2021-02-20 21:23:02 282
原创 手写WordCount程序
Mapper类Mapper的输入指的就是mapreduce框架读取文件的内容 这里的输入相当于流读取完成的文件内容,然后封装成键值对四个范型:输入:固定 KEYIN:输入的键的类型 标识读取行数,代表的是每一行的偏移量,按照字节标识下标,因为数据量比较大,用Long类型 VALUEIN:输入的值的类型 这里指的就是一行一行的内容 String输出:根据业务决定 KEYOUT:输出的键的类型 表示要传递给reduce的键的类型,输出的键决定了reduce的分组依
2021-02-20 21:02:46 186
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人