天天看點

基于Apache Flume Datahub插件将日志資料同步上雲

jdk (1.7及以上,推薦1.7)

flume-ng 1.x

apache maven 3.x

将解壓後的插件檔案夾flume-datahub-sink移動到apache flume安裝目錄下

移動後,核驗datahub sink插件是否已經在相應目錄:

需要上傳的日志檔案格式如下(每行為一條記錄,字段之間逗号分隔):

下面将建立datahub topic,并把每行日志的第一列和第二列作為一條記錄寫入topic中。

在flume安裝目錄的conf/檔案夾下建立名為datahub_basic.conf的檔案,并輸入内容如下:

這裡serializer配置指定了以逗号分隔的形式将輸入源解析成三個字段,并忽略第三個字段。

配置完成後,啟動flume并指定agent的名稱和配置檔案路徑,添加-dflume.root.logger=info,console選項可以将日志實時輸出到控制台。

寫入成功,顯示日志如下:

對于資料歸檔maxcompute的場景,一般來說需要将資料進行分區。datahub到maxcompute的歸檔可以根據maxcompute表的分區字段自動建立分區,前提是要求maxcompute和datahub的字段名以及類型可以完全對應上。如果需要根據日志的傳輸時間自動設定分區,則在上面的例子中需要指定maxcompute的分區相應字段和時間格式,例如按小時自動建立分區,添加的配置如下:

注意:pt這個字段需要在datahub topic以及maxcompute表中都存在,且是表的分區字段。