自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 kafka原理及设计思想

1.基本介绍kafka是一个分布式消息系统中间件,主要在分布式环境下为各个系统提供消息传递服务。其最令人印象深刻的特点是高吞吐量、超强消息堆积、持久化能力、快速的消息get、put。基本介绍环节对kafka的主要组成部分以及一些名字做一些解释。PS: 我们这里部分设置细节以kafka.0.10.x为例1.1 consumer,producer,broker从上图可以

2017-08-31 23:33:13 2186

原创 Flume --文件通道(file channel)

文件通道是Flume的持久通道。它将所有事件写入磁盘,因此不会丢失进程或机器关机或崩溃的数据。文件通道可确保任何提交到通道的事件只有在接收到事件并提交事务时才会从通道中删除,即使机器或代理程序崩溃并重新启动。它被设计为高度并发,同时处理多个source和sink。     文件通道设计用于需要数据持久性和不能容忍数据丢失的情况。由于通道将数据写入磁盘,因此不会在数据崩溃或失败时丢失数据。由于将

2017-08-31 08:44:17 9183

原创 Flume--Load Balancing Sink Processor

假设您有一个拓扑结构,其中第一层从数千个应用服务器接收数据,第二层在将数据推入HDFS之前通过Avro RPC从第一层接收数据。为简单起见,我们假设第一层有100个代理,第二层有4个。在最简单的拓扑中,每个第一层代理将有四个Avro Sinks将数据推送到每个二层代理。这样工作正常,直到其中一个二级代理失败。此时,配置为发送数据的接收端将不会发送任何数据,直到失败的二级代理重新联机。除了这个接

2017-08-30 21:12:42 651

原创 Flume--failover sink processor

failover sink processor根据优先级从sink组中选择宿。具有最高优先级的接收器将写入数据直到其失败(接收器的故障甚至可能是因为下游代理在RPC陷阱的情况下死亡),然后选择组中其他接收器中具有最高优先级的接收器。选择不同的接收器才能在当前接收器写入数据失败时写入数据。这确保了当没有故障时,第二层上的所有代理都有一个从每个机器写入的接收器,并且只有在某些机器看到更多的传入数据时才

2017-08-30 21:07:32 1042

原创 Flume Agent 组件如何协同工作

如前所述,每个Flume代理由三个主要组件组成:source,channel和sink。在本节中,我们将介绍这些和其他组件以及它们如何协同工作。Source是从生成数据的其他应用程序接收数据的活动组件。有源产生数据本身,尽管这些来源主要用于测试目的。源可以收听一个或多个网络端口以接收数据或者可以从本地文件系统读取数据。每个源必须连接至少一个通道。源可以写入几个通道,根据一些标准将事件复制到所有

2017-08-30 21:00:28 2410

原创 flume简介

一、flume简介1、用于日志收集2、高效收集、聚合、移动大量日志。架构简单灵活,数据流(动态计算)技术。3、在线分析应用。二、agent组件1.source来源,input2.channel通道,缓冲区 buffer3.sink沉出 output三、flume优点1.支持广泛的中央化存储(hdfs|hbase)2.当传入数据的速率超过可以将

2017-08-30 20:53:39 663

原创 使用filter(过滤器)按照条件查询hbase

1.1. hbase过滤器1.1.1. FilterListFilterList 代表一个过滤器列表,可以添加多个过滤器进行查询,多个过滤器之间的关系有:与关系(符合所有):FilterList.Operator.MUST_PASS_ALL  或关系(符合任一):FilterList.Operator.MUST_PASS_ONE 使用方法:FilterList 

2017-08-30 00:47:35 3162

原创 hbase扫描优化-扫描缓存-cacheing-timetout-retries-batch

扫描-----------------不应该全表扫描.缓存和批处理-----------------扫描器缓存可以在一次RPC中返回多条记录。默认是关闭的。从两个层面上控制扫描器缓存。全局配置.(优先级最低)hbase.client.scanner.caching21474836471.表层面()HTable.setHConsta

