Kane Xie


  • 首页

  • 标签

  • 归档

  • 搜索

解决实时平台Avro Schema兼容性问题

发表于 2019-02-24 | | 阅读次数:

在大数据平台或应用中,为了降低数据传输消耗,通常我们会使用某种紧凑型的数据格式,比如Avro

Avro的序列化/反序列化JAVA API主要有两种,DataFileWriter/DataFileReader和GenericDatumWriter/GenericDatumReader

GenericDatumWriter/GenericDatumReader

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static GenericRecord genericDatumSerde(Schema schema, GenericRecord record) throws IOException {
byte[] array = null;
// serialize
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream();) {
BinaryEncoder encoder = EncoderFactory.get().binaryEncoder(outputStream, null);
DatumWriter<GenericRecord> writer = new GenericDatumWriter<GenericRecord>(schema);
writer.write(record, encoder);
encoder.flush();
array = outputStream.toByteArray();
}
// deserialize
DatumReader<GenericRecord> reader = new GenericDatumReader<GenericRecord>(schema);
return reader.read(null, DecoderFactory.get().binaryDecoder(array, null));
}
阅读全文 »

海量数据去重

发表于 2019-01-30 | | 阅读次数:

前提

  • 通过id去重,而不是整条数据
  • id由SnowFlake算法生成,参考之前的文章SnowFlake算法在数据链路中的应用
阅读全文 »

Presto在Windows环境下编译错误

发表于 2019-01-07 | | 阅读次数:

最近在尝试重写presto-kafka,对接kafka1.0,在Windows环境下编译打包presto-kafka时候报错

1
2
3
[ERROR] Failed to execute goal io.takari.maven.plugins:presto-maven-plugin:0.1.12:generate-service-descriptor (default-generate-service-descriptor) on project presto-jmx: Execution default-generate-service-descriptor of goal io
.takari.maven.plugins:presto-maven-plugin:0.1.12:generate-service-descriptor failed: A required class was missing while executing io.takari.maven.plugins:presto-maven-plugin:0.1.12:generate-service-descriptor: com\facebook\pres
to\kafka\KafkaColumnHandle (wrong name: com/facebook/presto/kafka/KafkaColumnHandle)
阅读全文 »

Schema Registry报错50001

发表于 2018-12-10 | | 阅读次数:

{“error_code”:50001,”message”:”Register schema operation failed while writing to the Kafka store”}

阅读全文 »

Flume追踪数据来源

发表于 2018-10-20 | | 阅读次数:

需求

我司的实时平台是用Flume来做实时数据的采集,多数场景下是用户发送TCP请求,Flume通过MultiportSyslogTCPSource接收

流平台的一个关键的监控环节是数据来源,但通过Flume采集下来数据并不带有数据来源的信息,这样就给整个数据流的监控带来很大的麻烦,比如收到某些不合规范的数据,导致Avro转换失败,如果能定位到某个表的话还不算太糟糕,至少还能联系到owner,更坏的情况是收到一些垃圾信息,根本定位不到属于哪个应用或者表,冤无头债无主,一脸懵逼

阅读全文 »

Flume UDP Source丢包问题

发表于 2018-10-13 | | 阅读次数:

问题描述

有用户提出通过udp协议发送数据到实时平台,所以考虑在flume接收节点添加udp source来接收udp请求

阅读全文 »

es sql site server添加认证信息

发表于 2018-08-08 | | 阅读次数:

Elasticsearch的权限可以通过search-guard或者xpack(shield)来实现,Elasticsearch-SQL也同步支持了权限认证,只需要把用户名和密码作为参数添加到url中就可以了,例如:http://domain/?base_uri=http://<es_addr>/&username=<usr>&password=<pwd>

阅读全文 »

ES浮点数被识别为字符串

发表于 2018-08-01 | | 阅读次数:

最近准备把ES的版本从5.1.2升到6.2.4,将Kafka的数据写入ES的工具类ESPersistor需要进行相应api的调整。在5.1.2的java api中,使用IndexRequest.source(String source)来设置要写入的json字符串,但在6.2.4中这个函数已经被移除,可选的替代者有以下几种(source的重载函数还有很多,但这里不在讨论范围内)

1
2
IndexRequest.source(String source, XContentType xContentType)
IndexRequest.source(Map source, XContentType contentType)
阅读全文 »

一个坑掉两次。。

发表于 2018-05-14 | | 阅读次数:

写一个ES的清理小工具,需要找出一个月之前创建的index

if(createTS < System.currentTimeMillis() - 30 24 3600 * 1000)

血崩。。。int越界。。。

阅读全文 »

HBase不同版本集群之间数据迁移

发表于 2018-04-20 | | 阅读次数:

由于HBase CDH4和CDH5数据格式不兼容,所以不能用“CopyTable”之类的方法来进行数据迁移。取而代之的方法有两个:

阅读全文 »
12…8
Kane Xie

Kane Xie

不吃早餐才是一件很嘻哈的事

74 日志
29 标签
GitHub E-Mail
© 2015 — 2019 Kane Xie
蚂蚁金服大量职位内推,请将简历投递至kane.xiejing@qq.com,欢迎你的加入!