摘要: 尽管MR由于计算效率问题,已经不适用于大多数业务场景,Hive3开始计算引擎改为TEZ,但MR的经典思路在Hadoop生态各组件都有体现,重温后对各组件原理的理解还有使用都有帮助,如Spark的RDD分区里面的源码就能看到MR分片思想的影子。这里仅拿输入Map前分片(Split)这个动作的源码做窥探 阅读全文
posted @ 2021-03-16 20:02 Rango_lhl 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 一、名称节点(NameNode) 1.什么是名称节点 在HDFS中,名称节点负责管理分布式文件系统的命名空间(Namespace),保存了两个核心的数据结构-FsImage和EditLog。 FsImage:用于维护文件系统树以及文件树中所有的文件和文件夹的元数据。 EditLog:中记录所有针对文 阅读全文
posted @ 2021-02-15 15:24 Rango_lhl 阅读(1257) 评论(0) 推荐(0) 编辑
摘要: 一、HDFS相关类说明 FileSystem:通用文件系统的抽象基类,可以被分布式文件系统继承,所有可能使用Hadoop文件系统的代码都要使用到这个类。 DistributedFileSystem:Hadoop为FileSystem这个抽象类提供了多种具体的实现,DistributedFileSys 阅读全文
posted @ 2021-02-14 22:32 Rango_lhl 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 目标: 监控Oracle某张记录表,有新增数据则获取表数据,并推送到微信企业。 流程: Kafka实时监控Oracle指定表,获取该表操作信息(日志),使用Spark Structured Streaming消费Kafka,获取数据后清洗后存入指定目录,Python实时监控该目录,提取文本里面数据并 阅读全文
posted @ 2021-02-03 19:06 Rango_lhl 阅读(874) 评论(0) 推荐(0) 编辑
摘要: 最近同事聊起所谓面向对象,这里使用Python实现一个搜索引擎的小功能,来作为对面向对象的理解。相关概念网上很多,这里不再多复述,先从代码走起,再代入概念。 代码功能:根目录下有1.txt 2.txt 3.txt 三个文件,实现输入文件名,返回是否有该文件及该文件的文件大小 代码要实现的功能很简单, 阅读全文
posted @ 2021-01-29 19:38 Rango_lhl 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 一、sqoop同步oracle数据非clob字段: 要处理换行符,在sqoop脚本中,参数使用下面任意一个即可 #替换为空 --hive-delims-replacement "" #删除 --hive-drop-import-delims 二、sqoop同步oracle数据clob字段 clob字 阅读全文
posted @ 2021-01-26 18:18 Rango_lhl 阅读(911) 评论(0) 推荐(0) 编辑
摘要: Syslog日志内一般包括产生日志的时间、主机名、程序模块、进程名、进程ID、严重性和日志内容。日志一般会通过Kafka等有容错保障的源发送,本实验为了简化,直接将Syslog通过Socket源发送。新建一个终端,执行如下命令:$tail -n+1 -f /var/log/syslog | nc - 阅读全文
posted @ 2021-01-25 17:28 Rango_lhl 阅读(839) 评论(0) 推荐(0) 编辑
摘要: 一、Spark中水印作用 Spark内部引擎的实现是保留内部状态的,以便让基于事件时间的窗口聚合可以更新旧的数据,但是如果一个查询持续运行多天,那么系统绑定中间状态累积的数量也会随之增加,为了释放资源,用户可以通过自定义水印来告知系统可以丢弃哪些在内存中旧状态的数据。自定义水印可以使用withWat 阅读全文
posted @ 2021-01-22 20:04 Rango_lhl 阅读(670) 评论(0) 推荐(0) 编辑
摘要: 本文将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理、设计、以及在我们大数据场景下的实现方式。 全文由下面几个部分组成: 1.先分享一下拉链表的用途、什么是拉链表。 2.通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别。 3.举一个具体的应用场景,来设计并实现一份拉链 阅读全文
posted @ 2021-01-21 21:24 Rango_lhl 阅读(722) 评论(0) 推荐(0) 编辑
摘要: 一、hive.groupby.skewindata set hive.groupby.skewindata=true; 数据倾斜时负载均衡,当选项设定为true,生成的查询计划会有两个MRJob。第一个MRJob 中,Map的输出结果集合会随机分布到Reduce中,每个Reduce做部分聚合操作,并 阅读全文
posted @ 2021-01-20 20:00 Rango_lhl 阅读(2871) 评论(0) 推荐(0) 编辑