,本篇文章Fayson主要介绍在非Kerberos的CDH集群中使用Flume采集Kafka数据写入Kudu。...已安装 2.Kudu与Impala服务已安装 3.Kudu与Impala已集成 4.集群未启用Kerberos 2.环境准备 ---- 1.下载kudu-flume-sink依赖包,地址如下 https...://repository.cloudera.com/artifactory/cloudera-repos/org/apache/kudu/kudu-flume-sink/1.4.0-cdh5.12.1.../kudu-flume-sink-1.4.0-cdh5.12.1.jar (可左右滑动) ?.../root/kudu-flume-sink-1.4.0-cdh5.12.1.jar /opt/cloudera/parcels/CDH/lib/flume-ng/lib/ (可左右滑动) ?
Kudu分区策略Kudu表分为多个tablet,理想情况下,tablets应该相对平等地拆分表的数据,Kudu目前没有自动拆分预先存在的 tablets 的机制。所以在创建Kudu表时必须指定分区。...Kudu表的分区分为范围分区、hash分区、高级分区三种,分区字段必须来自于主键字段。使用Impala创建表时,可以使用 PARTITION BY 子句指定分区。...kuduClient.createTable("t_range_partition", schema, options);//关闭kuduClient对象kuduClient.close();以上代码执行完成后,可以通过Kudu...Arrays.asList("id"),10 );//创建表kuduClient.createTable("t_hash_partition", schema, options);以上代码创建完成后,可以通过Kudu...lower,upper );}//创建表kuduClient.createTable("t_hash_range_partition", schema, options);以上代码创建完成后,可以通过Kudu
以上业务系统,既要求对数据进行随机读写,又要求对数据进行批量分析操作,针对以上业务场景我们就可以选择Kudu。...一、Kudu概念Kudu是Cloudera在2015年9月开源的分布式数据存储引擎,其结合了HDFS和HBase的优势,可以同时提供高效的随机访问以及数据扫描能力。...Kudu支持数据的实时插入和分析,为实时的OLAP计算提供了另外一种选择。...Kudu的随机读写速度和HBase相似,但是达不到HBase随机读写性能,Kudu批量查询数据性能媲美HDFS parquet,但是比HDFS批量查询慢,所以kudu更像是HDFS与HBase的一个折中选择...二、Kudu 适用场景Kudu适用于以下场景:对数据既支持扫描(scan)又支持随机访问(random access)同时具有高性能,简化用户复杂的混合架构场景。数据需要更新,避免额外的数据迁移。
scala> val a = List("hadoop hive spark flink flume", "kudu hbase sqoop storm") a: List[String] = List...(hadoop hive spark flink flume, kudu hbase sqoop storm) // 使用map将文本行转换为单词数组 scala> a.map(x=>x.split(..., kudu, hbase, sqoop, storm) 使用flatMap简化操作 参考代码 scala> val a = List("hadoop hive spark flink flume",... "kudu hbase sqoop storm") a: List[String] = List(hadoop hive spark flink flume, kudu hbase sqoop storm...) scala> a.flatMap(_.split(" ")) res7: List[String] = List(hadoop, hive, spark, flink, flume, kudu,
Kudu架构一、Kudu存储模型及概念Kudu有自己的数据存储模型,不依赖于HDFS、Hive、HBase其他大数据组件。...Kudu有自己的集群,数据存储在Kudu自己的集群Tablet Server中。Kudu的存储模型是有结构的表,表中有主键,并且主键唯一,不能重复。事务支持上与HBase类似,只支持行级ACID事务。...Kudu是列式存储,支持数据压缩。Kudu不支持标准SQL,支持Nosql样式的API,例如:put,get,delete,scan。...一般企业中kudu与impala进行整合使用,可以使用SQL对数据进行实时OLAP分析。Table:table是数据存储在Kudu的位置,具有schema和全局有序的 primary key。...二、Kudu table存储原理对于一张特定的Kudu表,存储结构如下:Kudu数据存储实现如下:一个table根据hash或者range分区分成多个tablet,每个tablet
Kudu集群搭建一、kudu 安装包Kudu官网没有提供好编译好的Kudu安装包,我们可以下载源码进行编译获取安装包,这里为了方便我们直接使用Cloudera 提供的CDH版本kudu安装包:centos7...下载地址:http://archive.cloudera.com/kudu/redhat/7/x86_64/kudu/5/RPMS/x86_64/下载对应如下几个rpm安装包即可:kudu-1.4.0+...:service kudu-tserver start2、检查kudu是否启动成功在每台节点可以执行“ps aux|grep kudu”来查看对应的Kudu进程。...如果启动Kudu出错或者没有对应的Kudu进程,可以在/var/log/kudu目录下查看日志。...3、访问Kudu WebUI页面Kudu启动成功后,可以通过访问http://Master Server IP:8051来访问Kudu WebUI。
Kudu Java Api操作Kudu没有提供标准SQL操作,支持Nosql样式的API,这里使用Java 操作Kudu ,包括创建表、插入数据、修改删除数据、删除表等操作,值得注意的是,Java...api直接操作Kudu在开发中不是常用的方式,常用方式是Spark操作Kudu、Kudu与Impala整合写SQL操作Kudu。...一、添加Maven依赖Java操作Kudu需要在创建好的Maven项目中导入kudu-client依赖,此外我们这里使用的是CDH版本的kudu依赖包,maven默认不支持CHD相关依赖,...-- 添加kudu-client依赖 --> org.apache.kudu kudu-client</...*/kuduClient.close();执行完成以上命令可以登录Kudu查看到对应的表。 三、插入数据向Kudu表中插入数据经过以下步骤:创建KuduClient对象,连接Kudu集群。
Spark操作Kudu一、添加Maven依赖使用SparkSQL操作Kudu,这里需要导入Kudu与SparkSQL整合的包和SparkSQL的包,在Maven中导入如下依赖...--添加kudu-spark 依赖--> org.apache.kudu kudu-spark2_2.11...,KUDU_TABLE) /** * 查询Kudu表数据 */// queryData(kuduContext,sc,KUDU_TABLE) /** *...向Kudu表更新数据 */// updateData(session,kuduContext,KUDU_TABLE) /** * 删除Kudu表中的数据 */...).mode(SaveMode.Append).format("kudu").save()//再次查询Kudu表 t_spark_kudu 数据session.read.options(kuduOptionMap
Flink操作KuduFlink主要应用场景是流式数据处理上,有些公司针对流式数据使用Flink实时分析后将结果存入Kudu,例如快手公司。...这里将实时计算的结果存入Kudu需要自定义Flink Kudu Sink。...场景:Flink实时读取Socket数据,将结果存入Kudu表t_flink_result,为了方便操作不再创建Kudu外表,这里在Impala中创建Kudu内表t_flink_result:create...对象 var kuduClient :KuduClient = _ //Kudu 表对象 var kuduTable :KuduTable = _ //创建KuduSession 客户端会话...var session: KuduSession = _ //初始化时调用一次,这里初始化连接Kudu的对象 override def open(parameters: Configuration)
简单拓扑结构 这种模式是将多个flume顺序连接起来了,从最初的source开始到最终sink传送的目的存储系统。...此模式不建议桥接过多的flume数量, flume数量过多不仅会影响传输速率,而且一旦传输过程中某个节点flume宕机,会影响整个传输系统。...image.png 复制和多路复用 Flume支持将事件流向一个或者多个目的地。...image.png 负载均衡和故障转移 Flume支持使用将多个sink逻辑上分到一个sink组,sink组配合不同的SinkProcessor可以实现负载均衡和错误恢复的功能。...用flume的这种组合方式能很好的解决这一问题,每台服务器部署一个flume采集日志,传送到一个集中收集日志的flume,再由此flume上传到hdfs、hive、hbase等,进行日志分析。
ClickHouse与Kudu对比kudu 2015年9月28号出现第一个测试版本0.5.0,2016年2月26第一个正式版0.7.发布。clickhouse 2018年3月开源正式版出现。...元数据管理Kudu使用Master Server管理元数据。ClickHouse使用Zookeeper管理元数据。...SQL支持Kudu不支持标准SQL,有put,get等api代码操作;与Impala整合后支持SQL操作。ClickHouse对于标准SQL的支持相对完好。...Kudu对数据快速读取和快速插入数据的场景支持比较好,原子数据查询延迟低,与Impala整合可以做OLAP操作。...扩展性Kudu由于Tablet Server的特殊结构,扩展性差,支持300个节点。ClickHouse集群节点无上限。
一、Flume简介 flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。...但随着 FLume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.9.4.... 及代码架构,重构后的版本统称为 Flume NG(next generation);改动的另一原因是将 Flume 纳入 apache 旗下,cloudera Flume 改名为 Apache Flume...4.2、Flume数据流 1)Flume 的核心是把数据从数据源收集过来,再送到目的地。...4.3、Flume可靠性 Flume 使用事务性的方式保证传送Event整个过程的可靠性。
Kudu读写数据过程一、写入数据当 Client 请求写数据时,先根据主键从 Mater Server 中获取要访问的目标 Tablets,然后到对应的 Tablet 获取数据。...因为 KUDU 表存在主键约束,所以需要进行主键是否已经存在的判断。一个 Tablet 中存在很多个 RowSets,为了提升性能,我们要尽可能地减少要扫描的 RowSets 数量。
Kudu不支持标准SQL操作,可以将Kudu与Apache Impala紧密集成,impala天然就支持兼容kudu,允许开发人员使用Impala的SQL语法从Kudu的tablets 插入,查询,更新和删除数据...,Kudu与Impala整合本质上就是为了可以使用Hive表来操作Kudu,主要支持SQL操作。...一、Kudu与Impala整合配置先安装Impala后安装Kudu,Impala默认与Kudu没有形成依赖,这里需要首先在Impala中开启Kudu依赖支持,打开Impala->“配置”->“Kudu服务...内部表由impala管理,当创建表时,'kudu.master_address'指定Kudu集群,在ClouderaManager中impala配置了支持Kudu,也可以不指定;不能设置属性'kudu.table_name...('kudu.table_name'='personInfo1');注意:使用 “show create table t_kudu_map”查看表 t_kudu_map的建表语句,发现底层映射的Kudu
kudu Kudu是为Apache Hadoop平台开发的列式数据库。Kudu拥有Hadoop生态系统应用程序的常见技术属性:它可以商用硬件上运行,可横向扩展,并支持高可用性操作。...kudu-plus是什么 kudu-plus是可视化管理kudu的工具,由于kudu虽然是列式数据库,但是可以表达成关系数据库类似的表和字段等信息,某种情况下通过可视化管理更加轻松。...java操作分区: 查看测试用例部分代码 kudu主键设计: 每个Kudu表必须声明由一列或多列组成的主键。与RDBMS主键一样,Kudu主键强制执行唯一性约束。...v0.0.1(当前) 查看kudu集群所有表 创建kudu表 删除kudu表 重命名kudu表 更新kudu表结构:修改非主键列名、修改非主键列默认值、修改非主键列的是否允许为空、新增非主键字段、删除非主键字段...查看kudu表分区信息 预览kudu表数据 编辑kudu表非主键列数据 删除kudu表数据行 新增kudu表数据行 检索kudu表数据添加筛选条件 v0.0.2功能(预期) 创建kudu表可以添加hash
1 Flume丢包问题 单机upd的flume source的配置,100+M/s数据量,10w qps flume就开始大量丢包,因此很多公司在搭建系统时,抛弃了Flume,自己研发传输系统,但是往往会参考...一些公司在Flume工作过程中,会对业务日志进行监控,例如Flume agent中有多少条日志,Flume到Kafka后有多少条日志等等,如果数据丢失保持在1%左右是没有问题的,当数据丢失达到5%左右时就必须采取相应措施...2 Flume与Kafka的选取 采集层主要可以使用Flume、Kafka两种技术。 Flume:Flume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API。 ...Kafka和Flume都是可靠的系统,通过适当的配置能保证零数据丢失。然而,Flume不支持副本事件。...(选择性发往指定通道) 11 Flume监控器 1)采用Ganglia监控器,监控到Flume尝试提交的次数远远大于最终成功的次数,说明Flume运行比较差。主要是内存不够导致的。
Kudu基于Cloudera Manager安装及配置使用Kudu一般都会和impala进行整合,impala与Hive是强依赖关系,需要安装Hive,安装Hive需要安装HDFS等,以上各个技术组件的版本都需要对应匹配...,由于Kudu没有直接的安装包,为了方便我们可以选择基于Cloudera Manager进行安装Kudu及相关大数据组件。...start cloudera-scm-agent#登录Cloudera Manager user:admin pwd:adminhttp://cm1:7180二、登录ClouderaManager平台安装Kudu...三、选择Master Server 两台节点和Tablet Server 3台节点四、配置Kudu WAL目录和数据目录等待安装完成即可,可以通过Cloudera Manager 界面来访问Kudu。
10月26日,Kudu在其社区官宣了Kudu 1.8.0的正式发布。...具体参考: https://kudu.apache.org/releases/1.8.0/docs/release_notes.html Apache Kudu项目仅仅只是发布了源代码,要创建Kudu1.8...,需要遵循以下2步: 1.下载Kudu的源代码: https://kudu.apache.org/releases/1.8.0/ 2.按照文档创建Kudu1.8: https://kudu.apache.org.../releases/1.8.0/docs/installation.html#build_from_source 为方便起见,Kudu Java客户端库,Spark DataSource,Flume sink...q=g:org.apache.kudu%20AND%20v:1.8.0 Python客户端的源码参考: https://pypi.org/project/kudu-python/
二 性能调优篇 1 kudu性能调优和报错方案解决 报错一:tablet初始化时长很久 解决方案: 升级版本到kudu1.6.0以上版本 .参考:https://kudu.apache.org/...Minitump可以通过电子邮件发送给Kudu开发人员或附加到JIRA,以帮助Kudu开发人员调试崩溃。...报错六:impala操作kudu超时 解决方案:kudu_operation_timeout_ms = 1800000 添加描述 报错七:CDH安装kudu设置master 解决方案: --master_addresses...kudu表如果不新建的情况下,在表中增加字段,对数据是没有影响的,kudu中增加一个字段user_id,之前impala已经和kudu进行关联操作了, impala读取kudu的数据按照之前的所定义的字段读取的...; import org.apache.kudu.Schema; import org.apache.kudu.Type; import org.apache.kudu.client.*; import
Kudu 选择了面向列的存储格式,因为它主要针对分析用例。 没有什么可以阻止 Kudu 提供面向行的选项,它可以包含在潜在的版本中。 为什么要构建新的存储引擎Kudu?...Apache Kudu 准备好部署到生产环境了吗? 是的!Kudu 已经在许多大公司的生产中进行了实战测试。 Kudu 是开源的吗?...除了培训之外,您还可以通过文档、邮件列表和Kudu 聊天室获得有关使用 Kudu 的帮助 。 有Kudu的快速入门吗? 是的。...Kudu 的快速入门指南中提供了有关通过基于 Docker 的快速入门在 Kudu 上启动和运行的 说明。 Kudu 如何存储其数据?底层数据存储不经过Kudu就可读吗?...此外,通常使用 Spark、Nifi 和 Flume 将数据摄取到 Kudu 中。 将数据批量加载到 Kudu 的最有效方法是什么?
领取专属 10元无门槛券
手把手带您无忧上云