《Hadoop实战手册》一1.11 利用Flume加载数据到HDFS中

本节书摘来异步社区《Hadoop实战手册》一书中的第1章,第1.11节,作者: 【美】Jonathan R. Owens , Jon Lentz , Brian Femiano 译者: 傅杰 , 赵磊 , 卢学裕 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.11 利用Flume加载数据到HDFS中

Apache Flume是Hadoop社区的一个项目,由多个相关项目组成,用于从不同的数据源可靠有效地加载数据流到HDFS中。Flume最常见的一个场景是加载多个数据源的网站日志数据。本节将介绍如何使用Flume加载数据到HDFS中。

准备工作
在本节中假定你已经安装和配置好Flume。

Flume可以从Apache网页(http://incubator.apache.org/flume/)下载。

如果你使用的是CDH3,那么默认已经安装了Flume 0.9.4+25.43的版本。

操作步骤
完成下面的步骤,实现将weblogs数据导入HDFS。

1.使用dump命令测试Flume是否配置正确:

flume dump 'text("/path/to/weblog_entries.txt")'

2.通过Flume shell执行一个配置:

flume shell -c<MASTER_HOST>:<MASTER_PORT> -e 'exec config text("/path/to/   
weblog_entries.txt") | collectorSink("hdfs://<NAMENODE_HOST>:<NAMENODE_PORT>/   
data/weblogs/flume")'

工作原理
Flume包含Sources8和Sinks9两个抽象概念,并通过管状的数据流将它们合并在一起。在这个例子中,数据来源是text方式,将文件路径作为参数,并将该文件中的内容发送到配置的数据输出端。dump命令使用控制台为数据输出端。按照这样的配置,weblog_entries.txt文件的内容以text的方式被读取,同时被写到控制台。

在步骤2中,使用了Flume shell配置并执行一个作业。-c参数告诉了Flume Master节点的连接地址。Flume将会执行–e参数后面的命令。如前所述,text是一种读取所传文件中所有内容的数据源。collectorSink是一个数据去向,可以传给本地文件系统路径或者HDFS文件系统路径。在前面这个例子中,我们传递的是一个HDFS的路径。这个命令执行的效果会将weblog_entries.txt导入HDFS中。

更多参考
Flume提供了几个预定义的Source和Sink。下面是一些基本的数据源。

  • null:不读取任何数据。
  • stdin:读入一个标准的输入流。
  • rpcSource:读取Thrift或者Avro RPC。
  • text:读取一个文件中的内容。
  • tail:读取一个文件,并保持文件打开状态用于持续读取追加到文件中的数据

下面是一些基本的Sink。

  • null:将数据丢弃,不进行写操作。
  • collectorSink:写到一个本地文件系统或者HDFS上。
  • console:写到控制台。
  • formatDfs:写到HDFS并带一定的格式,如序列化文件、Avro、Thrift等。
  • rpcSink:写给Thrift或者Avro RPC。

1即席查询是用户根据自己的需求,灵活地选择查询条件,系统能够根据用户的选择生成相应的统计报表。

2原文是针对Hadoop 0.20.0 的版本,对目前来说该版本已经很老,Hadoop 1.0 以上的版本put已经可以对文件夹进行复制。
3 Hadoop 0.20.2以上已经支持不同版本间的distcp复制了。——译者注
4“只有map”表示一个作业只启动map阶段没有启动reduce阶段。
5Hadoop ftp文件系统。
6保证MySQL与Hadoop集群中的每个节点间网络是相通的。
7$SQOOP_HOME为SQOOP的安装目录。
8数据来源。
9数据去向。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flume 是一种用于数据采集、聚合和移动的工具,它可以将多种来源的数据收集到 HDFSHadoop分布式文件系统)。通过 Flume,用户可以轻松地配置和管理数据流,确保数据的可靠性和一致性。 首先,用户需要在 Flume 的配置文件定义数据源,例如日志文件、网络源或其他存储位置。接着,用户需要定义数据的处理流程,包括数据的过滤、转换和路由策略。然后,用户需要指定目的地为 HDFS,并设置 HDFS 的相关参数,包括数据的写入路径、文件格式和压缩方式等。 当 Flume 启动后,它会按照用户定义的规则和流程,从数据源收集数据,并将其经过处理后写入到 HDFS Flume 可以确保数据的高效传输和存储,同时具有容错和重试机制,以保证数据的可靠性和完整性。 在数据采集到 HDFS 后,用户可以通过 Hadoop 生态系统的其他工具和框架,如 MapReduce、Spark 等进行数据处理和分析。同时,用户也可以通过 HDFS 提供的 API 和命令行工具,对数据进行管理和检索,以满足各种业务需求和分析任务。 总之,通过 Flume数据采集到 HDFS ,用户可以实现大规模数据的收集、存储和分析,为企业决策和业务运营提供基础支持。同时,Flume 也为数据工程师和分析师提供了一个灵活、高效的数据采集和处理工具,助力他们更好地利用数据来推动业务发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值