kudu

小米流式平台架构演进与实践

三世轮回 提交于 2020-02-28 07:57:16
小米业务线众多,从信息流,电商,广告到金融等覆盖了众多领域,小米流式平台为小米集团各业务提供一体化的流式数据解决方案,主要包括数据采集,数据集成和流式计算三个模块。目前每天数据量达到 1.2 万亿条,实时同步任务 1.5 万,实时计算的数据 1 万亿条。 伴随着小米业务的发展,流式平台也经历三次大升级改造,满足了众多业务的各种需求。最新的一次迭代基于 Apache Flink,对于流式平台内部模块进行了彻底的重构,同时小米各业务也在由 Spark Streaming 逐步切换到 Flink。 背景介绍 小米流式平台的愿景是为小米所有的业务线提供流式数据的一体化、平台化解决方案。具体来讲包括以下三个方面: 流式数据存储 :流式数据存储指的是消息队列,小米开发了一套自己的消息队列,其类似于 Apache kafka,但它有自己的特点,小米流式平台提供消息队列的存储功能; 流式数据接入和转储 :有了消息队列来做流式数据的缓存区之后,继而需要提供流式数据接入和转储的功能; 流式数据处理 :指的是平台基于 Flink、Spark Streaming 和 Storm 等计算引擎对流式数据进行处理的过程。 下图展示了流式平台的整体架构。从左到右第一列橙色部分是数据源,包含两部分,即 User 和 Database。 User 指的是用户各种各样的埋点数据,如用户 APP 和 WebServer

在Linux上面安装Kudu-python的坑

若如初见. 提交于 2020-02-28 02:16:16
安装kudu-python包参照官方文档: https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/kudu_development.html To install the Kudu Python client: Update all the packages on your system using the following command: sudo yum -y update Install the extra packages for the Enterprise Linux distribution: sudo yum -y install epel-release Install the Python package manager: sudo yum -y install python-pip Verify the version of the PIP manager that you just installed: pip --version Install Cython: sudo pip install cython Download the following files: wget http://username:password@archive.cloudera.com/p/cdh6

Apache Kudu 加速对频繁更新数据的分析

你。 提交于 2020-02-26 23:24:33
今天解读的内容是来自 Hadoop Summit San 2016 关于 Apache Kudu 的一个介绍:Apache Kudu & Apache Spark SQL for Fast Analystics on Fast Data(视频见文章末尾)。 Apache Kudu 加速对频繁更新数据的分析_腾讯视频 视频 Kudu Overview 上图是 Hadoop 生态体系中,存储引擎和应用场景的对应关系。 横轴代表数据查询分析的频度(Pace of Analysis),依次为: 归档 基于静态数据的扫描/分析(一次写入多次读取) 基于频繁更新数据的快速分析 实时访问/更新(OLTP) 纵轴代表的是数据的更新频度(Pace of Data),依次为 只读 追加(Append-Only) 频繁更新 实时更新 我们知道,HDFS 特别适合归档和基于静态数据的扫描/分析的场景(一次写入多次读取),也就是上图中左下角的黄色区域,而HBase擅长实时高并发的读写应用,也就是右上角的蓝色区域。但是对于需要在频繁更新的数据之上做快速分析,也就是上图中间的虚线区域,Hadoop社区却一直没有比较好的存储层产品来满足。Kudu正是出于填补这个空白而诞生的。 视频中提到,Kudu的设计借鉴了Parque和HBase一些理念 / 思想。 Kudu产品的几个要点: 数据模型和关系数据库类似

在CDH5.5.0上安装Kudu6.0

家住魔仙堡 提交于 2020-02-11 03:49:50
1. 下载安装文件: a. CSD文件:KUDU-0.6.0.jar b. kudu parcel:KUDU-0.6.0-1.kudu0.6.0.p0.334-el6.parcel和manifest.json文件 c. impala-kudu:IMPALA_KUDU-2.3.0-1.cdh5.5.0.p0.15-el6.parcel + manifest.json文件 2.将CSD文件KUDU-0.6.0.jar移到/opt/cloudera/csd下面并重启服务器 3.将KUDU-0.6.0-1.kudu0.6.0.p0.334-el6.parcel和manifest.json拷贝到私有的http服务器上的/var/www/html/kudu0.6/kudu目录下 4.进入CM编辑parcels地址,将kudu的parcels地址加进去,并点击Check New Parcels就能看到刚才的kudu的安装包,点击下载并激活 5.添加Kudu服务 6.将IMPALA_KUDU-2.3.0-1.cdh5.5.0.p0.15-el6.parcel拷贝到/opt/cloudera/parcel-repo/下面 7.生成.sha文件: sha1sum IMPALA_KUDU-2.3.0-1.cdh5.5.0.p0.15-el6.parcel | awk {'print $1'} >

kudu :impala 和 kuduClient 的选择

一笑奈何 提交于 2020-01-25 11:00:12
1.美图 2.概述 kudu 原生对impala 做了很好的兼容,用impala可以很方便的使用sql对kudu进行操作,我们在项目中是使用了 impala 和原生 kuduClient 相结合的方式进行。 就查询来说,在我的使用过程中 impala 的查询速度要快于 kuduClient 的 scan。建议使用impala insert 的速度都很快 upsert/update/delete 如果用主键的话也都很快,但 impala 的并发性能比较差,所以这种操作尽量用 kuduClient 的原生 api 进行操作 原生 api update、delete、upsert 只能根据主键操作,如果需要其他条件则需要查询一下,拿到主键再进行操作,所以不如 impala 写 sql 方便,看具体情况吧,只要 impala 吼得住并发,或做好资源隔离。 原生 api 在操作上有些不方便,有人封装了一个简单的 spring starter ,还在完善,当然也可以把核心代码拿出来自己封装。链接:https://gitee.com/git-of-Jason/kudu-spring-boot-starter 来源: CSDN 作者: 九师兄 链接: https://blog.csdn.net/qq_21383435/article/details/103868496

