自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 mapreduce中split划分分析(新版api)

面试的过程中,笔者经常喜欢问一个问题:hadoop中map数是怎么确定的?但发现还是有好多面试者都答不上来。这个问题其实算是比较基础的一个问题,对于理解mapreduce的原理很有帮助。 今天有空结合源码分析一下。 本文以hadoop2.7.2的版本作为分析,代码链接如下。 —— [ git...

2018-01-27 10:19:29 9412 1

原创 hive中join导致的数据倾斜问题排查

hive中大key导致的join数据倾斜问题1、场景如果某个key下记录数远超其他key,在join或group的时候可能会导致某个reduce任务特别慢。本文分析下join的场景。本例子SQL如下:查询每个appid打开的次数,需要排除掉作弊的imei。selectappid,count(*)f...

2017-08-10 22:55:22 20248 1

原创 hive 的 left semi join 讲解

介绍 LEFT SEMI JOIN (左半连接)是 IN/EXISTS 子查询的一种更高效的实现。 Hive 当前没有实现 IN/EXISTS 子查询,所以可以用LEFT SEMI JOIN 重写你的子查询语句。 示例 可以改写为 特点 1、left semi join...

2019-11-12 11:26:57 65 0

原创 sparksql通过jdbc读取mysql时划分分区问题

当通过spark读取mysql时,如果数据量比较大,为了加快速度,通常会起多个任务并行拉取mysql数据。 其中一个api是 def jdbc(url: String, table: String, columnName: String, lowerBound: Long, upperBound:...

2018-11-10 18:00:58 4800 1

原创 多年大数据开发经验总结

多年工作经验总结 初入行,搞大数据开发。得高人指点,先学mapreduce,不足一年,tez兴,后入此道。朝夕不倦,发愤图强,才能略知一二。无奈后浪推前浪,tez被spark拍在沙滩上,遂投spark之怀。继而抖擞精神,奋袂而起,github、stackoverflow轮番上阵,终七窍通六窍。然...

2018-08-24 10:02:23 2823 10

原创 Hadoop里的设计模式之单例模式

单例模式是创建性模式之一,算是比较简单好理解的了。 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 我们以Hadoop2.7版本中的ShutdownHookManager举例讲解单例模式的几个需要注意的地方: 1)将构造方法私有化。单例模式通常是在类内部提供一个可供使用的对...

2018-06-22 16:53:41 800 0

原创 查看线程数的几种方法

1 top top -H -p 如下 如果是查看系统中总的线程数,直接用top -H选项 2 pstree pstreee -p pid |wc -l 如果是查看系统中总的线程数,用pstree -p |wc -l 3 通过/proc cat /proc/17592/s...

2018-06-09 08:56:48 11523 0

原创 centos7.4安装图形界面并远程桌面连接

1 系统版本 CentOS release 6.2 (Final) 以下安装需要用root权限操作。 2 安装x windows yum groupinstall -y “X Window System”  //注意有引号 3 安装图形界面软件 GNOME yum groupin...

2018-05-10 17:55:08 12988 3

原创 mapreduce程序中避免reduce输出空文件

在mapreduce里,如果某个reduce输出为空,默认也会生成一个大小为0的文件。原因是reduce写的时候,不知道会不会有输出数据,所以默认初始化了一个文件。如果没有输出,close文件最终会生成一个空文件。如下。有几个缺点: 1)生成的很多小文件,对namenode形成一定压力 2)生...

2018-05-09 11:24:06 4656 0

原创 如何查看jvm中的各种参数以及默认值

1 标准参数 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 通过命令 java即可查看 如下 where options include: -d32 use a 32-bit data model if available ...

2018-04-28 10:36:51 12878 0

原创 不同gc垃圾回收器组合及日志样例

不同的jvm参数所使用的老年代、年轻代组合如下图。 参数 新生代 老年代 -XX:+UseSerialGC Serial(DefNew) Serial Old -XX:+UseParNewGC ParNew Serial Old -...

