自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

走向程序的康庄大道

宝剑锋从磨砺出,梅花香自苦寒来。

原创 Spark核心原理 - 消息通信分析

Spark将通信层设计的非常巧妙,融合了各种设计/架构模式,将一个分布式集群系统的通信层细节完全屏蔽,这样在上层的计算框架的设计中能够获得很好的灵活性。同时,如果上层想要增加各种新的特性,或者对来自不同企业或组织的程序员贡献的特性,也能够很容易地增加进来,可以避开复杂的通信层而将注意力集中在上层计...

2018-05-30 01:51:22 1210 0

原创 Kafka 消息偏移量的维护

Kafka是大数据领域常用的消息队列,其高效的吞吐量和分布式容错等特性是其收到青睐的重要原因。kafka消息的位置用好Kafka,维护其消息偏移量对于避免消息的重复消费与遗漏消费,确保消息的Exactly-once是至关重要的。 kafka的消息所在的位置Topic、Partitions、Off...

2017-08-02 17:11:02 14501 4

原创 哈希表

哈希表(Hash Table) 我们知道,通过对数组进行直接寻址(Direct Addressing),可以在 O(1) 时间内访问数组中的任意元素。所以,如果存储空间允许,可以提供一个数组,为每个可能的关键字保留一个位置,就可以应用直接寻址技术。 哈希表(Hash Table)是普通数组概念的推...

2017-03-08 17:55:00 389 0

原创 Lucene文件格式简介

1、定义 Lucene中基本的概念包括index、document、field、term。 一个index包含一系列的documents; 一个document包含一系列的fields; 一个field包含一系列的terms; 一个term是一系列的bytes; 2、分段 Lucene...

2020-03-12 17:58:14 84 0

原创 UML类图关系

依赖、关联、聚合、组合的UML类图表示以及关系之间的联系与区别。 依赖 一个类A使用到了另一个类B,这种使用是具有临时性的、非常弱的,但是类B的变化会影响到A。 表现在代码层面,一般是类B作为参数在类A中的某个方法中被使用。 关联 关联体现的是两个类或者类与接口之间予语义级别的一种强...

2020-01-09 20:34:18 46 0

原创 ESRally基准测试工具离线使用简介

ESRally安装 运行ESRally需要依赖Python3,Git。本篇是针对Centos7系统。 安装依赖 安装Python3 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sq...

2019-12-10 14:56:25 368 0

转载 性能指标TP99

首先给出Google到的答案: The tp90 is a minimum time under which 90% of requests have been served. tp90 = top percentile 90 Imagine you have response times:...

2019-10-12 10:13:35 51 0

原创 bash shell知识点

大小写转换 # 将输入的第一个参数转为大写 answer=$(echo "$1" | tr [A-Z] [a-z]) echo "$1" "$answer" 远程通信 ssh -Tq $IP << EOF ...

2019-04-26 17:09:40 84 0

原创 HFile校验

HBase 表大小统计: hbase org.apache.hadoop.hbase.mapreduce.RowCounter test:standard HFile校验: #]hbase hfile usage: HFile [-a] [-b] [-e] [-f <arg>...

2019-03-25 17:38:43 327 0

原创 IO工具包commons-io

<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> &l...

2019-03-22 18:15:26 201 0

原创 Java用数组实现队列

数组实现队列,实际是通过维护队首和队尾变量来实现一个循环数组,从而实现复杂度为1的FIFO队列。 interface Queue&lt;T&gt; { boolean add(T t) throws Exception; T take(); } publi...

2019-03-12 15:15:55 349 0

原创 Java集合工具包com.google.guava:guava

&lt;dependency&gt; &lt;groupId&gt;com.google.guava&lt;/groupId&gt; &lt;artifactId&gt;guava&lt;/artifactI...

2019-02-26 20:58:54 1294 0

原创 Java集合工具包commons-collections

&lt;dependency&gt; &lt;groupId&gt;commons-collections&lt;/groupId&gt; &lt;artifactId&gt;commons-collections&am...

