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

    单数据源多出口案例

    多数据源汇总案例

    我凝视这恒星,等待这那场风暴,我已经准备好了
  • 相关阅读:
    [985] 令牌放置
    [191] 位1的个数
    [637] 二叉树的层平均值
    大数据量时 Mysql LIMIT如何正确对其进行优化(转载)
    数据库中,表一sum得出一个值,赋给表二的某个字段,为null
    安装JDK提示: 该项不适于在指定状态下使用的错误
    hibernate中多对一问题
    JSONObject基本内容(三)
    JSONObject基本内容(二)
    JSONObject基本内容(一)
  • 原文地址:https://www.cnblogs.com/cheng5350/p/11908452.html
Copyright © 2011-2022 走看看