2017-08-30 00:38:45 792

原创 hbase创建预切割-开启多线程实现大批量插入

创建表同时预切割区域 可以防止数据倾斜------------------$hbase>create 'ns1:t3', 'f1', SPLITS => ['row3000000', 'row600000']/** * 添加批量数据 */ public void bigput(int start , int end) throws Exception { DecimalF

2017-08-30 00:26:46 1973 1

原创 hbase区域的split-merge-move

区域的拆分和合并----------------//区域名ns1:t2,row597,1503630769769.700f502b0f1dec036f48b95adb4fe63b.//编码区域名,该名称对前边ns1:t2,row597,1503630769769.记性md5哈希算法得出的字符串,目的在于散列527db22f95c8a9e0116f0cc13c680396

2017-08-30 00:18:39 532

原创 Hbase原理与架构

1.1架构图1.1.1. 写流程1、 client向hregionserver发送写请求。2、 hregionserver将数据写到hlog(write ahead log)。为了数据的持久化和恢复。3、 hregionserver将数据写到内存(memstore)4、 反馈client写成功。1.1.2. 数据flush过程1、 当memstore数据达到阈值

2017-08-30 00:14:52 366

原创 hbase简介

1. hbase简介1.1. 什么是hbaseHBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。HBASE是Google Bigtable的开源实现,但是也有很多不同之处。

2017-08-30 00:01:48 817

原创 ZooKeeper选举机制

1、ZooKeeper选举机制ZooKeeper Serverleader只有1个,负责管理集群。follower多个,执行leader指令。leader挂掉,重新选举leader。Leader选举过程a)首先在/节点下创建ephemeral(临时的)目录/elect。b)每个zk服务器都在给目录下创建自己对应的节点,例   如/../zk_1,类型或者为s

2017-08-29 23:47:38 454

原创 实现hadoop NN的HA自动容灾

实现hadoop NN的HA自动容灾--------------------------0.介绍[描述]active宕机,无法实现状态切换,只能手动完成。[组件]添加两个新组建给hdfs部署。zk quorum + zkfailovercontroller(ZKFC).故障检测 :每个NN都维护了一个和zk的session,如果nn宕机,session过期了。

2017-08-29 23:36:38 1780

原创 ZooKeeper数据模型与层次命名空间

树状结构通过/分隔开路径名每个路径代表一个节点Znode(zookeeper node)Znode每个Znode有自身信息,数据、长度、创建时间、修改时间。Znode维护数据、ACL(access control list,访问控制列表)、时间戳等交换版本号等数据结构,它通过对这些数据的管理来让缓存生效并且令协调更新。每当Znode中的数据更新后版本号将增加

2017-08-29 23:27:15 1021

原创 Apache ZooKeeper简介

