摘要: 在hadoop-env.sh中添加: # 在配置namenode和datanode时都会有用到JMX_OPTS的代码,是为了减少重复提取出的公共代码 export JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxrem 阅读全文
posted @ 2019-04-29 18:04 niutao 阅读(1458) 评论(0) 推荐(0) 编辑
摘要: 最近在测试环境下,hive的metastore不稳定,于是做一次JVM优化 在hive-env.sh中 export HADOOP_HOME=/opt/cdh/hadoop-2.6.0-cdh5.14.0 if [ "$SERVICE" = "cli" ]; then if [ -z "$DEBUG 阅读全文
posted @ 2019-04-29 17:38 niutao 阅读(1575) 评论(0) 推荐(0) 编辑
摘要: Hbase版本:1.2.0-cdh5.14.0 1):下载phoneix源码 链接:https://pan.baidu.com/s/1uryK_jLEekdXV04DRc3axg 密码:bkqg 2):解压后,更改pom文件,指定你需要的cdh版本 因为我的是CDH5.14.0,所以要更改为我的版本 阅读全文
posted @ 2019-04-29 11:31 niutao 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 临时做个随笔 下载snappy-1.1.1.tar.gz 解压后需要提前安装: yum -y update gccyum -y install gcc+ gcc-c++ 然后在解压后的snappy目录执行: ./confurati make make install 解压完毕会在/usr/local 阅读全文
posted @ 2019-04-29 01:04 niutao 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 最近没有管测试环境的,上去看了下,好家伙,kafka羁留了上百万数据,于是打算把数据同步到测试的Hbase库中,在这期间发现了插入性能问题 def putMapData(tableName: String , columnFamily:String, key:String , mapData:Map 阅读全文
posted @ 2019-04-28 18:58 niutao 阅读(591) 评论(0) 推荐(0) 编辑
摘要: Hbase默认建表是只有一个分区的,开始的时候所有的数据都会查询这个分区,当这个分区达到一定大小的时候,就会进行做split操作; 因此为了确保regionserver的稳定和高效,应该尽量避免region分裂和热点的问题; 那么有的同学在做预分区的时候,可能是按照: 1): 通过Hbase提供的a 阅读全文
posted @ 2019-04-27 21:13 niutao 阅读(1233) 评论(0) 推荐(0) 编辑
摘要: 类似Uber,需要处理处不同时间段的不同地区的订单热点区域,帮助进行网约车的及时调度处理 每个成交单Order中,都会有订单上车位置的起始经纬度:open_lat , open_lng 那么在这个时间段内,哪些地区是高密集订单区域,好进行及时的调度,所以需要得到不同地区的热力图 初期想法是基于经纬度 阅读全文
posted @ 2019-04-27 20:52 niutao 阅读(1108) 评论(0) 推荐(0) 编辑
摘要: 版本:自己编译的hbase-1.2.0-cdh5.14.0 默认情况下,Hbase不开启snappy压缩 , 所以在hbase的lib/native目录下什么也没有(我的前提是执行hadoop checknative可以看到hadoop是支持snappy的) 第一步: 需要将snappy-java- 阅读全文
posted @ 2019-04-27 16:42 niutao 阅读(2370) 评论(0) 推荐(0) 编辑
摘要: 需求: 每分钟执行一次程序,将处理后的数据写入mongodb 最初做法: 1):写crontab没有响应,于是打算通过shell脚本的while true来执行 当时sb,没控制时间内,而且我还是用nohup XXXX.sh 2>&1 & 结果就是,几乎每一个瞬间启动一个jar,服务器内存瞬间沾满 阅读全文
posted @ 2019-04-27 14:18 niutao 阅读(864) 评论(0) 推荐(0) 编辑
摘要: 数据总数:746条数据 因为后面需要进行算法合成,而且spark目前对这种算法支持并不好,因此采用代码编写,所以在查询hbase的过程中采用的是java直接查询, 但是为了加快查询速度,我尽可能的使用了过滤器 1:初期Hbase的rowkey组合:时间+"_"+订单id 查询思路: 1:能快速检索, 阅读全文
posted @ 2019-04-18 23:29 niutao 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 反射的包名:reflect 步骤: 1:根据传入函数获取函数的指针 2:通过指针获取函数名称 代码: func apply(op func(int , int) int , a,b int) int{ pointer:= reflect.ValueOf(op).Pointer() funcName 阅读全文
posted @ 2019-04-13 17:49 niutao 阅读(755) 评论(0) 推荐(1) 编辑
摘要: 在写Hfile的时候 ,如果一个family下超过了默认的32个hfile,就会报如下错误: ERROR mapreduce.LoadIncrementalHFiles: Trying to load more than 32 hfiles to family d of region with st 阅读全文
posted @ 2019-04-10 13:29 niutao 阅读(2223) 评论(0) 推荐(0) 编辑
摘要: 需求: 树的结构 需要按照如下的方式进行打印: 分析: 本文按照非递归的方式进行打印,其中的关键就是: 1):使用队列保存当前要打印的节点 2):当前层打印完毕后换行 代码: 全部代码: 阅读全文
posted @ 2019-03-30 20:18 niutao 阅读(917) 评论(0) 推荐(0) 编辑
摘要: 在合并Region的过程中出现永久RIT怎么办?笔者在生产环境中就遇到过这种情况,在批量合并Region的过程中,出现了永久MERGING_NEW的情况,虽然这种情况不会影响现有集群的正常的服务能力,但是如果集群有某个节点发生重启,那么可能此时该RegionServer上的Region是没法均衡的。 阅读全文
posted @ 2019-03-30 15:47 niutao 阅读(1496) 评论(0) 推荐(0) 编辑
摘要: 转载的文章,觉得写的比较好 讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来: 哈希存储引擎 是哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明 阅读全文
posted @ 2019-03-30 14:26 niutao 阅读(3093) 评论(0) 推荐(0) 编辑
摘要: 需求 两个量表: 将上面的链表A和链表B合并成一个链表C,最终的顺序: 解决 使用归并排序中的合并阶段进行合并排序操作 阅读全文
posted @ 2019-03-27 19:57 niutao 阅读(826) 评论(0) 推荐(0) 编辑
摘要: 第一步:做数组的拆分 第二步:排序 这一步需要两个指针:第一个指针是前面数组的初始指针 , 第二个指针是另外一个数组的初始指针 做排序: 全部代码: public class MergeSort { public static void main(String[] args) { int[] arr 阅读全文
posted @ 2019-03-27 19:37 niutao 阅读(1798) 评论(0) 推荐(0) 编辑
摘要: 需求 将HDFS上的数据解析出来,然后通过hfile方式批量写入Hbase(需要多列写入) 写入数据的关键api: rdd.saveAsNewAPIHadoopFile( stagingFolder, classOf[ImmutableBytesWritable], classOf[KeyValue 阅读全文
posted @ 2019-03-26 22:03 niutao 阅读(3610) 评论(4) 推荐(1) 编辑
摘要: package algorithm import java.util /** * Created by angel; */ object findStr { def main(args: Array[String]): Unit = { val str = "dddffffssxsadc" val toArray: Array[Char] = str.toArr... 阅读全文
posted @ 2019-03-17 17:52 niutao 阅读(503) 评论(0) 推荐(0) 编辑
摘要: flink对接kafka,官方模式方式是自动维护偏移量 但并没有考虑到flink消费kafka过程中,如果出现进程中断后的事情! 如果此时,进程中段: 1:数据可能丢失 但并没有考虑到flink消费kafka过程中,如果出现进程中断后的事情! 如果此时,进程中段: 1:数据可能丢失 1:数据可能丢失 阅读全文
posted @ 2018-05-30 12:34 niutao 阅读(3163) 评论(0) 推荐(1) 编辑
摘要: 企业运维的数据库最常见的是 mysql;但是 mysql 有个缺陷:当数据量达到千万条的时候,mysql 的相关操作会变的非常迟缓; 如果这个时候有需求需要实时展示数据;对于 mysql 来说是一种灾难;而且对于 mysql 来说,同一时间还要给多个开发人员和用户操作; 所以经过调研,将 mysql 阅读全文
posted @ 2018-05-24 20:46 niutao 阅读(26536) 评论(0) 推荐(3) 编辑
摘要: A Table可以转换成a DataStream或DataSet。通过这种方式,可以在Table API或SQL查询的结果上运行自定义的DataStream或DataSet程序 将表转换为DataStream 有两种模式可以将 Table转换为DataStream: 1:Append Mode 将一 阅读全文
posted @ 2018-05-23 20:32 niutao 阅读(5959) 评论(0) 推荐(0) 编辑
摘要: 将DataStream或DataSet转换为表格 在上面的例子讲解中,直接使用的是:registerTableSource注册表 对于flink来说,还有更灵活的方式:比如直接注册DataStream或者DataSet转换为一张表。 然后DataStream或者DataSet就相当于表,这样可以继续 阅读全文
posted @ 2018-05-23 20:30 niutao 阅读(2755) 评论(0) 推荐(0) 编辑
摘要: Table API和SQL捆绑在flink-table Maven工件中。必须将以下依赖项添加到你的项目才能使用Table API和SQL: 另外,你需要为Flink的Scala批处理或流式API添加依赖项。对于批量查询,您需要添加: Table API和SQL程序的结构 Flink的批处理和流处理 阅读全文
posted @ 2018-05-23 20:27 niutao 阅读(527) 评论(0) 推荐(0) 编辑
摘要: checkpoint介绍 checkpoint机制是Flink可靠性的基石,可以保证Flink集群在某个算子因为某些原因(如 异常退出)出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保 证应用流图状态的一致性。Flink的checkpoint机制原理来自“Chandy-Lamport 阅读全文
posted @ 2018-05-22 20:24 niutao 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 基于mysql的source操作 基于mysql的sink操作 阅读全文
posted @ 2018-05-22 20:18 niutao 阅读(803) 评论(0) 推荐(1) 编辑
摘要: package com.flink.DataStream import java.util.Properties import org.apache.flink.api.common.serialization.SimpleStringSchema import org.apache.flink.streaming.api.scala.{DataStream, StreamExecution... 阅读全文
posted @ 2018-05-22 20:17 niutao 阅读(4056) 评论(1) 推荐(0) 编辑
摘要: flink在流处理上的source和在批处理上的source基本一致。大致有4大类 1.基于本地集合的source(Collection-based-source) 2.基于文件的source(File-based-source) 3.基于网络套接字的source(Socket-based-sour 阅读全文
posted @ 2018-05-22 20:16 niutao 阅读(12306) 评论(1) 推荐(2) 编辑
摘要: Split就是将一个DataStream分成两个或者多个DataStream Select就是获取分流后对应的数据 阅读全文
posted @ 2018-05-22 20:13 niutao 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 用来将两个dataStream组装成一个ConnectedStreams而且这个connectedStream的组成结构就是保留原有的dataStream的结构体;这样我们就可以把不同的数据组装成同一个结构 val env = StreamExecutionEnvironment.getExecutionEnvironment env.setParallelism(1) val src: Dat... 阅读全文
posted @ 2018-05-21 20:12 niutao 阅读(1406) 评论(0) 推荐(0) 编辑
摘要: 和window的操作类似,只不过操作更加灵活,具体的操作需要在匿名内部类的方法中实现;当有比较复杂的需求时候,可以使用; 注意,例子中使用的是window,所以对应的匿名内部类是:WindowFunction 如果使用的是windowAll,则需要使用的内部类是:AllWindowFunction 阅读全文
posted @ 2018-05-21 20:11 niutao 阅读(688) 评论(0) 推荐(0) 编辑
摘要: EventTime 1.要求消息本身就应该携带 EventTime 2.时间对应关系如下 需求: EventTime 3 数据: 1527911155000,boos1,pc1,100.0 1527911156000,boos2,pc1,200.0 1527911157000,boos1,pc1,3 阅读全文
posted @ 2018-05-21 20:09 niutao 阅读(4643) 评论(0) 推荐(0) 编辑
摘要: 在讲解windows的众多操作之前,需要讲解一个概念: 源源不断的数据流是无法进行统计工作的,因为数据流没有边界,就无法统计到底有多少数据经过了这个流。也无法统计数据流中的最大值,最小值,平均值,累加值等信息。 如果在数据流上,截取固定大小的一部分,这部分是可以进行统计的。 截取方式主要有两种, 关 阅读全文
posted @ 2018-05-21 19:50 niutao 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 逻辑上将一个流分成不相交的分区,每个分区包含相同键的元素。在内部,这是通过散列分区来实现的 阅读全文
posted @ 2018-05-21 19:47 niutao 阅读(7720) 评论(1) 推荐(1) 编辑
摘要: Flink提供了一个类似于Hadoop的分布式缓存,让并行运行实例的函数可以在本地访问。这个功能可以被使用来分享外部静态的数据,例如:机器学习的逻辑回归模型等! 缓存的使用流程: 使用ExecutionEnvironment实例对本地的或者远程的文件(例如:HDFS上的文件),为缓存文件指定一个名字 阅读全文
posted @ 2018-05-20 19:46 niutao 阅读(922) 评论(0) 推荐(0) 编辑
摘要: Flink支持广播变量,就是将数据广播到具体的taskmanager上,数据存储在内存中,这样可以减缓大量的shuffle操作; 比如在数据join阶段,不可避免的就是大量的shuffle操作,我们可以把其中一个dataSet广播出去,一直加载到taskManager的内存中,可以直接在内存中拿数据 阅读全文
posted @ 2018-05-20 19:44 niutao 阅读(1653) 评论(0) 推荐(0) 编辑
摘要: 本地执行 LocalEnvironment是Flink程序本地执行的句柄。用它在本地JVM中运行程序 - 独立运行或嵌入其他程序中。 本地环境通过该方法实例化ExecutionEnvironment.createLocalEnvironment()。默认情况下,它将使用尽可能多的本地线程执行,因为您 阅读全文
posted @ 2018-05-20 19:43 niutao 阅读(2067) 评论(1) 推荐(0) 编辑
摘要: flink在批处理中常见的sink 基于本地集合的sink(Collection-based-sink) //1.定义环境 val env = ExecutionEnvironment.getExecutionEnvironment //2.定义数据 stu(age,name,height) val 阅读全文
posted @ 2018-05-20 19:41 niutao 阅读(4127) 评论(0) 推荐(0) 编辑
摘要: flink在批处理中常见的source flink在批处理中常见的source主要有两大类。 在flink最常见的创建DataSet方式有三种。 基于本地集合的 import org.apache.flink.api.scala.{DataSet, ExecutionEnvironment, _} 阅读全文
posted @ 2018-05-20 19:38 niutao 阅读(1198) 评论(0) 推荐(0) 编辑
摘要: partitionByHash Range-Partition sortPartition 根据指定的字段值进行分区的排序; 阅读全文
posted @ 2018-05-19 19:33 niutao 阅读(5746) 评论(0) 推荐(0) 编辑