自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

曲健磊的技术分享

专注大数据领域技术的分享,主要涉及:Hadoop,Hive,Spark,HBase,Flink,Kafka,Storm...

原创 PriorityQueue的实际应用场景

PriorityQueue 名叫优先级队列,底层由堆结构实现,默认是小根堆。通过 offer 方法添加进去的元素会进行堆排序,最小的元素放在堆顶。通过 peek 方法可以获得堆顶(最小)元素。通过 poll 方法可以删除堆顶元素同时获得堆顶元素,删除之后剩下的元素中最小的元素仍处于堆顶。 一、应用...

2020-02-05 20:06:15 203 0

原创 YYYY-MM-dd跨年年份错误问题

一、问题描述 项目中每天执行的一个定时任务在 2019 年 12 月 29 日 - 2019 年 12 月 31 日这三天没有执行。 经排查,发现是在使用 SimpleDateFormat 格式化日期的时候,用了 “YYYY-MM-dd” 这个模式来格式化日期的,而没有用标准的 “yyyy-MM-...

2020-01-08 16:26:24 491 0

原创 如何用 Hive 的内置函数 parse_url 统计出访问量最高的前 3 个url?

一、需求 使用 Hive 统计出过去 7 天的访问日志中访问次数最多的前 3 个 url 的请求路径。 二、知识点 使用 Hive 的内置函数 parse_url 解析出 url 字段中的请求路径,官网(Hive内置函数)示例如下: 基本用法如下: -- 例:获取 url 中的主机名 selec...

2019-12-22 11:54:25 80 0

原创 SparkSQL读取和写出数据的几种方式

一、parquet格式的数据 parquet是一种列式存储格式的文件类型。存储时可以通过牛X的压缩算法节省存储空间,读取数据时只需要读取所需的列,提高读取性能。 二、JSON格式的数据 三、通过JDBC读取数据库中的数据 四、Hive中的数据 所需的pom依赖如下: <dependenci...

2019-11-29 15:40:21 351 0

原创 如何开发SparkSQL项目?

前言 Spark是企业中用的比较多的大数据计算框架,它主要由 SparkCore、SparkSQL、SparkStreaming 这三个模块组成,实时计算主要使用 SparkStreaming,离线部分的数据处理则主要使用SparkSQL。开发 SparkSQL 程序的一般流程是:读取 HDFS ...

2019-10-24 16:36:51 218 0

原创 Java获取集合中重复的元素

需求 我们在下订单的时候,收件人的地址信息可能会有多个,现在的需求是把一些重复的地址信息删除掉。 姓名,电话,省,市,区,详细地址完全相同则认为是同一个收件人。 分析 地址是存在数据库的表里的,所以我们需要先查出每个收件人下重复的地址,再做数据库的删除操作。可以通过使用 HashSet 的 add...

2019-10-15 13:31:44 437 0

原创 Google思想一(GFS - Google File System)

思考1:Google 搜索引擎每天要从世界各地抓取数以亿计的网页,数据都存储在哪里呢? GFS:使用大量廉价的去掉硬盘的 PC 机构成集群,将数据都存储在服务器的内存中,采用分布式的文件系统进行存储。 思考2:内存中的数据掉电会丢失,怎么保证可靠呢? 在世界各地进行部署,部分地区...

2019-09-26 16:10:51 476 2

原创 大数据学习路线

一、为什么要学习大数据? 我们对数据的存储以及处理大致可以划分为以下几个阶段: 单纯靠人脑记忆:远古时期的智人,买东西的时候不会记录下来自己这次花了多少钱,买了多少东西,只是单纯的记录在自己的大脑里,很快就会忘记,记都记不住更不用说去分析处理一下数据了。 记录在纸上:有了造纸术之后,我们就...

2019-09-20 16:52:56 489 1

原创 mapreduce自定义inputformat

