sqoop导出数据

作者: 明明德撩码 | 来源:发表于2018-03-20 00:22 被阅读34次

    应用场景1:把需要清洗的结构化数据导入到hdfs中,通过hive进行清洗后,把清洗结果导出到结构化数据表中,进行展现。
    应用场景2:把需要清洗的结构化数据导入到hdfs中,通过hive进行数据分析后,把分析结果导出到结构化数据表中,进行展现。
    例如:分析日志中的ip、访问时间、访问内容进行分析,把分析报告,导出到结构化数据表中,通过web展现方式给用户使用结果数据。

    导出数据RDBMS


    导出数据

    create table my_user2(id int(25),account varchar(255),password varchar(255),primary key(id));
    
    
    bin/sqoop export \
    --connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
    --username root \
    --password 123456 \
    --table my_user2 \
    --num-mappers 1  \
    --input-fields-terminated-by '\t' \
    --export-dir /user/beifeng/sqoop/input/part-m-00000
    

    说明:吧part-m-00000文件中的数据导入到mysql test库中的my_user2表中。
    export-dir导出的文件所在目录。
    input-fields-terminated-by:指的是导入到myuser2表中的数据格式。

    Hive数据导入导出

    使用Sqoop 将Hive表的数据与RDBMS表中数据,互为导入导出,其实对于Hive来说,数据本身就是存储在HDFS的目录下,所以Hive的数据导入导出实质还是RDBMS与HDFS数据导入导出。

    从MySQL导入数据到Hive是一个写文件的过程

    create table user_hive(
    id int,
    account string,
    password string
    )
    ROW FORMAT DELIMITED  FIELDS TERMINATED BY '\t';
    
    
    bin/sqoop import \
    --connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
    --username root \
    --password 123456 \
    --table my_user2 \
    --fields-terminated-by '\t' \
    --num-mappers 1  \
    --hive-import  \
    --hive-database default \
    --hive-table user_hive  \
    --delete-target-dir 
    

    文件输出
    –fields-terminated-by <char> 设定每个字段是以什么符号作为结束的,默认是逗号,也可以改为其它符号,如句号.,示例如:–fields-terminated-by.
    指的就是文件行内容之间的分割符号,这样user_hive表就可以匹配上了。

    从Hive导出数据到MySQL

    企业实际应用中,使用HiveQL分析数据时,常常将分析结果存储到Hive临时表中,然后使用Sqoop export将表中的数据导出到RDBMS对应表中,所以这个大家必须要会。从Hive表中将数据导出到MYSQL表中,实质就是HDFS文件数据导出到MYSQL表,与【6、导出数据RDBMS】是一样的而已。

    从Hive导出数据到MySQL

    bin/sqoop export \
    --connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
    --username root \
    --password 123456 \
    --table my_user2 \
    --input-fields-terminated-by '\t' \
    --num-mappers 1  \
    --export-dir /user/hive/warehouse/user_hive/part-m-00000
    

    这个过程是一个读文件的过程
    --input-fields-terminated-by '\t' \:读取文件的以什么样的格式。
    --export-dir /user/hive/warehouse/user_hive/part-m-00000:所读文件的目录

    Sqoop 的--options-file使用


    总结

    • 大数据协作框架在大数据Hadoop 2.x生态系统中举足轻重,非常重要,针对不同需求诞生,辅助海量数据的存储和处理。
    • Cloudera 发布的Hadoop版本CDH 5.x,有各种优势,其一各个框架版本间兼容问题,其二修复很多BUG和封装更好的接口以供实际项目中直接使用。
    • Sqoop 就是RDBMS与HDFS直接数据转换工具,分为导入数据和导出数据,把握架构的核心及使用三要素,其底层是仅仅只有Map Task的MapReduce,充分利用分布式计算的功能。

    相关文章

      网友评论

        本文标题:sqoop导出数据

        本文链接:https://www.haomeiwen.com/subject/szgmqftx.html