flume采集网站日志到MaxCompute

通过最佳实践帮助您实现上述案例效果

Step1:安装JDK和Flume

1.1 JDK:1.7及以上版本

1.1.1 下载Linux版本的JDK1.7安装包
下载地址为:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

1.1.2 安装JDK

# cd /usr/local/src

# rpm -ivh jdk-7u79-linux-x64.rpm  #安装,默认会安装在/usr/java下

# java --version  #检查是否安装成功

1.1.3 配置环境变量

# vi /etc/profile

在最后加入以下几行:

export JAVA_HOME=/usr/java/jdk1.7.0_71

export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile  #执行命令生效

1.2 Flume:Flume-NG 1.x版本

1.2.1 下载Flume安装包

#cd /user/local

# wget http://apache.fayea.com/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz# 使用wget命令下载

1.2.2 安装Flume

# tar -xf apache-flume-1.6.0-bin.tar.gz  #解压

# mv apache-flume-1.6.0-bin flume  #重命名目录

1.2.3 修改环境变量

# vi /etc/profile

export FLUME_HOME=/usr/local/flume

在PATH里添加::$FLUME_HOME/bin

#source /etc/profile

1.2.4 测试是否安装成功

#flume-ng version

Step2:开通MaxCompute和Datahub

2.1 开通MaxCompute

阿里云实名认证账号访问https://www.aliyun.com/product/odps ,开通MaxCompute,选择按量付费进行购买。

2.2 数加上创建MaxCompute project

操作步骤:

步骤1: 进入数加管理控制台,前面开通MaxCompute成功页面,点击管理控制台,或者导航产品->大数据(数加)->MaxCompute 点击管理控制台。

步骤2: 创建项目。付费模式选择I/O后付费,输入项目名称:

步骤3: 创建MaxCompute表。进入大数据开发套件的数据开发页面:

以开发者身份进入阿里云数加平台>大数据开发套件>管理控制台,点击对应项目操作栏中的进入工作区

创建脚本文件。点击顶部菜单栏中的数据开发,点击“新建”处新建脚本,也可直接点击“新建脚本”任务框

编辑建表语句

create table if not exists test(

           id string,

          url string,

         urlname string,

        title string,

        chset string,

        scr string,

        col string,

        ip string,

        country string,

        province string,

       city string,

       county string)

       partitioned by (clientDate string)

  INTO 1 SHARDS

     HUBLIFECYCLE 1;

Step3:下载并部署Datahub Sink插件

3.1 开通Datahub

进入Datahub WebConsole,创建project(注意:首次使用的用户需要申请开通)

3.2 下载插件压缩包

#wget https://github.com/aliyun/aliyun-odps-flume-plugin/releases/download/1.1.0/flume-datahub-sink-1.1.0.tar.gz

3.3 解压插件压缩包

# tar -zxvf flume-datahub-sink-1.1.0.tar.gz

# ls flume-datahub-sink
  lib    libext{code}

3.4 部署Datahub Sink插件

将解压后的插件文件夹flume-datahub-sink移动到Apache Flume安装目录下

# mkdir {YOUR_FLUME_DIRECTORY}/plugins.d

# mv flume-datahub-sink {YOUR_FLUME_DIRECTORY}/plugins.d/

移动后,核验Datahub Sink插件是否已经在相应目录:

# ls { YOUR_APACHE_FLUME_DIR }/plugins.d
  flume-datahub-sink

Step4:创建需要上传的本地文件

4.1 创建需要上传的本地文件test_basic.log

源数据:test_basic

注:每行为一条记录,字段间用逗号隔开,字段如下:

9999,  #id

