09 2019 档案

摘要:Exception in thread "main" org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException): Failed to APPEND_FILE 阅读全文
posted @ 2019-09-25 11:15 www555 阅读(2463) 评论(1) 推荐(1)
摘要:kafka中每个主题一般都会有很多个分区,为了及时消费到数据,我们可能会启动很多个消费者去一个消费topic中的数据。每个分区只能由消费组内的一个消费者去消费。那么,同一个消费组内的消费者是如何确定消费哪些分区的数据呢? kafka内部中存在两种分配策略:Range和RoundRobin。 kafk 阅读全文
posted @ 2019-09-11 17:30 www555 阅读(4544) 评论(0) 推荐(0)
摘要:某些spark分区已经处理完数据,另一些分区还在处理数据,从而导致这个批次的作业消耗时间变长,甚至导致spark作业无法及时消费kafka中的数据。 解决办法: 1)修改kafkaRDD类的getPartition方法: 就是通过设置 topic.partition.subconcurrency 参 阅读全文
posted @ 2019-09-11 10:55 www555 阅读(2608) 评论(0) 推荐(0)
摘要:region数量的影响: 通常较少的region可使集群运行的更加平稳,官方指出,每个regionServer大约100个regions的时候效果最佳,理由如下: 1)hbase的一个特性MSLAB,它有助于防止堆内存的碎片化,减轻垃圾回收full gc的问题,默认是开启的。但是每个MenStore 阅读全文
posted @ 2019-09-11 10:17 www555 阅读(4701) 评论(1) 推荐(0)
摘要:rowkey是什么? rowkey相当于mysql、orcale中的主键,用于标识唯一的行,是完全由用户指定的一串不重复的字符串,hbase的数据永远都是根据rowkey的字典顺序排序的。 Rowkey的作用 1)读写数据时通过rowkey找到对应region;2)MenStore中数据按rowke 阅读全文
posted @ 2019-09-10 11:25 www555 阅读(1639) 评论(0) 推荐(0)
摘要:触发flush操作的条件: 1)region中所有MenStore占用的内存超过相关阈值 当一个region中所有MenStore占用的内存大小超过刷写阈值,会触发一次刷写,hbase.hregion.memstore.flush.size 默认值为128M。我们每次调用put、delete都会去检 阅读全文
posted @ 2019-09-09 10:44 www555 阅读(1393) 评论(0) 推荐(0)
摘要:hbase本身对支持的列簇没有数量限制,当我们建议列簇一般设在1-3之间。 在hbase中调用API往对应的表中插入数据,会写到MenStore的,而Menstore是一种内存结构,每个列簇对应一个Menstore。 存储在Menstore中的数据在一定条件下会进行Flush操作,每次flush的时 阅读全文
posted @ 2019-09-04 16:02 www555 阅读(1679) 评论(0) 推荐(0)
摘要:每个region都有startkey和endkey,协处理器的代码是在region上执行,而这些代码在region上执行的时候,我们可以拿到当前region的信息,包括startkey和endkey,然后我们可以用startkey和rowkey拼接,就可以查到我们需要的数据了。 1)定义proto文 阅读全文
posted @ 2019-09-04 15:42 www555 阅读(1376) 评论(0) 推荐(1)
摘要:未加盐数据:spark可以使用inputformat、outputformat来读写hbase表。 加盐以后:需要在rowkey之前加一些前缀,否则是查不到数据的。 1)我们需要重新写getsplits方法:从名字我们可以知道是要计算有多少个splits。在hbase中,一个region对用一个sp 阅读全文
posted @ 2019-09-04 14:40 www555 阅读(1186) 评论(0) 推荐(1)