2018-04-27 13:30:03 680 0

原创 Spark SQL中Join常用的几种实现

1、引言 Join是SQL语句中的常用操作,良好的表结构能够将数据分散在不同的表中,使其符合某种范式,减少表冗余、更新容错等。而建立表和表之间关系的最佳方式就是Join操作。 SparkSQL作为大数据领域的SQL实现,自然也对Join操作做了不少优化,今天主要看一下在SparkSQL中对于J...

2018-04-27 13:13:47 2286 3

转载 Understanding Hive joins in explain plan output

Hive is trying to embrace CBO(cost based optimizer) in latest versions, and Join is one major part of it. Understanding join best practices and use c...

2018-04-24 18:52:27 186 0

原创 hive中 bucket mapjoin 与 SMB join(Sort-Merge-Bucket)区别

1 bucket mapjoin 1.1 条件 1) set hive.optimize.bucketmapjoin = true; 2) 一个表的bucket数是另一个表bucket数的整数倍 3) bucket列 == join列 4) 必须是应用在map join的场景中 ...

2018-04-24 18:50:23 2312 0

原创 Hive中mapjoin优化例子

1 基本信息 3个表,1个事实表,2个维度表 事实表 test_fact (mid string,sex_id string,age_id string ) 维度表dim_user_demography_age (age_id string,age_name string ) 维度表dim...

2018-04-24 16:24:12 2040 0

原创 openjdk1.8执行jmap报错

openjdk版本 openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed ...

2018-04-23 11:50:09 3512 3

原创 Spark1.6内存管理(二) 实例讲解:Spark管理页面中Storage Memory是如何计算的?

书接上文: https://blog.csdn.net/wisgood/article/details/78069753 本文主要讲解879.0MB是如何算出来的?spark用的是1.6版本。 对应程序的参数设置为 spark-shell --executor-memory 15...

2018-04-08 13:11:47 7800 0

原创 Runtime.getRunTime.maxMemory为啥比Xmx指定的内存小

先贴一些程序代码 import java.lang.management.ManagementFactory; import java.lang.management.MemoryMXBean; import java.lang.management.MemoryPoolMXBean; p...

2018-04-08 12:05:33 5509 0

翻译 64位jvm和32位jvm性能

原文引自于: http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#64bit_description 一般来说,64位jvm相比32位jvm能够处理更大的内存,但伴随而来的一个小的性能损失。 这是因为系统中的每个本地指...

2018-04-05 10:03:03 5248 1

原创 Java多线程-生产者消费者例子-使用阻塞队列(BlockingQueue)实现

import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; /** * Created by wisgood . */ public class ProducerCon...

2018-03-28 19:36:01 3534 0

原创 Java多线程-生产者消费者例子-使用Lock实现

import java.util.LinkedList; import java.util.List; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java....

2018-03-28 19:33:26 1438 0

原创 Java多线程-生产者消费者例子-使用Synchronized实现

