码迷,mamicode.com
首页 > Web开发 > 详细

Flume和 Sqoop

时间:2019-11-21 21:27:34      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:基于   write   滚动   upload   可靠   ted   Staff   val   lin   

Sqoop简介

Sqoop是一种旨在有效地在Apache Hadoop和诸如关系数据库等结构化数据存储之间传输大量数据的工具

原理: 将导入或导出命令翻译成Mapreduce程序来实现。   在翻译出的Mapreduce中主要是对InputFormat和OutputFormat进行定制

RDBMS到HDFS

sqoop import --connect jdbc:mysql://hadoop102:3306/company \
--username root --password 123456 --table staff --target-dir /user/company --delete-target-dir --num-mappers 1 --fields-terminated-by "\t"

RDBMS到Hive

sqoop import --connect jdbc:mysql://hadoop102:3306/company \
--username root --password 123456 --table staff --num-mappers 1 --hive-import --fields-terminated-by "\t" --hive-overwrite --hive-table staff_hive

HIVE/HDFS到RDBMS

sqoop export --connect jdbc:mysql://hadoop102:3306/company \
--username root --password 123456 --table staff --num-mappers 1 --export-dir /user/hive/warehouse/staff_hive --input-fields-terminated-by "\t"

Flume介绍

Flume高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单, 主要作用就是将服务器里的磁盘数据写入HDFS

 Flume实时读取目录中文件到HDFS

vim flume-dir-hdfs.conf
添加如下内容
a3.sources
= r3 a3.sinks = k3 a3.channels = c3 # Describe/configure the source a3.sources.r3.type = spooldir a3.sources.r3.spoolDir = /opt/module/flume/upload a3.sources.r3.fileSuffix = .COMPLETED a3.sources.r3.fileHeader = true #忽略所有以.tmp结尾的文件,不上传 a3.sources.r3.ignorePattern = ([^ ]*\.tmp) # Describe the sink a3.sinks.k3.type = hdfs a3.sinks.k3.hdfs.path = hdfs://hadoop101:9000/flume/upload/%Y%m%d/%H #上传文件的前缀 a3.sinks.k3.hdfs.filePrefix = upload- #是否按照时间滚动文件夹 a3.sinks.k3.hdfs.round = true #多少时间单位创建一个新的文件夹 a3.sinks.k3.hdfs.roundValue = 1 #重新定义时间单位 a3.sinks.k3.hdfs.roundUnit = hour #是否使用本地时间戳 a3.sinks.k3.hdfs.useLocalTimeStamp = true #积攒多少个Event才flush到HDFS一次 a3.sinks.k3.hdfs.batchSize = 100 #设置文件类型,可支持压缩 a3.sinks.k3.hdfs.fileType = DataStream #多久生成一个新的文件 a3.sinks.k3.hdfs.rollInterval = 30 #设置每个文件的滚动大小大概是128M a3.sinks.k3.hdfs.rollSize = 134217700 #文件的滚动与Event数量无关 a3.sinks.k3.hdfs.rollCount = 0 # Use a channel which buffers events in memory a3.channels.c3.type = memory a3.channels.c3.capacity = 1000 a3.channels.c3.transactionCapacity = 100 # Bind the source and sink to the channel a3.sources.r3.channels = c3 a3.sinks.k3.channel = c3

启动监控文件夹命令

flume-ng agent --conf conf/ --name a3 --conf-file job/flume-dir-hdfs.conf

单数据源多出口案例

多数据源汇总案例

 

Flume和 Sqoop

标签:基于   write   滚动   upload   可靠   ted   Staff   val   lin   

原文地址:https://www.cnblogs.com/cheng5350/p/11908452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!