Kudu优化

可紊 提交于 2020-01-21 19:30:35
导入数据 全量导入kudu 先用sqoop把关系数据库数据导入临时表,再用impala从临时表导入kudu目标表 注意:由于sqoop从关系型数据直接以parquet格式导入hive会有问题,这里默认hive的表都是text格式;每次导完到临时表,需要做invalidate metadata 表操作,不然后面直接导入kudu的时候会查不到数据 客户端 除了查询,建议所有impala操作都在impala-shell而不在hue上面执行 参数 memory_limit_hard_bytes :impala并发写入kudu的时候,数据量比较大的时候,kudu配置参数 memory_limit_hard_bytes能大点就大点,因为kudu写入首先保存再内存里面,到一定阀值才溢写到磁盘,这个是直接最能提高写的方法; maintenance_manager_num_threads :当然不是所有机器都有那么多资源,可以把maintenance_manager_num_threads 这个参数稍微调大,需要调试,提高数据从内存写入磁盘的效率 impala查询kudu 首先所有表做完全量的ETL操作,必须得执行compute stats 表名,不然impala执行sql生成的计划执行数评估的内存不准确,容易评估错误导致实际执行不了 kudu表最好不要做任何压缩,保证原始扫描性能发挥最好

实战kudu集成impala

我只是一个虾纸丫 提交于 2020-01-21 18:50:51
推荐阅读: 论主数据的重要性(正确理解元数据、数据元) CDC+ETL实现数据集成方案 Java实现impala操作kudu 实战kudu集成impala impala基本介绍   impala是cloudera提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快10到100倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具,   impala是参照谷歌的新三篇论文(Caffeine--网络搜索引擎、Pregel--分布式图计算、Dremel--交互式分析工具)当中的Dremel实现而来,其中旧三篇论文分别是(BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。   impala是基于hive并使用内存进行计算,兼顾数据仓库,具有实时,批处理,多并发等优点   Kudu与Apache Impala (孵化)紧密集成,impala天然就支持兼容kudu,允许开发人员使用Impala的SQL语法从Kudu的tablets 插入,查询,更新和删除数据; impala的架构以及查询计划 Impalad 基本是每个DataNode上都会启动一个Impalad进程,Impalad主要扮演两个角色: Coordinator: 负责接收客户端发来的查询,解析查询

Java实现impala操作kudu

旧街凉风 提交于 2020-01-21 18:46:18
推荐阅读: 论主数据的重要性(正确理解元数据、数据元) CDC+ETL实现数据集成方案 Java实现impala操作kudu 实战kudu集成impala 对于impala而言,开发人员是可以通过JDBC连接impala的,有了JDBC,开发人员可以通过impala来间接操作 kudu; 引入maven相关依赖 <!--impala的jdbc操作--> <dependency> <groupId>com.cloudera</groupId> <artifactId>ImpalaJDBC41</artifactId> <version>2.5.42</version> </dependency> 通过JDBC连接impala操作kudu 使用JDBC连接impala操作kudu,与JDBC连接mysql做更重增删改查基本一样,创建实体类代码如下: package cn.itcast.impala.impala; public class Person { private int companyId; private int workId; private String name; private String gender; private String photo; public Person(int companyId, int workId, String name,

Kudu : NonRecoverableException: illegal replication factor 2 (replication factor must be odd)

对着背影说爱祢 提交于 2020-01-17 12:00:25
1.美图 2.背景 kudu 环境为3 个master 和3个 tableServer ,然后建表 [ cdh . xxx : 21000 ] > CREATE TABLE many_key ( > id string , > name string , > sex string , > age string , > PRIMARY KEY ( id , name ) > ) > PARTITION BY HASH PARTITIONS 2 > STORED AS KUDU > TBLPROPERTIES ( 'kudu.master_addresses' = '192.xx:705192.xx:7051,92.xx:7051,' , 'kudu.num_tablet_replicas' = '2' ) ; Query : CREATE TABLE many_key ( id string , name string , sex string , age string , PRIMARY KEY ( id , name ) ) PARTITION BY HASH PARTITIONS 2 STORED AS KUDU TBLPROPERTIES ( 'kudu.master_addresses' = '92.xx:7051,92.xx:7051,92.xx:7051,' ,

HDFS : RemoteException Operation category READ is not supported in state standby.

∥☆過路亽.° 提交于 2020-01-16 01:51:19
1.美图 2.背景 执行一个Kudu命令,然后报错 Query : CREATE TABLE TABLE_SIDE ( SEX string PRIMARY KEY , INFO string ) PARTITION BY HASH PARTITIONS 2 STORED AS KUDU TBLPROPERTIES ( 'kudu.master_addresses' = 'xx1:7051,xx2:7051,xx3:7051' , 'kudu.num_tablet_replicas' = '1' ) ERROR : ImpalaRuntimeException : Error making 'createTable' RPC to Hive Metastore : CAUSED BY : MetaException : Got exception : org . apache . hadoop . ipc . RemoteException Operation category READ is not supported in state standby . Visit https : / / s . apache . org / sbnn - error at org . apache . hadoop . hdfs . server . namenode . ha .