2019-02-13 15:27:25 165 0

原创 Linux Cron 表达式

Linux Cron表达式 Cron表达式的定义 Linux的Cron表达式支持分钟、小时、月的某天、月份、周当中的某天,最小的粒度到分钟、最大的粒度到月份和周的某天。 编辑一个linux定时任务: crontab -e 每位的意义 * * * * * 要执行的命令 -------...

2019-01-10 17:29:44 2486 0

原创 Java多线程 - 内置锁与高级锁机制

当多线程共享一个资源变量的时候,需要对线程加以控制,以保证线程是安全的,共享的资源被有效的使用。 内置锁(监视锁) synchronized作用域代码块上,是一种内存可见的内置锁。 synchronized是一种可重入锁:同一个线程可以获得它自己持有的锁。 synchronized(x1...

2019-01-08 19:58:50 404 0

原创 大数据文件格式揭秘:Parquet、Avro、ORC

  Parquet、Avro、ORC格式 相同点 基于Hadoop文件系统优化出的存储结构 提供高效的压缩 二进制存储格式 文件可分割,具有很强的伸缩性和并行处理能力 使用schema进行自我描述 属于线上格式,可以在Hadoop节点之间传递数据   不同点 行式存储or列...

2018-12-17 20:50:28 2491 0

原创 RDD repartition过程源码阅读

  将rdd的分区数量由少变多,需要调用repartition算子。 /** * reparition实际调用coalesce,并且shuffle=true / def repartition(numPartitions: Int)(implicit ord: Orderi...

2018-12-17 15:47:28 272 0

原创 Spark 闭合函数清理

  来看下面的函数 def coalesce(numPartitions: Int, shuffle: Boolean = false, partitionCoalescer: Option[PartitionCoalescer] = Option.empty)...

2018-12-17 15:17:36 94 0

原创 数据结构 - 树 - B树、B+树

前言 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的...

2018-12-05 17:09:13 84 0

原创 数据结构 - 树 - Trie树

  Trie树定义 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。 Trie树可以利用字符串的公共前缀来节约存储空间。如下图所示,该trie树用10个节点保存了6个字符串tea,ten,to,in,...

2018-12-05 11:58:12 103 0

原创 数据结构 - 树 - 堆

  堆的定义 堆的定义如下: 堆树是一颗完全二叉树; 堆树中某个节点的值总是不大于或不小于其孩子节点的值; 堆树中每个节点的子树都是堆树. 当父节点的键值总是大于或等于任何一个子节点的键值时为最大堆.当父节点的键值总是小于或等于任何一个子节点的键值时为最小堆.如下图,左边为最大堆,右边为...

2018-12-05 11:28:56 78 0

原创 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法

  链接: 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法; HttpClient连接池抛出大量ConnectionPoolTimeoutException: Timeout waiting for connection异常排查;      

2018-10-13 15:01:31 124 0

原创 tcp的三次握手与四次握手

  tcp连接打开的三次握手,关闭的四次握手过程   在服务器的日常维护过程中,会经常用到下面的命令: ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' CLOSE_W...

2018-10-13 14:55:25 82 0

原创 Spark取TopN问题

数据处理中, 经常会遇到取TopN的问题. 在Spark中,取TopN有如下的方法: 生成rdd  读取数据源的数据并转为rdd. val rdd = sc.textFile() 分区 将rdd划分分区,分区的个数根据实际的数据量和计算集群机器的数量以及核心数确定. val par...

2018-09-06 20:39:07 1214 0

原创 hive表存储为parquet格式

Hive0.13以后的版本 创建存储格式为parquet的hive表: CREATE TABLE parquet_test ( id int, str string, mp MAP&lt;STRING,STRING&gt;, lst ARRAY&lt;STRI...

2018-09-04 11:49:00 13880 1

原创 Oozie与Spark2整合

准备Oozie环境 Oozie版本:4.2.0,从源码手动编译安装包 源码包:oozie-4.2.0.tar.gz tar -zxvf oozie-4.2.0.tar.gz -C $OOZIE_SRC_HOME Building Oozie cd $OOZIE_SRC_HOME bin...

2018-09-03 18:04:32 799 0

原创 Spark on Yarn任务运行的日志收集

Spark on yarn 环境:基于CDH的大数据组件平台。 yarn服务有resource manager和node manager组成,在yarn上运行的任务,由一个ApplicationMaster和多个container组成。 Spark 运行由一个driver和多个executo...

2018-08-21 21:31:34 5002 0

原创 Linux设置开机自启动

linux系统启动的时候,会自动执行/etc/rc.local中的命令。 将需要开机自启动的服务的启动命令放到/etc/rc.local中即可。   示例: 开机自启动mongodb vim /etc/rc.local /usr/local/mongodb/bin/mongod -c...

2018-08-21 16:30:53 182 0

原创 Linux别名设置

  linux为命令设置别名 一、可以在/etc/bashrc中添加别名 # add alias name alias ap="netstat -nptl" source /etc/bashrc 或者 source ~/.bashrc 或者 source ~/.bas...

2018-08-21 16:11:33 710 0

原创 Linux的grep与egrep、fgrep

grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast gr...

2018-08-21 14:32:53 128 0

原创 HDFS跨集群拷贝

使用hadoop distcp实现不同hadoop集群之间的文件迁移 #] hadoop distcp usage: distcp OPTIONS [source_path...] &lt;target_path&gt; 使用示例: hadoop distcp hdfs:...

2018-08-21 11:04:23 1796 0

原创 git alias常用别名

Windows中的配置 git config --global alias.ch checkout git config --global alias.co commit git config --global alias.coam 'commit --amend' gi...

2018-07-26 20:39:38 837 0

原创 Python基础:输出格式化

Python版本:3.6.6 使用%输出格式化 在python中,格式化输出使用%实现。 在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。 常见的占位符有: 占位符    替换内容 ...

2018-07-23 15:46:32 273 0

原创 Python文本处理:解析json格式的数据

json模块 版本:python2.7 Python提供json模块处理json格式的数据,主要功能: json.dumps(): 将dict转为str json.loads(): 将str转为dict 小案例 目标 解析一个包含json数据格式的文件,并对数据进行统计。 编码 ...

2018-07-23 14:54:14 1648 0

原创 hive表存储为avro格式

Hive 0.14 and later versions CREATE TABLE kst ( string1 string, string2 string, int1 int, boolean1 boolean, long1 bigint, f...

2018-07-19 12:26:07 1133 0

原创 hive的DDL与DML

DDL 浏览所有数据库 hive&gt; SHOW TABLES; # 浏览所有以s结尾的表 hive&gt; SHOW TABLES '.*s'; 浏览数据库下面的所有表 # 切换数据库 hive&gt; use default; OK...

2018-07-19 12:19:29 262 0

原创 shell脚本与mongo交互

  mongo提供*.js的方法供linux调用 /usr/local/mongodb/bin/mongo  hostname/dbname xxx.js xxx.js db.getCollection('CollectinName').drop(); db.ge...

2018-07-19 11:43:32 1482 0

原创 使用rest api访问elasticsearch6

==&gt; 查询所有index curl '172.30.6.14:9200/_cat/indices?v' ==&gt; 创建索引 curl -XPUT '172.30.6.14:9200/customer?pretty'...

2018-07-17 21:10:56 292 0

原创 hbase表映射到hive

# 创建hbase表 hbase(main):087:0* create "test_hbase_mapping_hive", "f" 0 row(s) in 1.2400 seconds => Hbase::Table - test_hbase...

2018-07-17 21:05:45 1662 7

原创 Java/Scala 访问启用kerberos验证的Hadoop集群

通过keytab的方式访问HDFSConfiguration config = new Configuration(); FileSystem hdfs = null; try { if (isKerberosEnable){ ...

2018-07-06 11:51:20 1627 0

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