{nolink:http://mall.icbc.com.cn/searchproducts/pv.jhtml,&nbsp};  #url

pv.jhtml  # urlname

融e购 够容易,   #title

utf-8,   #chset

1366x768,  #scr

32-bit,   #col

58.210.33.238,  #ip

中国,河南,南阳市, 内乡县  # country,province,city,county

2014-04-23,   # clientDate

Step5:创建Datahub Topic

使用Datahub WebConsole,创建好Topic,schema为(string id,string url …) 下面假设建好的Topic名为flume_topic。

Step6:配置Flume作业配置文件

注:在Flume安装目录下的conf文件夹下创建datahub_basic.conf文件,并输入以下内容

 #Name the components on this agent

 #a1是要启动的agent的名字

 a1.sources = r1   #命名agent的sources为r1

 a1.sinks = k1     #命名agent的sinks为k1

 a1.channels = c1  #命名agent的channels为c1

 # Describe/configure the source

 a1.sources.r1.type = exec #指定r1的类型为exec

 a1.sources.r1.command =cat {your file directory}/test_basic.log   #写入本地文件路径

 # Describe the sink

 a1.sinks.k1.type = com.aliyun.datahub.flume.sink.DatahubSink #指定k1的类型

 a1.sinks.k1.datahub.accessID ={YOUR_ALIYUN_DATAHUB_ACCESS_ID}

 a1.sinks.k1.datahub.accessKey ={YOUR_ALIYUN_DATAHUB_ACCESS_KEY}

 a1.sinks.k1.datahub.endPoint = http://dh-cn-hangzhou.aliyuncs.com

 a1.sinks.k1.datahub.project = flume_demo

 a1.sinks.k1.datahub.topic =flume_topic

 a1.sinks.k1.batchSize = 1

 a1.sinks.k1.serializer = DELIMITED

 a1.sinks.k1.serializer.delimiter = ,

 a1.sinks.k1.serializer.fieldnames = id,url,urlname,title,chset,scr,col,ip,country,province,city,county,clientDate

 a1.sinks.k1.serializer.charset = UTF-8 #文字编码格式为UTF-8

 a1.sinks.k1.shard.number = 3

 a1.sinks.k1.shard.maxTimeOut = 60

 # Use a channel which buffers events in memory

 a1.channels.c1.type = memory  #指定channel的类型为memory

 a1.channels.c1.capacity = 1000  #设置channel的最大存储数量为1000

 a1.channels.c1.transactionCapacity = 1000 #每次最大可从source中拿到或送到sink中的event数量是1000

 # Bind the source and sink to the channel

 a1.sources.r1.channels = c1

 a1.sinks.k1.channel = c1

 #将source,sink分别与channel c1绑定

Step7:将数据上传至Datahub

配置完成后,启动Flume并指定agent的名称和配置文件路径,添加"-Dflume.root.logger=INFO,console"选项可以将日志实时输出到控制台。启动命令如下:

# cd {YOUR_FLUME_DIRECTORY}
#bin/flume-ng agent -n a1 -c conf -f conf/datahub_basic.conf -Dflume.root.logger=INFO,console

写入成功后,在datahub即可查到数据。

Step8:数据归档至MaxCompute

操作流程:

Project列表->Project查看->Topic查看->点击归档ODPS->填写配置,点击创建

8.1 进入topic详情页面

8.2 配置Connector并创建

8.3 在Connector页面查看数据归档状态

时间: 2024-11-03 09:08:33

flume采集网站日志到MaxCompute的相关文章

【大数据技巧】Flume采集网站日志到MaxCompute常见问题汇总

免费开通大数据服务:https://www.aliyun.com/product/odps 本文列举了Flume采集网站日志到MaxCompute的一些常见问题,欢迎大家补充: Q:找不到指定路径的文件 A:本实验要在Linux系统下运行,路径也要写在Linux下的路径 Q:找不到指定sink type的类 A:插件错误,需要用新版本的 flume插件 写新版本的 datahub Q:不能执行SinkRunner A:插件错误,需要用新版本的 flume插件 写新版本的 datahub Q:不识

【大数据新手上路】“零基础”系列课程--Flume收集网站日志数据到MaxCompute

免费开通大数据服务:https://www.aliyun.com/product/odps 概述:大数据时代,谁掌握了足够的数据,谁就有可能掌握未来,而其中的数据采集就是将来的流动资产积累. 任何规模的企业,每时每刻都在产生大量的数据,但这些数据如何归集.提炼始终是一个困扰.而大数据技术的意义确实不在于掌握规模庞大的数据信息,而在于对这些数据进行智能处理,从中分析和挖掘出有价值的信息,但前提是如何获取大量有价值的数据. 相信很多做过网站管理的人对网站访问日志(Access Log)应该不会陌生,

日志系统之Flume采集加morphline解析

概述 这段时间花了部分时间在处理消息总线跟日志的对接上.这里分享一下在日志采集和日志解析中遇到的一些问题和处理方案. 日志采集-flume logstash VS flume 首先谈谈我们在日志采集器上的选型.由于我们选择采用ElasticSearch作为日志的存储与搜索引擎.而基于ELK(ElasticSearch,Logstash,Kibana)的技术栈在日志系统方向又是如此流行,所以把Logstash列入考察对象也是顺理成章,Logstash在几大主流的日志收集器里算是后起之秀,被Elas

【大数据新手上路】“零基础”系列课程--日志服务(Log Service)采集 ECS 日志数据到 MaxCompute

随着公司业务的增多,云服务器 ECS 上的日志数据越来越多,存储开销越来越大,受限于日志的大小和格式,分析的速度非常缓慢,导致海量数据在沉睡,不知道发挥作用,如何能将这些数据进行归集.提炼和智能化的处理始终是一个困扰.通过日志服务投递日志数据到MaxCompute便可以让用户按照不同的场景和需求.以不同的方式复用数据,充分发挥日志数据的价值. 使用日志服务投递日志数据到MaxCompute具有如下优势: 使用非常简单.用户只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxC

【Best Practice】基于阿里云数加·StreamCompute快速构建网站日志实时分析大屏

本文偏向与实操层面的为大家介绍,如何基于阿里云数加StreamCompute.DataV快速构建网站日志实时分析. [什么场景适合用流计算] 流计算提供了针对流式数据实时分析的一站式工具链,对于大量流式数据存在实时分析.计算.处理的逻辑可以考虑通过流计算该任务.举例如下: 1. 针对实时营销活动,需要实时获取活动流量数据分析以了解活动的营销情况,此时可以上流计算. 2. 针对物联网设备监控,需要实时获取设备数据进行实时灾难监控,此时可以上流计算. 3. 对于手机APP数据实时分析,需要实时了解手

大数据平台网站日志分析系统

1:大数据平台网站日志分析系统,项目技术架构图: 2:大数据平台网站日志分析系统,流程图解析,整体流程如下: ETL即hive查询的sql; 但是,由于本案例的前提是处理海量数据,因而,流程中各环节所使用的技术则跟传统BI完全不同: 1) 数据采集:定制开发采集程序,或使用开源框架FLUME 2) 数据预处理:定制开发mapreduce程序运行于hadoop集群 3) 数据仓库技术:基于hadoop之上的Hive 4) 数据导出:基于hadoop的sqoop数据导入导出工具 5) 数据可视化:定