import java.util.LinkedList; import java.util.List; /** * Created by wisgood . */ public class ProducerConsumerWithSynchronizedDemo { public s...

2018-03-28 19:31:09 399 0

转载 深入理解ThreadLocal

学习JDK中的类,首先看下JDK API对此类的描述,描述如下: 该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal其实就是一个...

2017-12-23 15:50:29 337 0

原创 Spark打印每个split及其对应文件

Spark打印每个split及其对应文件

2017-10-03 10:33:39 1225 1

原创 Spark1.6内存管理(一)

从1.6.0版本开始,Spark内存管理模型发生了变化。旧的内存管理模型由StaticMemoryManager类实现,现在称为“legacy(遗留)”。默认情况下,“Legacy”模式被禁用,这意味着在Spark 1.5.x和1.6.0上运行相同的代码会导致不同的行为。为了兼容,您可以使用spa...

2017-09-23 11:33:24 943 0

原创 Spark中executor-memory参数详解

Spark中executor-memory参数详解

2017-09-05 21:42:16 18720 3

原创 hadoop中查找某个字符串所在的hdfs位置

hadoop中查找某个字符串所在的hdfs位置

2017-08-29 09:38:27 4162 0

原创 hadoop节点字符编码导致的reduce重复记录问题排查

hadoop节点字符编码导致的reduce重复记录问题排查

2017-08-25 09:58:48 23848 0

原创 Hive中虚拟列

Hive中虚拟列

2017-08-25 09:48:37 1452 1

原创 spark读取kafka两种方式的区别

参考:http://spark.apache.org/docs/1.4.1/streaming-kafka-integration.html Receiver与Direct方法相比,后者具有以下优点。 简化并行性 无需创建多个输入Kafka流和联合它们。使用directStream,S...

2017-08-23 22:31:19 2162 0

原创 Linux下调整/tmp目录大小

Linux下调整/tmp目录大小

2017-08-23 10:28:10 21170 1

转载 Spark踩坑记——Spark Streaming+Kafka

前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark streaming从kafka中不断拉取数据进行词频统计。本文首先对spark streaming嵌入kafka的...

2017-07-26 10:22:01 2426 1

转载 Kafka无消息丢失配置

Kafka到底会不会丢数据(data loss)? 通常不会,但有些情况下的确有可能会发生。下面的参数配置及Best practice列表可以较好地保证数据的持久性(当然是trade-off,牺牲了吞吐量)。笔者会在该列表之后对列表中的每一项进行讨论,有兴趣的同学可以看下后面的分析。 blo...

2017-07-25 14:08:35 2519 0

转载 kafka consumer防止数据丢失

kafka最初是被LinkedIn设计用来处理log的分布式消息系统,因此它的着眼点不在数据的安全性(log偶尔丢几条无所谓),换句话说kafka并不能完全保证数据不丢失。   尽管kafka官网声称能够保证at-least-once,但如果consumer进程数小于partition...

2017-07-25 13:25:24 2826 0

转载 Kafka Mirror Maker Best Practices

Short Description: Best Practices in running Kafka Mirror Maker Article Kafka's mirroring feature makes it possible to maintain a replica...

2017-07-25 13:07:27 1116 0

原创 java jvm gc常用参数

推荐用法-XX:+PrintGCDetails  -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Xloggc:/home/gc.log1、-verbose:gc这个参数会输出虚拟机中GC的情况.使用后输出如下:[Full GC 168K-&g...

2017-05-18 18:46:57 680 1

原创 Hive 查看函数(udf)定义及示例

Hive 查看函数(udf)定义及示例

2017-04-25 11:31:11 7149 0

原创 MapReduce任务中文部分正常,部分乱码

集群上提交的mr任务,发现结果中有的中文正常,有的中文是论码。 分析了一下,应该是集群中hadoop节点的编码配置不一样。可以加上下面的参数: mapred.child.env="LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8" ;

2017-02-20 10:29:18 812 0

转载 论SparkStreaming的数据可靠性和一致性

Driver HA 由于流计算系统是长期运行、且不断有数据流入,因此其Spark守护进程(Driver)的可靠性至关重要,它决定了Streaming程序能否一直正确地运行下去。 Driver实现HA的解决方案就是将元数据持久化,以便重启后的状态恢复。如图一所示,...

2017-02-19 11:34:17 805 0

转载 Spark Streaming场景应用|Kafka数据读取方式

Spark Streaming 支持多种实时输入源数据的读取,其中包括Kafka、flume、socket流等等。除了Kafka以外的实时输入源,由于我们的业务场景没有涉及,在此将不会讨论。本篇文章主要着眼于我们目前的业务场景,只关注Spark Streaming读取Kafka数据的方式。 Spa...

2017-02-19 11:33:05 729 0

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