• 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

    单数据源多出口案例

    多数据源汇总案例

    我凝视这恒星,等待这那场风暴,我已经准备好了
  • 相关阅读:
    PostgreSQL数据库中的常见错误
    postgresql相关命令
    Linux系统查看公网IP地址
    TCP/IP TIME_WAIT状态原理
    TCP连接状态详解及TIME_WAIT过多的解决方法
    让你提升命令行效率的 Bash 快捷键 [完整版]
    linux 如何显示一个文件的某几行(中间几行)
    linux中内核的一个不错的参数somaxconn
    Linux crontab 实现每秒执行
    Linux tar This does not look like a tar archive
  • 原文地址:https://www.cnblogs.com/cheng5350/p/11908452.html
Copyright © 2020-2023  润新知