网站日志文件分析分析方法精华版

通过分析网站日志Log文件我们可以看到用户和搜索引擎蜘蛛访问网站的行为数据,这些数据能让我们分析出用户和蜘蛛对网站的偏好以及网站的健康情况.在网站日志分析中,我们主要需要分析的是蜘蛛行为. 在蜘蛛爬取及收录过程中,搜索引擎会给特定权重网站分配相应的资源量.一个搜索引擎友好型的网站应该充分利用这些资源,让蜘蛛可以迅速.准确.全面的爬取有价值.用户喜欢的内容,而不浪费资源在无用的.访问异常的内容上. 但由于网站日志中数据量过大,所以我们一般需要借助网站日志分析工具来查看.常用的日志分析工具有:光年日

浅析通过网站日志分析发现的几点看法

网站日志是一个很好的工具,它是我们分析网站的一个很好的帮手,通过分析网站日志,我们可以获得很多有价值的东西,而笔者通过分析个人的几个网站日志,从另外的角度去分析用户的行为,有了一些发现,而这些发现同大家通常认可的理论有一定的差距,笔者把个案写出来,希望得到大家的指点. 首先,笔者通过对网站日志进行了处理,从网站日志中排除图像网页,如jpg,gif,jpeg以及css.同时,还排除了那些自动网页采集程序"网络蜘蛛"产生的数据.这些数据并不是真实用户所发出的请求.笔者是针对这种情况来排除采

基于Flume的美团日志收集系统

基于Flume的美团日志收集系统(一)架构和设计 问题导读: 1. Flume-NG与Scribe对比,Flume-NG的优势在什么地方? 2.架构设计考虑需要考虑什么问题? 3.Agent死机该如何解决? 4.Collector死机是否会有影响? 5.Flume-NG可靠性(reliability)方面做了哪些措施? 美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flu