背景 无论是 hdfs 存储文件还是 mapreduce 处理文件,对于小文件的存储和处理都会影响效率,在实际工作中又难免面临处理大量小文件的场景(比方说用 flume 实时采集日志,日志是由用户发送请求而产生的,用户发送请求的频率不是固定的,有的时候频繁请求,有的时候请求数就比较少,flume ...

2019-09-18 15:57:43 135 0

原创 MapReduce自定义GroupingComparator

需求: 有如下订单明细数据 0000001 01 222.8 0000002 06 722.4 0000001 05 25.8 0000003 01 222.8 0000003 01 33.8 0000002 03 522.8 0000002 04 122.4 第一列是订单编号,第二列是商品i...

2019-09-17 14:54:38 118 0

原创 thymeleaf实现th:each双重多重嵌套使用

博主最近在做一个个人的博客网站,准备用 thymeleaf 实现一个动态加载一二级文章分类的功能,效果如下: 后台实体类代码如下: /** * @author 曲健磊 * @date 2019-08-22 20:28:18 * @description 一级分类实体类 */ public...

2019-08-23 11:28:11 6216 0

原创 FileInputFormat.setInputPaths的执行原理

今天在看 MapReduce 源码的时候看了一下 FileInputFormat 的 setInputPaths 方法,内容如下: /** * Set the array of {@link Path}s as the list of inputs * for the map-re...

2019-07-11 10:38:29 872 0

原创 Flume简介

(一)什么是Flume? Flume 是一个用 Java 编写的用于采集日志的框架。我们可以配置 Flume 监控一个文件的末尾,当文件内容发生变化的时候实时的将数据采集到 HDFS 上;也可监控一个目录,当这个目录新增了文件时,将这个文件采集到 HDFS 上。 (二)Flume架构 Flume...

2019-06-30 12:14:25 105 1

原创 MapReduce性能优化秘籍

1. MapReduce跑的慢的原因 MapReduce 程序效率的瓶颈在于两点: 计算机性能 CPU、内存、磁盘、网络 I/O 操作 数据倾斜 map 和 reduce 数设置不合理 map 运行时间太长,导致 reduce 等待过久 小文件过多 大量的不可分块的超大文件(例:通过 gzip...

2019-05-26 15:30:37 147 0

原创 Hive性能优化秘籍

1. Fetch抓取 Fetch 抓取是指,Hive 中对某些情况的查询可以不必使用 MapReduce 计算。例如:SELECT * FROM employees; 在这种情况下,Hive 可以简单地读取 employee 对应的存储目录下的文件,然后输出查询结果到控制台。 修改 hive-...

2019-05-16 11:54:39 143 0

原创 常见图表的应用场景及其优缺点

柱图,又称柱状图。是一种以长方形的长度来表达数据的统计报告图,由一系列高度不等的纵向条纹表示数据分布的情况。

2019-05-04 11:13:56 5740 0

原创 什么是响应时间,并发数,吞吐量?

**指应用执行一个操作所需的时间,包括从发出请求开始到最后收到响应所需要的时间**。拿我们平常浏览网站点击链接为例,响应时间大致包括如下几步: 1. 用户通过鼠标或键盘发出请求操作 2. 浏览器构造请求(请求头,请求体) 3. 用户计算机向网站服务器发送HTTP请求

2019-04-26 20:29:09 3785 0

原创 如何分析网站日志?

一条访问日志如下: 112.10.94.234 - - [22/Aug/2017:14:01:26 +0800] “POST /item/detail.mooc?a=1&amp;b=2&amp;c=5 HTTP/1.1” 200 2582 “http://www.chinamoc...

2019-03-17 15:25:36 4109 1

原创 Storm 集成 Redis

Storm 实时计算完的结果一般会放到 Redis 中缓存。 集成 Redis 所需的 pom 文件: &amp;lt;dependencies&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;gr...

2019-02-18 22:16:09 294 0

原创 Storm集成 JDBC

创建 maven 工程,pom 文件如下: &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.storm&lt;/groupId&gt; &a...

2019-02-18 16:18:13 177 0

原创 如何编写 Storm 程序?

创建 maven 工程,pom 文件如下: &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.storm&lt;/groupId&gt; ...

2019-02-18 15:37:12 232 0

原创 如何创建 Hive 的 UDF?

UDF(User Defined Function)又称:用户自定义函数。可以像 concat, substr那样的 hive 内置的函数一样直接用于 select 语句,简化复杂查询。 编写 UDF 其实就是写一个类继承 org.apache.hadoop.hive.ql.exec.UDF 该类...

2019-02-17 13:45:56 297 0

原创 使用JDBC操作Hive

首先启动 Hive 的远程服务:hiveserver2 &amp; 所需 jar 包的 pom 文件如下: &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.apa...

2019-02-16 22:16:39 291 0

原创 如何创建 Hive 表的几种类型?

基于 MySql 的远程模式安装的 Hive 中的表存储在 hdfs 的 /user/hive/warehouse 目录下。 hive 的表主要有 5 中类型: 内部表 分区表 外部表 桶表 视图 一、内部表 表对应一个目录,表中的数据对应一个文件 文件存储在 hdfs 的 Datan...

2019-02-15 16:59:38 822 0

原创 如何创建 SparkContext,SQLContext,StreamingContext 的几种方式?

首先,使用 ScalaIDE 或 IDEA 创建 Scala 的 Maven 工程。需要用到 spark-core,spark-sql,spark-streaming 的 jar 包,pom 文件如下: &amp;lt;properties&amp;gt; &amp;...

2019-02-14 20:20:56 1796 0

原创 Kafka 生产者API,消费者API,拦截器,流计算

pom 文件如下: &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;...

2019-02-14 16:13:18 349 1

原创 Kafka 简介、集群架构、安装部署、基本命令

一、kafka 是什么? 在实时计算中,Kafka 主要是用来缓存数据,storm 可以通过消费 kafka 中的数据进行实时计算。 一套开源的分布式的消息队列系统,由 scala 写成,支持 javaAPI。 Kafka 读消息采用 topic 进行归类。 二、kafka 中有哪...

2019-02-13 16:40:28 122 0

原创 Spark编程案例:针对每个分区进行数据库操作

需求:将有多个分区的 RDD 中的数据保存到数据库 ps:针对分区进行数据库操作的话,建议使用 foreachPartition 算子,每个分区创建一个 Connection,避免一个 Connection 被多个分区使用而造成的序列化的麻烦。 def saveToMySql(it:Itera...

2019-02-11 15:52:12 205 0

原创 Spark编程案例:创建自定义分区

需求:根据 jsp 文件的名字,将各自的访问日志放入到不同的分区文件中,如下: 生成的分区文件 例如:part-00000 文件中的内容:只包含了 java.jsp 的访问日志 日志内容: 192.168.88.1 - - [30/Jul/2017:12:53:43 +0800] &quo...

2019-02-11 14:49:10 245 0

原创 Spark编程案例:分析tomcat访问日志求访问量最高的前两个网页

需求如题,tomcat 访问日志如下: 192.168.88.1 - - [30/Jul/2017:12:53:43 +0800] "GET /MyDemoWeb/ HTTP/1.1" 200 259 192.168.88.1 - - [30/Jul/2017:12:53:43...

2019-01-19 15:17:29 698 1

原创 利用 Redis 队列操作的原子性实现秒杀

添加一个队列模拟商品列表 lpush productlist 1 2 3 4 5 6 7 8 9 10 利用多线程模拟 30 个人抢购这 10 件商品: package demo; import java.util.concurrent.ExecutorService; import ja...

2019-01-05 15:21:28 6004 7

原创 利用 zookeeper 的分布式锁实现秒杀

常见的业务场景:x年x月x日x点x分x秒,限时抢购10件商品。前提:分布式的环境,多用户高并发访问。

2019-01-04 20:12:18 540 0

原创 zookeeper 的安装和配置

一、下载 zookeeper 以 zookeeper-3.4.10 为例:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/ 二、上传到 Linux 服务器 我使用的是 WinSCP 进行上传,下载地址:https://dl.p...

2019-01-03 20:22:21 100 1

原创 大数据实时计算框架简介

一、实时计算,流式计算? 实时计算 == 流式计算 自来水厂就是一个典型的实时计算系统: 自来水厂可以简单的理解为由一个水泵(采集水源),多个蓄水池(处理水源:沉淀,过滤,消毒等步骤),管理员构成。 水泵负责不停的抽水(采集数据 Extract)(除非人为停止水泵,否则水泵会一直工作)...

2019-01-03 19:16:19 2019 0

转载 阿里云部署hadoop,使用shell操作一切正常,但是使用java api操作上传文件大小为0

感谢原文作者 vaf714 做出的解答! 原文链接:https://blog.csdn.net/vaf714/article/details/82996860 前提 A 云主机是 Linux 环境,搭建 Hadoop 伪分布式,公网 IP:49.4.71.xxx,内网 IP:192....

2018-12-29 10:35:43 568 0

原创 解决:运行sbin下的start-hdfs.sh时报WARN util.NativeCodeLoader: Unable to load native-hadoop

一开始按照网上的教程,修改 hadoop-env.sh 内容如下: export JAVA_HOME=/root/training/jdk1.8.0_144 export HADOOP_HOME=/root/training/hadoop-2.7.3 export HADOOP_COMMON_LI...

2018-12-25 13:37:00 760 0

原创 解决XWPFRun的addPicture方法无法显示图片的问题

最近在解决一个导出订单发票的需求,导出的 word 上必须有条形码图片。查阅资料得知可以使用 XWPFRun 的 addPicture 方法来添加,代码如下: // 插入条形码图片 XWPFParagraph paragraph = cell.addParagraph(); XWPFRun run...

2018-12-13 11:38:00 3455 1

原创 Caused by: java.lang.RuntimeException: No toolkit found

这是运行基于 HBase 的 MapReduce 程序时遇到的一个bug,完整的错误提示信息如下: Graphics Device initialization failed for : es2, sw Error initializing QuantumRenderer: no suitabl...

2018-12-10 22:35:17 1199 0

原创 HBASE(三)—— HBase 的过滤器

HBase 的过滤器主要用来实现复杂查询的,类似 where 条件,常用的有以下几种: 列值过滤器:SingleColumnValueFilter 列名前缀过滤器:ColumnPrefixFilter 多个列名前缀过滤器:MultipleColumnPrefixFilter 行键过滤器:RowF...

2018-12-06 16:54:08 216 0

原创 HBASE(二)—— HBase 的 JavaAPI

在 Windows 平台运行的话,需要修改 C:\Windows\System32\drivers\etc 目录下的 hosts 文件,将 zookeeper 的地址配置到 hosts 文件里面:192.168.220.111 bigdata111。 一、创建表 二、插入数据 三、查询数据 ...

2018-12-05 18:07:00 283 0

提示
确定要删除当前文章?
取消 删除