1、ZooKeeper是协同服务ZooKeeper是一个分布式的,开放源码的分布式应用程序协同服务。是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。2、ZooKeeper为分布式应用提供服务配置维护名字服务分布式同步组服务等A、zookeeper是为别的分布式程序服务的B、Zookeeper本身就是一个分布式程序(只要有半数

2017-08-29 23:21:48 456

原创 Hive----查询执行计划(explain)和分析表数据(ANALYZE)

explain-----------------该命令可以返回hive的查询执行计划。不需要执行查询。查询计划包含三个部分,1.ASTAbstract syntax tree (AST).抽象语法树。通过ANTLR类库生成。2.Stage dependencies:阶段依赖。用来执行查询的依赖列表。3.Stage plans阶段计划。ANALYZE-

2017-08-23 00:11:11 10334

原创 Hive优化-倾斜连接-分组倾斜

[倾斜连接]SET hive.optimize.skewjoin=true;//默认false//发送给reducer的key的上限SET hive.skewjoin.key=100000;////是否对分组进行倾斜优化SET hive.groupby.skewindata=true;//false

2017-08-23 00:05:14 414

原创 Hive优化---map端连接

[连接优化]//是否自动转换map端连接SET hive.auto.convert.join=true;//默认false//输入小文件的文件上限SET hive.mapjoin.smalltable.filesize=600000000;//默认是25MSET hive.auto.convert.join.noconditionaltask=true;SET

2017-08-22 20:12:15 403

原创 Hive优化--并行执行

[并行执行]只要job间不存在依赖关系。SET hive.exec.parallel=true;//默认false//最多允许多少job并行执行SET hive.exec.parallel.thread.number=16;//默认8

2017-08-22 20:08:26 1624

原创 Hive优化---启用local模式

[查询优化]//是否启用local模式SET hive.exec.mode.local.auto=true;//默认false//输入的数据量max配置SET hive.exec.mode.local.auto.inputbytes.max=50000000;       //默认134217728(128M)//task的数量maxSET hive.exec.mo

2017-08-22 20:07:04 3194

原创 Hive优化--存储优化、文件合并

[存储优化]热点数据可以适当增加副本,可以尽可能多的使用本地策略。hdfs dfs -setrep -R -w 4 /user/hive/warehouse/employeehadoop大量小文件:1.har2.sequenceFile3.CombineFileInputFormat[hive文件合并操作]//对于只有map的job,合并多个小文件输出文件

2017-08-22 20:05:12 416

原创 hive优化-压缩处理

[压缩]1.设置mr中间的压缩处理//设置中间结果是否可压缩,多次job的中间结果是否压缩处理。SET hive.exec.compress.intermediate=true//设置结果压缩编解码器SET hive.intermediate.compression.codec=org.apache.hadoop.io.compress.SnappyCodec//是

2017-08-22 20:00:44 554

原创 hive优化-文件格式-rcfile-textfile-seqfile

[数据文件]1.文件格式,hive支持TEXTFILE, SEQUENCEFILE, RCFILE, ORC, and PARQUET.修改文件格式://创建表CREATE TABLE… STORED AS //修改表指定格式ALTER TABLE… [PARTITION partition_spec] SET FILEFORMAT //设置默认的表格式SET hi

2017-08-22 19:58:23 917

原创 Hive优化1---分区、桶、index

1、分区表:分区是目录。------------------//创建分区表CREATE TABLE custs(id int,name string ,age int)PARTITIONED BY (prov string, city string)ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','LINES T

2017-08-22 19:55:48 260

原创 Hive的分析函数操作

分析函数--------------0.11之后支持的,扫描多个输入的行计算每行的结果。通常和OVER, PARTITION BY, ORDER BY,windowing配合使用。和传统分组结果不一样,传统结果没组中只有一个结果(max)。分析函数的结果会出现多次,和每条记录都连接输出。Function (arg1,..., argn) OVER ([PARTITION

2017-08-22 00:08:29 364

原创 Hive的常用函数操作

//函数...................................//size()提取数据大小$hive>select size(arr) from emp ;//是否包含指定元素$hive>select array_contains(arr,"xx") from emp ;//查看所有函数show functions ;//desc f

2017-08-22 00:03:09 295

原创 Hive的高级聚合函数

高级聚合--------------- GROUPING SETS.group by + union all //查询每个cust的订单数select count(*) from orders group by cid ;select count(*) from orders group by orderno ;//group + union allsele

2017-08-22 00:00:36 2049

原创 Hive的聚合函数

数据聚合与采样--------------count()sum()avg()max()min()//查询每个customer的订单数select cid,count(*) from orders group by cid ;//错,select字段必须出现在group by中。select cid,orderno ,count(*) from gro

2017-08-21 22:30:55 5260

原创 Hive的行级acid事务处理

//事务,hive 0.13.0之后完全支持行级acid事务处理。//所有事务都是自动提交,并且存储文件只能是orc文件,而且只能在桶表中使用。1.设置相关属性SET hive.support.concurrency = true;SET hive.enforce.bucketing = true;SET hive.exec.dynamic.partition.mode = n

2017-08-21 22:27:20 1908

原创 Hive的连接操作

连接---------------//创建orders表。CREATE TABLE orders(id int,orderno string ,price float,cid int)ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','LINES TERMINATED BY '\n'STORED AS TEXT

2017-08-21 21:36:49 323

原创 Hive桶表的操作

桶表:桶表是文件。--------------//创建桶表CREATE TABLE buck(id int,name string ,age int)CLUSTERED BY (id) INTO 3 BUCKETSROW FORMAT DELIMITEDFIELDS TERMINATED BY ','LINES TERMINATED BY '\n'

2017-08-21 21:35:10 362

原创 Hive中分区表的操作

分区表:分区是目录。------------------//创建分区表CREATE TABLE custs(id int,name string ,age int)PARTITIONED BY (prov string, city string)ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','LINES TER

2017-08-21 21:33:29 283

原创 Hive的Map端连接方法

如果有一个连接表小到可以放入内存,Hive就可以把较小的表放入每个Mapper的内存执行连接操作。有如下两种方法实现:       1、//连接暗示/*+ MAPJOIN(employee) */SELECT /*+ MAPJOIN(employee) */ c.* FROM custs c CROSS JOIN orders o                  WHERE c.id

2017-08-21 21:31:11 942

原创 MapReduce 的格式输入----MultipleInputs多个输入

针对 MapReduce的数据嘚瑟输入格式可能不同,有些数据可能以制表符分隔文本文件,有些数据可能是二进制顺序文件,即使它们的格式相同,它们的表示也看可能不同,因此需要分别进行解析。MultipleInputs可以妥善处理这些问题,它允许为每条输入路径指定InputFprmat和Mapperpublic static voidaddInputPath(JobConf conf, Pat

2017-08-21 21:10:44 1184

原创 MapReduce 的格式输入----NLineInputFormat

通过TextInputFormat和keyvalueTextInputformat,每个Mapper收到的输入的行数不同,行数取决于分片的大小和行的长度,如果希望mapper收到固定的行数的输入,需要将NLineInputFormat作为InputFormat使用,与TextInputFormat一样,键是行的字节的偏移量,值是行本身。1、WordCountMapperpackage ha

2017-08-21 21:07:17 614

原创 MapReduce的输入格式---KeyValueTextInputFormat---源码分析

通常情况下,文件的每一行是一个键--值对,使用某个分解符进行分割,比如制表符,例如,由TextOutFormat(即Hadoop的默认输出就是这种),如果要正确处理这种文件,KeyValueTextInputFormat比较合适。1、MaxTempMapperpackage hadoop.mr.input.keyvaluetext;import debugtool.RTUtil;

2017-08-21 21:03:21 395

原创 MapReduce 的格式输入----SequenceFileInputFormat ---源码分析

MapReduce不仅可以处理文本数据,还可以处理二进制数据。Hadoop顺序文件存储格式是二进制的键-值对序列,使用顺序文件作为MapReduce的输入,可以使用SequenceFileInputFormat。键-值对是由顺序文件格式决定,只需要保证map的输入格式正确,例如顺序文件的格式是InWritable-Intwritable,那么Mapper的输入格式也一样。1、M

2017-08-21 20:49:13 899

原创 CombineFileinputFormat处理大批量小文件

请查看链接http://note.youdao.com/noteshare?id=1dbcfd6118584a2e099fef0160460811&sub=D9C588C547804FE8B895A4D6F056F191

2017-08-19 18:42:25 1050

原创 MapReduce 本地化优先策略

http://note.youdao.com/noteshare?id=db6a42debfcb09a1a6d54a497e760f68&sub=649D30D6AD144AB8AC13802E61B47E3E1、map具备本地化优势策略 map执行时优先选择在存储HDFS数据的服务器上执行,其次在同机架的服务器上执行,最次在其他机架服务器上执行。 hadoop执行第一步是将输入数

2017-08-19 15:37:43 1285

Apache_Kylin系列之:概念,原理,架构和典型案例

Apache_Kylin系列之:概念,原理,架构和典型案例,Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc.开发并贡献至开源社区。

2018-02-04

空空如也

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

TA关注的人

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