自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

敲码的汉子

敲码的汉子你威武雄壮,飞驰的双手像疾风一样

  • 博客(116)
  • 资源 (3)
  • 收藏
  • 关注

原创 hbase客户端源码分析

客户端版本1.2.x下面是一段比较常见hbase客户端连接server查询的代码。Connection connection = ConnectionFactory.createConnection(conf);HTable table=connection.getTable(TableName.valueOf("myTable"), Executors.newFixedThreadPool(10));Result result = table.get(new Get("myRowKey".getB

2020-10-22 19:34:28 739

原创 kafka源代码(一)kafka的网络框架

Kafka的网络模块没有使用第三方库,全部依赖于java的nio,包括selector、channel、buffer等。搞清楚kafka的网络模块,对我们线上kafka的调优有很大帮助。kafka的总体网络结构如下图所示:大致为分为:1.acceptorsocket请求直接发送给acceptor,acceptor是nio里面的selector,整个kafka里面只有一个acceptor,单线程。private[kafka] class Acceptor(val endPoint: EndP

2020-08-25 16:04:54 1036

原创 Kylin(一)-kylin的介绍及安装

一、kylin的简单介绍kylin是apache的社区的一员,官网地址http://kylin.apache.org/最初由ebay开发并贡献至开源社区。Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据。它能在亚秒内查询巨大的表。Apache Kylin™ 令使用者仅需三步,即可实现超大数据集上的亚秒级查询。定义数据集上的一个星形或雪花形模型 2在定义的数据表上构建cube 3使用

2020-05-29 11:18:08 806

原创 hbase(十)merge region

一、什么是merge regionregion的merge和split相对应。当一个region变得数据量特别大,已经影响到读写时,就会把一个region分裂成若干个。对应merge,region的merge就是将多个region合并成一个。二、什么情况下要merge region当一个table数据量比较小,但是region数量特别多时,就需要merge region。量化多大?当你...

2020-02-25 17:16:19 2533

原创 树莓派(四)树莓派上启动samba服务

一、摘要前面几篇文章讲了,给我们的树莓派挂载上了移动硬盘,安装了下载工具,下载了很多蓝光电影,此时我们只能通过sftp或者ftp来访问树莓派,并不是很方便。当开启samba服务后,就可以通过samba服务远程将树莓派的存储资源挂载在自己的电脑上,像浏览自己电脑上的资源一样浏览树莓派上的资源。现在很多智能电视也支持连接samba,例如小米电视的里面的应用"高清播放器",可直接连接samba服务...

2020-02-24 00:42:47 1428

原创 树莓派(三)在树莓派上安装下载工具

一、摘要树莓派连接上移动硬盘后,可以大大扩展我们的存储空间。这么多的空间就可以来下载很多蓝光电影,本节来讲在树莓派上安装下载工具。二、安装下载工具bt工具transmissiontransmission是一个非常好用的bt下载工具,虽然他的功能没有utorrent强大,但是在很多pt网站上使用率都非常高。因为树莓派是arm系统,当前我还没找到可以在树莓派上运行的utorrent版本,所以...

2020-02-24 00:16:25 3856

原创 树莓派(二)树莓派装机

一、准备镜像下载地址 https://www.raspberrypi.org/downloads/官方推荐使用raspbian,点击rapsbian,raspbian按照需求也有不同的版本,如下图raspbian里面有3个不同的版本,前面两个版本是桌面版,最后面的“lite”版本是简易版,只保留基础功能,没有桌面,如果你是新手推荐你使用前面两个,如果你经常使用linux且没有桌面操作...

2020-02-23 23:51:33 482

原创 【问题排查】kafka0.10.x过期数据不会自动删除问题

摘要线上环境kafka集群空间一共是8TB*12(disk)*4(node)=384TB,容量算是非常充裕了,而且每个topic设置的数据过期时间都是15天,但是发现磁盘容量已经80%。预估了下每天的数据增量,存满80%至少得5个月的数据。是过期数据没有删除吗?还是配置不起效?还是其他原因。问题情况检查了多个topic 节点上kafka-logs目录文件夹中的数据情况,发现如下情况。1.绝...

2019-08-15 10:40:13 2114 3

原创 kafka重新分配partition

摘要当kafka集群扩容时,新加入的节点可以很平滑的加入到集群中。但是原来创建的topic并不会将partition数据均匀的分配到这个节点上,只有新创建的topic才会分配到新的节点上。这时就可以用kafka的kafka-reassign-partitions.sh工具来进行手动平均分配。This command moves topic partitions between replicas...

2019-07-19 14:00:26 1329

原创 Kafka Performance Benchmark

摘要kafka集群部署后,一般都要进行对kafka进行性能测试,观察各硬件资源指标。这里只给出kafka集群测试的方法。kafka测试的方法是使用kafka自己的kafka-producer-perf-test命令。命令usage: producer-performance [-h] --topic TOPIC --num-records NUM-RECORDS --record-size...

2019-07-12 17:28:54 772

原创 chown命令

chown 命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。只有文件主和超级用户才可以便用该命令。实例#把test文件夹所属改为rootchown -R root /test#把test文件夹所...

2018-04-19 18:39:27 2403

原创 linux修改文件系统权限

chmod 令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。u User,即文件或目录的拥有者;g Group,即文件或目录的所属群组...

2018-04-19 18:27:11 2753

原创 linux操作相关

一、增加用户useradduseradd myuser执行下来会创建一个名为myuser的用户。 创建的用户并没有home dir,如果是用ubuntu系统这样创建的用户因为没有home dir并不能使用界面登录。使用下面的命令。useradd -m -p 123456 myuser执行完毕会创建myuser的home dir -m 创建用户目录 -p 为创建用户设置密码...

2018-04-19 17:38:19 297

原创 python常见问题

持续更新。。。一、安装setup下载地址:https://pypi.org/project/setuptools/#files 下载tar.gz文件cd /setuppython setup.py install二、安装pippython中的pip类似于linux中yum和apt工具,可以使用命令直接安装我们需要的包。 下载地址:https://pypi.org/...

2018-04-19 17:15:50 355

原创 2017年总结和2018年计划

现在时间已经2018年3月13日,现在写年终总结好像有点晚,但写新年计划还不算晚,由于去年年底和年初有很多事情,一直静不下心来写这个,最近很多事情都已经尘埃落定,想想可以总结一下过去一年同时计划一下新的一年。2017年总结1.完成了hive的源码改造,和spark相结合。 搭建了hive源码修改调试环境,并且仔细阅读了hive的源码,将hive和spark相结合,修改了多个和hive...

2018-03-13 16:55:52 1812

原创 Java运算符 与(&)、非(~)、或(|)、异或(^)、移位运算

1.位异或运算(^)运算规则是:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1。比如:5^9=12. 2.位与运算符(&)运算规则:两个数都转为二进制,然后从高位开始比较,如果两个数都为1则为1,否则为0。比如:5&9=1. 3.位或运算符(|)运算规则:两个数都转为二进制,然后从高位开始比较,两个数只要有一个为1则为1,否则就为...

2018-03-02 17:50:07 1735

原创 java常用集合类及其区别、源码分析(一)

在Java中集合是最常用到的工具类,在各种各样的业务中集合用来存储数据、查找数据等,常用的集合有ArraryList、Vector、LinkedList、HashMap、HashTable、HashSet等,但这些集合在源码上是怎么实现的,最底层是使用什么样的数据结构实现的。 常用的集合可以分为两大类:Collection和Map,这两大类是分别单独实现和定义接口的。 下图列出了常见集合的继承...

2018-03-02 12:30:34 2047

原创 消息中间件Rabbitmq(二)-使用详解

Rabbitmq 是基于amqp(高级消息队列协议)实现的队列技术,在他之上可以完成多种类型的消息转发模型。 下面列举一些常用的消息转发场景,在rabbitmq中是怎样实现的。1.原理先来看一下rabbitmq消息转发的原理,便于理解消息转发以及怎样实现常见的消息转发模型。 1.1生产者1.生产者创建连接,并创建通道连接rabbitmq 2.使用routing key绑定ex...

2018-02-27 15:05:38 3175

原创 消息中间件rabbitmq(一)-基本介绍和部署

Rabbitmq是常用的消息中间件之一,其它常见的消息中间件如activemq、kafka、zeromq,各个消息中间件各有各自的适合用的场景。 这里我们说下Rabbitmq,rabbitmq是基于AMQP(Advanced Message Queuing Protocol)协议使用erlang开发的消息中间件。amqp具有更加灵活的消息转发功能,同时erlang又是专门针对于线程安全和分布式开...

2018-02-26 15:13:44 2492

原创 部署gitlab

一直使用的gogs,但是发现很多人还是用gitlab,而且gitlab功能比较强大。 部署采用docker部署,省去不少部署中出现的麻烦。 镜像使用官方上传的社区版本。 https://hub.docker.com/r/gitlab/gitlab-ce/安装docker环境熟练使用docker,且安装过docker运行环境的跳过。 安装docker运行环境,我的博客里面有一条命...

2018-02-24 18:22:05 1885

原创 记一次阿里面试——第一面,电话面试

先说下笔者的情况,当前时间2018年2月11日,笔者工作5年半,坐标苏州,热爱研究技术,一直很向往阿里,但因为在苏州,一直没有迈出去杭州的第一步,这次阿里的一个面试机会经过和家人商榷后,家人同意我去杭州(虽然这话说得有点早),认真准备了几天,今天接到了电话面试,异常激动,废话不多说,下面是面试过程,电话面试持续了半个小时。1.简单介绍下自己 介绍了自己的工作年限,工作经历和大概项目经历。 ...

2018-02-11 16:27:36 15139 2

原创 hive的orc格式详解

ORC(The Optimized Row Columnar),被设计用来给hive提供更高效的数据存储格式。和其它数据格式相比(parquest、text、rc),orc在读、写、处理数据上有着更优的表现。ORC是一种文件结构,排列组织存储数据的一种结构,而非一种数据压缩格式,就像hbase索引数据用B+树形式来存储数据。orc是列式存储结构,(关系型数据库大多用的是行式存储),由于列式

2018-02-03 11:32:03 11745

原创 hive对接hbase(二)-hive中操作hbase

hbase的查询比较简单,总得来看就是只有rowkey的定位。 在hbase的查询中可以使用scan来定位rowkey,使用filter来定位具体要查询的某个字段。在hive对接hbase后,就可以使用sql对hbase进行操作,那在hive中又能对hbase做哪些操作呢,哪些操作是在hbase中进行,哪些是在hive中进行。如果不清楚这些问题,在实际的使用过程当中,我们就没办法对查询效率以

2018-02-01 20:57:03 3114

原创 hbase(十)-hbase查询,scan filter的使用

1.ScanHBase常用的查看数据方式有scan和get,get是一种特殊的scan,get是scan的startrow和endrow等于同一个值的特殊情况。hbase的rowkey是按照B+树的形式存放的,所以查找一个具体的rowkey速度是非常快的,所以查询数据的时候一般都会设置scan的startrow和endrow,这样可以缩小查找的范围,所以rowkey的设计在hbase里面是

2018-02-01 20:23:55 14835

原创 hadoop(八)-hdfs原理及架构设计

HDFS 是一个能够面向大规模数据使用的,可进行扩展的文件存储与传递系统。是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和 存储空间。让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。即使系统中有某些节点脱机,整体来说系统仍然可以持续运作 而不会有数据损失。一、HDFS体系结构1.1 NamenodeNameno

2018-01-25 16:38:50 3833

原创 hadoop(七)-hadoop参数配置

1. hdfs-site.xmldfs.name.dir NameNode 元数据存放位置 默认值:使用core-site.xml中的hadoop.tmp.dir/dfs/namedfs.block.size 对于新文件切分的大小,单位byte。默认是64M,建议是128M。每一个节点都要指定,包括客户端。 默认值:128Mdfs.data.dir DataNode在本地磁盘存

2018-01-25 16:20:53 4108

原创 hadoop(六)-Java读写hdfs文件

HDFS是存取数据的分布式文件系统,HDFS文件操作常有两种方式,一种是命令行方式,另一种是JavaAPI。 要在java工程中操作hdfs,需要引入一下jar包,我的maven工程中的pom.xml文件中增加如下几个依赖: dependency> groupId>org.apache.hbasegroupId> artifactId>hb

2018-01-25 16:00:50 4584

原创 hadoop(五)-hdfs命令行基本命令

HDFS是存取数据的分布式文件系统,那么对HDFS的操作,就是文件系统的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对HDFS的操作命令类似于Linux的shell对文件的操作,如ls、mkdir、rm等。调用文件系统(FS)Shell命令应使用bin/hadoop fs 的形式。所有的的FS shell命令使用URI路径作为参数。URI格式是scheme:

2018-01-25 15:55:31 4869

原创 hadoop(二)-hadoop原理及架构

Hadoop是Apache软件基金会所开发的并行计算框架与分布式文件系统。最核心的模块包括Hadoop Common、HDFS与MapReduce。1.HDFSHDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。采用Java语言开发,可以部署在多种普通的廉价机器上,以集群处理数量积达到大型主机处理性

2018-01-25 15:29:26 4397

原创 Centos7离线安装CDH5.13.1-Hadoop集群

1.软件准备安装之前需要准备以下安装包或者安装必要环境1.jdk1.8 (不要安装openjdk,要安装oracle官网的jdk1.8)2.mysql(这里我使用docker运行,因为docker方便,当然你也可以自己部署mysql)3.Cloudera Manager, http://archive.cloudera.com/cm5/cm/5/ 下载对应操作系统版本的cm,

2018-01-24 11:10:10 5744

原创 hbase(九)-hbase的索引LSM树

说LSM(Log-Structured Merge Tree)之前先说一下B+树,B+树在关系型数据库里面非常常见,oracle、mysql里面的索引算法都是B+树。1.B+树相信大家对B+树已经非常的熟悉,比如Oracle的普通索引就是采用B+树的方式,下面是一个B+树的例子: 根节点和枝节点很简单,分别记录每个叶子节点的最小值,并用一个指针指向叶子节点。 叶子节点里每个键值都指

2018-01-24 10:35:36 3753

原创 hbase(八)-hbase的compact

HBase是基于LSM树存储模型的分布式NoSQL数据库。LSM树对比普遍的B+树来说,能够获得较高随机写性能的同时,也能保持可靠的随机读性能。在进行读请求的时候,LSM树要把多个子树(类似B+树结构)进行归并查询,对于HBase来说,这些子树就是HFile(还包括内存上的树结构MemStore)。因此归并查询的子树数越少,查询的性能就越高。1.Compact的作用当MemStore超

2018-01-24 10:24:23 3754

原创 hbase(七)-region分裂过程

1、RegionServer决定本地的region分裂,并准备分裂工作。第一步是,在zookeeper的/hbase/region-in-reansition/region-name下创建一个znode,并设为SPLITTING状态。2、Master通过父region-in-transition znode的watcher监测到刚刚创建的znode。3、RegionServer在HDFS中父r

2018-01-24 10:23:43 4814

原创 hbase(四)-regionserver相关问题

1.hbase读的过程 1,Client先访问zookeeper,从meta表读取region的位置,然后读取meta表中的数据。meta中又存储了用户表的region信息。 2,根据namespace、表名和rowkey在meta表中找到对应的region信息 3,找到这个region对应的regionserver 4,查找对应的region 5,先从MemSto

2018-01-24 10:05:45 3676

原创 hbase(五)-hbase优化

1. 预先分区默认情况下,在创建 HBase 表的时候会自动创建一个 Region 分区,当导入数据的时候,所有的 HBase 客户端都向这一个 Region 写数据,直到这个 Region 足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的 Regions,这样当数据写入 HBase 时,会按照 Region 分区情况,在集群内做数据的负载均衡。2.

2018-01-24 09:12:30 3430

原创 hbase(六)-事务并发控制机制原理

作为一款优秀的非内存数据库,HBase和传统数据库一样提供了事务的概念,只是HBase的事务是行级事务,可以保证行级数据的原子性、一致性、隔离性以及持久性,即通常所说的ACID特性。为了实现事务特性,HBase采用了各种并发控制策略,包括各种锁机制、MVCC机制等。本文首先介绍HBase的两种基于锁实现的同步机制,再分别详细介绍行锁的实现以及各种读写锁的应用场景,最后重点介绍MVCC机制的实现策略

2018-01-23 21:25:56 3506

原创 hbase(三)-基本的hbase shell命令

HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”。 HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建、删除及修改表, 还可以向表中添加数据、列出表中的相关信息等、对region进行相关操作等。在hbase启动之后,在命令里面输入“hbase shell”可以进入hbase shell的操作界面.

2018-01-23 01:03:17 4305

原创 hbase(二)-hbase设计以及原理

一、简介HBase —— Hadoop Database的简称,Google BigTable的另一种开源实现方式,从问世之初,就为了解决用大量廉价的机器高速存取海量数据、实现数据分布式存储提供可靠的方案。从功能上来讲,HBase不折不扣是一个数据库,与我们熟悉的Oracle、MySQL、MSSQL等一样,对外提供数据的存储和读取服务。而从应用的角度来说,HBase与一般的数据库又有所区别,H

2018-01-23 00:40:52 4731

原创 spark通过hfile向hbase导入数据

hbase的put api是通过hbase的regionserver向hbase插入数据,虽然这种方式插入速度极快,但是在插入过程中region会不断的split和compact,split和compact都会占用大量的计算资源和io,同时这一过程中也会短暂的中断服务。 hbase的数据文件是保存在region的hfile上,通过直接写入数据到hfile,并将hfile保存到hbase中,这种方

2018-01-17 19:33:19 5105

原创 spark读写hbase数据

如果原始数据在hbase中,这时想用spark对hbase数据做一些批量计算,就可以用spark的api直接读写hbase数据读取hbase数据import org.apache.hadoop.hbase.HBaseConfigurationimport org.apache.hadoop.hbase.mapreduce.TableInputFormatimport org.a

2018-01-17 19:10:16 4273

多端口转发工具

多端口转发工具

2014-12-05

用命令行隐藏文件的简单方法

用命令行隐藏文件的简单方法 无需第三方软件

2012-05-04

计算器java源码

计算器java源码 模拟计算器的java编程 比较乱 新手

2012-03-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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