数据集
假设我们在不同的 kafka 主题(源、目标)中有两个流数据集,我们需要根据源数据集知道目标数据集的数据质量如何。
为简单起见,假设两个主题的数据都是 json 字符串,如下所示
{
"id": 1, "name": "Apple", "color": "red", "time": "2018-09-12_06:00:00"}
{
"id": 2, "name": "Banana", "color": "yellow", "time": "2018-09-12_06:01:00"}
...
环境准备
为 Apache Griffin 测量模块准备环境,包括以下组件:
- JDK (1.8+)
- Hadoop (2.6.0+)
- Spark (2.2.1+)
- Kafka (0.8.x)
- Zookeeper (3.5+)
有关以上组件的详细的配置过程,可以参考griffin/griffin-doc/deploy,本文假定以上环境均已配置完毕。
有关版本匹配的信息,可参考https://github.com/apache/griffin/blob/master/griffin-doc/deploy/measure-build-guide.md
构建 Apache Griffin 测量模块
1.在此处下载 Apache Griffin 源包。
2.解压源包。
unzip griffin-0.4.0-source-release.zip
cd griffin-0.4.0-source-release
3.构建 Apache Griffin jar
mvn clean install
并将构建的 apache griffin jar包移动到项目路径中
mv measure/target/measure-0.4.0.jar <work path>/griffin-measure.jar
数据准备
为了快速开始,我们利用kafka shell创建两个 kafka 主题(源、目标)并为它们生成 json 字符串格式的数据。
# create topics
# Note: it just works for kafka 0.8
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic source
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic target
数据格式类似于这样:
{
"id": 1, "name": "Apple", "color": "red", "time": "2018-09-12_06:00:00"}
{
"id": 2,