通过Fluentd实时上传数据到DataHub实践

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 本文把我通过Flunetd,把数据上传到DataHub的配置过程记录下来,希望对大家在配置中能有帮助。

本文把我通过Fluentd,把数据上传到DataHub的配置过程记录下来,希望对大家在配置中能有帮助。

安装

前序准备

本文使用一台CentOS 6.8的ECS来做测试的,机器上已经有yum。用户测试的时候,需要有一台能连接上公网的Linux机器。

  1. 安装依赖包

    `yum -y install gcc gcc-c++ openssl* readline* ncurses* zlib* libxml* libjpeg* libpng* libxslt* libtool* `
  2. 下载并安装包
wget http://aliyun-datahub.oss-cn-hangzhou.aliyuncs.com/tools/fluentd-with-datahub-0.12.23.tar.gz&file=fluentd-with-datahub-0.12.23.tar.gz
tar -xzvf fluentd-with-datahub-0.12.23.tar.gz
cd fluentd-with-datahub

这个wget的下载地址,是从文档里拿到的最新的安装包。以后版本可能会更新,用户也可以直接从文档上拿最新的安装包。

  1. 安装

    目前安装包里只包含了ruby和插件的安装,没有提供fluentd的安装部分的脚本,这里可以做修改
    
vi install.sh
##修改里面的gem install --local fluent-plugin-datahub-0.0.1.gem,改成
gem install --local string-scrub-0.0.5.gem
gem install --local thread_safe-0.3.5.gem
gem install --local tzinfo-1.2.2.gem
gem install --local tzinfo-data-1.2016.4.gem
gem install --local sigdump-0.2.4.gem
gem install --local http_parser.rb-0.6.0.gem
gem install --local cool.io-1.2.3.gem 
gem install --local yajl-ruby-1.2.1.gem
gem install --local msgpack-0.5.12.gem
gem install --local fluentd-0.12.23.gem
gem install --local fluent-plugin-datahub-0.0.2.gem
##注意以上版本号都是一键安装包里已经有的,以后如果版本更新,这里的版本号也从dependency_gem里看看当时提供的版本是多少

##wq保存退出
sudo sh install.sh

最终结果是
b4

配置

DataHub配置

在DataHub的控制台里创建一个Project,然后创建一个Topic(Topic对应到数据库是一个表的概念)
b1
因为只是测试,我这里就3个字段。

测试

我们在ECS上,用touch /tmp/test.log生成一个文件。我们通过fluentd监控这个文件的变化,并把变化的内容解析后传到datahub里。

配置Fluentd

这里,我们的datahub配置文件fluentd.conf的内容为

<source>
  @type tail
  path /tmp/test.log
  tag test
  format /(?<request_time>\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)\s\[(?<level>.+)\]\s(?<content>.+)/
</source>
<match test>
  @type datahub
  access_id your_access_id
  access_key your_access_key
  endpoint http://dh-cn-hangzhou.aliyuncs.com
  project_name your_project_name
  topic_name fluentd
  column_names ["request_time", "level", "content"]
</match>

这里我把我的project_name和access id/key信息给隐藏了。endpoint 的地址看这里,我纯测试,就用了公网地址。
配置文件生成好了后,使用bin/fluentd -c fluentd.conf启动fluentd

测试

我们通过date "+%Y-%m-%d %H:%M:%S [Info] login success" >> /tmp/test.log往/tmp/test.log里写日志,然后在fluentd 上,我们可以看到日志为:
b2
来到datahub上可以看到新写进去的日志:
b3
至此大功告成,/tmp/test.log上的新增数据会被实时推送到DataHub里了。

目录
相关文章
|
7月前
|
消息中间件 分布式计算 DataWorks
DataWorks常见问题之kafka数据导入datahub失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
SQL 关系型数据库 数据管理
Datahub实践——Sqllineage解析Sql实现端到端数据血缘
Datahub实践——Sqllineage解析Sql实现端到端数据血缘
1530 1
|
数据采集 JSON 关系型数据库
将 MySQL 数据抽取并写入 DataHub,您可以按照以下步骤进行
将 MySQL 数据抽取并写入 DataHub,您可以按照以下步骤进行
575 2
|
6月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之mysql-cdc读取数据写入到datahub中,datahub如何转换时区
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
63 1
|
7月前
|
存储 监控 Apache
Flink整库同步 如何把数据丢入到 datahub 中
Flink整库同步 如何把数据丢入到 datahub 中
|
数据采集 大数据 数据挖掘
企业级数据治理工作怎么开展?Datahub这样做
企业级数据治理工作怎么开展?Datahub这样做
187 0
|
数据采集 JSON 关系型数据库
将 MySQL 数据抽取并写入 DataHub
将 MySQL 数据抽取并写入 DataHub
276 3
|
Java API Maven
Fink在处理DataHub数据源时无法正确识别RecordData类的字段
Fink在处理DataHub数据源时无法正确识别RecordData类的字段
113 1
|
JSON 物联网 数据格式
物联网平台数据流转到datahub时报错
记录一次物联网平台数据流转到datahub时的报错
553 0
物联网平台数据流转到datahub时报错
|
SQL 消息中间件 NoSQL
数据治理方案技术调研 Atlas VS Datahub VS Amundsen
数据治理意义重大,传统的数据治理采用文档的形式进行管理,已经无法满足大数据下的数据治理需要。而适合于Hadoop大数据生态体系的数据治理就非常的重要了。 大数据下的数据治理作为很多企业的一个巨大的难题,能找到的数据的解决方案并不多,但是好在近几年,很多公司已经进行了尝试并开源了出来,本文将详细分析这些数据发现平台,在国外已经有了十几种的实现方案。
1605 0
数据治理方案技术调研 Atlas VS Datahub VS Amundsen