摘要: flatMap函数 练习:如下数据 要求:统计相邻字符串出现的次数 import org.apache.flink.api.scala.{DataSet, ExecutionEnvironment} import org.apache.flink.streaming.api.scala._ /** 阅读全文
posted @ 2018-05-19 19:19 niutao 阅读(749) 评论(0) 推荐(0) 编辑
摘要: 开发流程 例子: 将程序打包,提交到yarn 添加maven打包插件: <build> <sourceDirectory>src/main/java</sourceDirectory> <testSourceDirectory>src/test/scala</testSourceDirectory> 阅读全文
posted @ 2018-05-19 19:16 niutao 阅读(567) 评论(0) 推荐(0) 编辑
摘要: flink和spark类似,也是一种一站式处理的框架;既可以进行批处理(DataSet),也可以进行实时处理(DataStream) 使用maven导入相关依赖 <properties> <maven.compiler.source>1.8</maven.compiler.source> <mave 阅读全文
posted @ 2018-05-19 19:12 niutao 阅读(2895) 评论(0) 推荐(0) 编辑
摘要: 在一个企业中,为了最大化的利用集群资源,一般都会在一个集群中同时运行多种类型的 Workload。因此 Flink 也支持在 Yarn 上面运行; flink on yarn的前提是:hdfs、yarn均启动 修改hadoop的配置参数 vim etc/hadoop/yarn-site.xml 是否 阅读全文
posted @ 2018-05-19 19:10 niutao 阅读(1334) 评论(0) 推荐(0) 编辑
摘要: 对于一个企业级的应用,稳定性是首要要考虑的问题,然后才是性能,因此 HA 机制是必不可少的; 和 Hadoop 一代一样,从架构中我们可以很明显的发现 JobManager 有明显的单点问题(SPOF,single point of failure)。 JobManager 肩负着任务调度以及资源分 阅读全文
posted @ 2018-05-19 18:58 niutao 阅读(1088) 评论(0) 推荐(0) 编辑
摘要: 1:上传安装包到linux系统 使用rz命令 2:解压 tar –zxvf flink-1.5.0-bin-hadoop24-scala_2.11.tgz 3:修改配置文件 vim conf/flink-conf.yaml 配置参数解释: 4:启动flink集群 方式一: 添加一个JobManage 阅读全文
posted @ 2018-05-18 18:53 niutao 阅读(296) 评论(0) 推荐(1) 编辑
摘要: flink的流处理特性: 支持高吞吐、低延迟、高性能的流处理 支持带有事件时间的窗口(Window)操作 支持有状态计算的Exactly-once语义 支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作 支持具有Backpres 阅读全文
posted @ 2018-05-17 18:48 niutao 阅读(849) 评论(0) 推荐(0) 编辑
摘要: 由于限制问题,国内使用 go get 安装 golang 官方包可能会失败,如我自己在安装 collidermain 时,出现了以下报错: 不FQ的情况下怎么解决这个问题? 其实 golang 在 github 上建立了一个镜像库,如 https://github.com/golang/net 即是 阅读全文
posted @ 2018-03-25 12:21 niutao 阅读(893) 评论(0) 推荐(0) 编辑
摘要: 随着时间的推移,tablet会积累许多DiskRowSets,并且会在行更新时累积很多增量重做(REDO)文件。当插入一个关键字时,为了强制执行主关键字唯一性,Kudu会针对RowSets查询一组布隆过滤器,来找到可能包含该关键字的Rowset。越多的布隆过滤器检查及随后的DiskRowSet搜索, 阅读全文
posted @ 2018-01-05 22:28 niutao 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 当客户端从Kudu的表中读取数据时,必须首先建立需要连接的系列tablet服务器。 通过执行tablet发现过程(如上所述)来确定包含要读取的主关键字范围的tablet的位置(读取不必在领导者tablet上发生,除非用户明确选择该选项)。tablet随后使用扫描程序基于行集合(RowSets)和相关 阅读全文
posted @ 2018-01-05 22:26 niutao 阅读(1534) 评论(0) 推荐(0) 编辑
摘要: 写入操作是指需进行插入、更新或删除操作的一组行。需要注意的事项是Kudu强制执行主关键字的唯一性,主关键字是可以更改行的唯一标识符。为了强制执行此约束条件,Kudu必须以不同的方式处理插入和更新操作,并且这会影响tablet服务器如何处理写入 Kudu中的每个tablet包含预写式日志(WAL)和多 阅读全文
posted @ 2018-01-05 22:25 niutao 阅读(2642) 评论(0) 推荐(0) 编辑
摘要: 当创建Kudu客户端时,其会从主服务器上获取tablet位置信息,然后直接与服务于该tablet的服务器进行交谈。为了优化读取和写入路径,客户端将保留该信息的本地缓存,以防止他们在每个请求时需要查询主机的tablet位置信息。随着时间的推移,客户端的缓存可能会变得过时,并且当写入被发送到不再是tab 阅读全文
posted @ 2018-01-05 22:21 niutao 阅读(797) 评论(0) 推荐(0) 编辑
摘要: Kudu自身的架构,部分借鉴了Bigtable/HBase/Spanner的设计思想。论文的作者列表中,有几位是HBase社区的Committer/PBC成员,因此,在论文中也能很深刻的感受到HBase对Kudu设计的一些影响 Kudu的底层数据文件的存储,未采用HDFS这样的较高抽象层次的分布式文 阅读全文
posted @ 2018-01-05 22:19 niutao 阅读(1890) 评论(0) 推荐(0) 编辑
摘要: 对于impala而言,开发人员是可以通过JDBC连接impala的,有了JDBC,开发人员可以通过impala来间接操作kudu; maven导包: 通过JDBC连接impala操作kudu 使用JDBC连接impala操作kudu,与JDBC连接mysql做更重增删改查基本一样 创建实体类 pac 阅读全文
posted @ 2018-01-04 22:12 niutao 阅读(2891) 评论(0) 推荐(0) 编辑
摘要: 开发人员可以通过更改表的属性来更改 Impala 与给定 Kudu 表相关的元数据。这些属性包括表名, Kudu 主地址列表,以及表是否由 Impala (内部)或外部管理。 Rename an Impala Mapping Table ( 重命名 Impala 映射表 ) 注意: 使用 ALTER 阅读全文
posted @ 2018-01-04 22:10 niutao 阅读(6803) 评论(0) 推荐(1) 编辑
摘要: 将数据插入 Kudu 表 impala 允许使用标准 SQL 语句将数据插入 Kudu 插入单个值 创建表: 此示例插入单个行: 查看数据: 此示例使用单个语句插入三行: 批量插入Batch Insert 从 Impala 和 Kudu 的角度来看,通常表现最好的方法通常是使用 Impala 中的 阅读全文
posted @ 2018-01-04 22:06 niutao 阅读(1423) 评论(0) 推荐(0) 编辑
摘要: 依次启动HDFS、mysql、hive、kudu、impala 登录impala的shell控制端: Impala-shell 使用Impala创建新的Kudu表时,可以将该表创建为内部表或外部表。 内部表 内部表由Impala管理,当您从Impala中删除时,数据和表确实被删除。当您使用Impal 阅读全文
posted @ 2018-01-04 21:59 niutao 阅读(27569) 评论(0) 推荐(2) 编辑
摘要: Spark与Kudu的集成同事提供了kudu RDD 阅读全文
posted @ 2018-01-03 21:54 niutao 阅读(374) 评论(0) 推荐(0) 编辑
摘要: kudu之所以执行非常快速,可以用来替代HDFS和Hbase等,一个主要原因是,我们可以将普通SQL中的谓词推入kudu引擎,这样kudu查询数据会变的非常快; 将谓词评估推入Kudu引擎可以提高性能,因为它可以减少需要流回Spark引擎以进行进一步评估和处理的数据量。 通过Spark API当前支 阅读全文
posted @ 2018-01-03 21:51 niutao 阅读(1009) 评论(0) 推荐(1) 编辑
摘要: 可以选择使用Spark SQL直接使用INSERT语句写入Kudu表;与'append'类似,INSERT语句实际上将默认使用UPSERT语义处理; 阅读全文
posted @ 2018-01-02 21:49 niutao 阅读(4277) 评论(0) 推荐(0) 编辑
摘要: 在通过DataFrame API编写时,目前只支持一种模式“append”。尚未实现的“覆盖”模式 阅读全文
posted @ 2018-01-02 21:47 niutao 阅读(793) 评论(0) 推荐(0) 编辑
摘要: 虽然我们可以通过上面显示的KuduContext执行大量操作,但我们还可以直接从默认数据源本身调用读/写API。 要设置读取,我们需要为Kudu表指定选项,命名我们要读取的表以及为表提供服务的Kudu集群的Kudu主服务器列表。 阅读全文
posted @ 2018-01-02 21:46 niutao 阅读(792) 评论(0) 推荐(0) 编辑
摘要: Kudu支持许多DML类型的操作,其中一些操作包含在Spark on Kudu集成 包括: INSERT - 将DataFrame的行插入Kudu表。请注意,虽然API完全支持INSERT,但不鼓励在Spark中使用它。使用INSERT是有风险的,因为Spark任务可能需要重新执行,这意味着可能要求 阅读全文
posted @ 2018-01-02 21:44 niutao 阅读(2164) 评论(0) 推荐(0) 编辑
摘要: Kudu为Kudu表提供了一个自定义的原生数据源。可以和DataFrame API紧密集成; 使用DataFrame的好处就是可以从很多的数据源创建dataframe,包括现有的RDD,Hive表或Spark数据 语法格式: 阅读全文
posted @ 2018-01-02 21:41 niutao 阅读(641) 评论(0) 推荐(0) 编辑
摘要: spark对kudu表的创建 定义kudu的表需要分成5个步骤: 1:提供表名 2:提供schema 3:提供主键 4:定义重要选项;例如:定义分区的schema 5:调用create Table api 定义表时要注意的一个项目是Kudu表选项值。您会注意到在指定组成范围分区列的列名列表时我们调用 阅读全文
posted @ 2018-01-02 21:39 niutao 阅读(1811) 评论(0) 推荐(1) 编辑
摘要: Spark与KUDU集成支持: DDL操作(创建/删除) 本地Kudu RDD Native Kudu数据源,用于DataFrame集成 从kudu读取数据 从Kudu执行插入/更新/ upsert /删除 谓词下推 Kudu和Spark SQL之间的模式映射 到目前为止,我们已经听说过几个上下文, 阅读全文
posted @ 2018-01-02 21:37 niutao 阅读(4523) 评论(0) 推荐(0) 编辑
摘要: 为了提供可扩展性,Kudu 表被划分为称为 tablets 的单元,并分布在许多 tablet servers 上。行总是属于单个 tablet 。将行分配给 tablet 的方法由在表创建期间设置的表的分区决定。 kudu提供了3种分区方式: Range Partitioning ( 范围分区 ) 阅读全文
posted @ 2018-01-02 21:33 niutao 阅读(10798) 评论(0) 推荐(0) 编辑
摘要: 使用maven导入kudu 使用java创建Kudu表 public class CreateTable { private static ColumnSchema newColumn(String name, Type type, boolean iskey) { ColumnSchema.Col 阅读全文
posted @ 2018-01-02 21:28 niutao 阅读(2834) 评论(0) 推荐(0) 编辑
摘要: 1):删除impala 2):卸载impala相关依赖 rm -rf $(find / -name "impala") rpm -qa | grep impala 阅读全文
posted @ 2018-01-01 21:16 niutao 阅读(934) 评论(0) 推荐(0) 编辑
摘要: Kudu 与 Apache Impala (孵化)紧密集成,允许开发人员使用 Impala 使用 Impala 的 SQL 语法从 Kudu tablets 插入,查询,更新和删除数据; 安装impala 安装规划 主节点hadoop01执行以下命令进行安装 从节点hadoop02与hadoop03 阅读全文
posted @ 2018-01-01 21:13 niutao 阅读(970) 评论(0) 推荐(0) 编辑
摘要: 卸载kudu 1):删除kudu相关包 2):卸载kudu相关依赖 阅读全文
posted @ 2018-01-01 21:03 niutao 阅读(710) 评论(0) 推荐(0) 编辑
摘要: kudu的架构体系 下图显示了一个具有三个 master 和多个 tablet server 的 Kudu 集群,每个服务器都支持多个 tablet。它说明了如何使用 Raft 共识来允许 master 和 tablet server 的 leader 和 f ollow。此外,tablet ser 阅读全文
posted @ 2018-01-01 21:00 niutao 阅读(1704) 评论(0) 推荐(0) 编辑
摘要: 功能: 3.1:采集服务器日志 Rsyslog是CentOS6.X自带的一款系统日志工具: 对于ELK stack来说,我们需要实时的知道当前系统运行的情况,如果当前系统出现了问题,能够及时发现,以免影响线上实例 Rsyslog配置文件介绍:/etc/rsyslog.conf文件: 日志级别: 本项 阅读全文
posted @ 2017-05-23 00:35 niutao 阅读(561) 评论(0) 推荐(0) 编辑
摘要: output插件是经过了input,然后过滤结构化数据之后,接下来我们需要借助output传到我们想传到的地方.output相当于一个输出管道。 2.3.1: 将采集数据标准输出到控制台 配置示例: Codec 来自 Coder/decoder 两个单词的首字母缩写,Logstash 不只是一个in 阅读全文
posted @ 2017-05-23 00:25 niutao 阅读(5972) 评论(0) 推荐(0) 编辑
摘要: Logstash之所以强悍的主要原因是filter插件;通过过滤器的各种组合可以得到我们想要的结构化数据 1:grok正则表达式 grok**正则表达式是logstash非常重要的一个环节**;可以通过grok非常方便的将数据拆分和索引 语法格式: (?<name>pattern) ?<name>表 阅读全文
posted @ 2017-05-23 00:23 niutao 阅读(1038) 评论(0) 推荐(0) 编辑
摘要: 1:stdin标准输入和stdout标准输出 首先执行命令: 程序启动之后输入:hello logstash Logsrtash含有两个非常重要的插件,input与output; 我们上面输入输出hello logstash的时候就是基于这两个插件完成; 一个基础的输入输出插件: bin/logst 阅读全文
posted @ 2017-05-23 00:14 niutao 阅读(1352) 评论(0) 推荐(0) 编辑
摘要: logstash就是一个具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景 1):解压 2):安装x-pack 3):修改配置文件 vim logstash 阅读全文
posted @ 2017-05-23 00:13 niutao 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 1):修改elasticsearch.yml 2):重启es 3):创建一个名字为:errors_email 的watcher,定时去扫描相关信息 4):测试,向logs索引中输入错误信息 邮件报警功能按照每10s检查一遍logs的索引,查看里面的错误信息是否大于0,如果大于0则进行报警; 为了验证 阅读全文
posted @ 2017-05-23 00:12 niutao 阅读(932) 评论(0) 推荐(0) 编辑
摘要: 1.3.1:建立索引 索引index 这个参数可以控制字段应该怎样建索引,怎样查询。它有以下三个可用值: 字段解释: 日志数据集需要映射,通过将 **geo_point**``类型应用于这些字段,将日志中的 latitude(纬度)/longitude(纬度)对标记为地理位置。 使用以下命令建立日志 阅读全文
posted @ 2017-05-23 00:10 niutao 阅读(2030) 评论(0) 推荐(0) 编辑
摘要: 1.1:kibana搭建 kibana只需要在一台机器安装即可 1):解压 tar -zxvf kibana-5.5.2-linux-x86_64.tar.gz -C /home/angel/servers/ 2):修改kibana中的config/ kibana.yml 文件 Vim /home/ 阅读全文
posted @ 2017-05-23 00:04 niutao 阅读(1606) 评论(0) 推荐(0) 编辑