zoukankan      html  css  js  c++  java
  • Flume和 Sqoop

    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 "	"

    RDBMS到Hive

    sqoop import 
    --connect jdbc:mysql://hadoop102:3306/company 
    --username root 
    --password 123456 
    --table staff 
    --num-mappers 1 
    --hive-import 
    --fields-terminated-by "	" 
    --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 "	"

    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

    单数据源多出口案例

    多数据源汇总案例

    我凝视这恒星,等待这那场风暴,我已经准备好了
  • 相关阅读:
    Spring+Quartz实现文件中转站
    Velocity中的ComparisonDateTool、MathTool、NumberT...
    Adobe Flash Builder 4.7破解方法(绝对可用)
    12c weblogic需要输入用户名密码
    velocity+spring mvc+spring ioc+ibatis初试感觉(与struts+spring+hibernate比较)
    基于tomcat7 web开发中的一点小东西
    Positional parameter are considered deprecated; use named parameters or JPA-style positional parameters instead.
    spring service事务传播
    Spring注解方式实现任务调度【官方文档翻译】
    Tomcat 下 Memcached 集群与 Terracotta 集群比较
  • 原文地址:https://www.cnblogs.com/cheng5350/p/11908452.html
Copyright © 2011-2022 走看看