10 wisgood

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1k+

hive 的 left semi join 讲解

介绍LEFT SEMI JOIN (左半连接)是 IN/EXISTS 子查询的一种更高效的实现。Hive 当前没有实现 IN/EXISTS 子查询,所以可以用LEFT SEMI JOIN 重写你的子查询语句。示例可以改写为特点1、left semi join 的限制是, JOIN 子句中右边的表只能在 ON 子句中设置过滤条件,在 WHERE 子句...

2019-11-12 11:26:38

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

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

2018-11-10 18:00:58

多年大数据开发经验总结

多年工作经验总结初入行,搞大数据开发。得高人指点,先学mapreduce,不足一年,tez兴,后入此道。朝夕不倦,发愤图强,才能略知一二。无奈后浪推前浪,tez被spark拍在沙滩上,遂投spark之怀。继而抖擞精神,奋袂而起,github、stackoverflow轮番上阵,终七窍通六窍。然乾坤更替,岁月不复,spark转眼成过眼烟云,flink、 beam之流成业界新宠,一时洛阳纸贵,众人...

2018-08-24 10:02:23

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

单例模式是创建性模式之一,算是比较简单好理解的了。单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。我们以Hadoop2.7版本中的ShutdownHookManager举例讲解单例模式的几个需要注意的地方: 1)将构造方法私有化。单例模式通常是在类内部提供一个可供使用的对象,通过公共接口对外提供该对象。为了避免在类外面通过new的方式再次生成对象,通常都会将构造方法私有化...

2018-06-22 16:53:41

查看线程数的几种方法

1 toptop -H -p 如下 如果是查看系统中总的线程数,直接用top -H选项 2 pstreepstreee -p pid |wc -l 如果是查看系统中总的线程数,用pstree -p |wc -l 3 通过/proccat /proc/17592/status 4 通过/procll /proc/17592/task/|wc -l ...

2018-06-09 08:56:48

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

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

2018-05-10 17:55:08

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

在mapreduce里,如果某个reduce输出为空,默认也会生成一个大小为0的文件。原因是reduce写的时候,不知道会不会有输出数据,所以默认初始化了一个文件。如果没有输出,close文件最终会生成一个空文件。如下。有几个缺点: 1)生成的很多小文件,对namenode形成一定压力 2)生成的数据下个阶段处理的时候,这些空的文件会浪费掉一些计算资源。 3)看着不爽-rw-r--r--...

2018-05-09 11:24:06

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

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

2018-04-28 10:36:51

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

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

2018-04-27 13:30:03

Spark SQL中Join常用的几种实现

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

2018-04-27 13:13:47

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 cases is one key factor of Hive performance tunning....

2018-04-24 18:52:27

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

1 bucket mapjoin1.1 条件1) set hive.optimize.bucketmapjoin = true; 2) 一个表的bucket数是另一个表bucket数的整数倍 3) bucket列 == join列 4) 必须是应用在map join的场景中1.2 注意1)如果表不是bucket的,只是做普通join。2 SMB join (...

2018-04-24 18:50:23

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_user_demography_sex (sex_id string,sex_name strin...

2018-04-24 16:24:12

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 mode)执行jmap -heap 报错 jmap -heap 17694 Attaching to pro...

2018-04-23 11:50:09

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

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

2018-04-08 13:11:47

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

先贴一些程序代码import java.lang.management.ManagementFactory;import java.lang.management.MemoryMXBean;import java.lang.management.MemoryPoolMXBean;public class MemoryDemo { static String mb(long ...

2018-04-08 12:05:33

64位jvm和32位jvm性能

原文引自于: http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#64bit_description 一般来说,64位jvm相比32位jvm能够处理更大的内存,但伴随而来的一个小的性能损失。 这是因为系统中的每个本地指针在64位jvm上都占用8个字节而不是4个。加载这些额外的数 据会影响内存使用量,这会导致执行速度稍...

2018-04-05 10:03:03

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

import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/** * Created by wisgood . */public class ProducerConsumerWithBlockingQueueDemo { public static void...

2018-03-28 19:36:01

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

import java.util.LinkedList;import java.util.List;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * Create...

2018-03-28 19:33:26

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

import java.util.LinkedList;import java.util.List;/** * Created by wisgood . */public class ProducerConsumerWithSynchronizedDemo { public static void main(String[] args) { ProductFac...

2018-03-28 19:31:09

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!