zoukankan      html  css  js  c++  java
  • sqoop导出工具

    sqoop的导出工具是把HDFS上文件中的数据导出到mysql中

    mysql中的表

    现在在linux上创建一个文件,并把这个文件上传到hdfs上

    cat person.txt 
    7,no7,77
    8,no8,88
    
    $ hadoop fs -mkdir person_export
    $ hadoop fs -put -f person.txt person_export
    $ hadoop fs -ls person_export
    Found 1 items
    -rw-r--r--   3 18232184201 supergroup         18 2016-07-26 17:16 person_export/person.txt

     一、export-dir

    使用export-dir来指定导出的目录,会导出该目录下的所有文件。

    $ sqoop export --connect jdbc:mysql://localhost:3306/test --username root --password 123456 --table person -m 1 --export-dir person_export

    最终的效果可以在mysql中的表体现:

     

    二、插入中文乱码问题

    hdfs上的内容:

    3,第7个,77
    4,第8个,88 

    再次执行上面一样的export命令,在mysql中就会产生乱码:

    可以使用下面的命令来解决乱码问题:

     sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password 123456 --table person -m 1 --export-dir person_export

    完成之后mysql的记录是: 

    三、update-key update-mode

    需求hdfs文件中存在的记录做更新,不存在的记录则插入

     hdfs上的文件:

    ,第10个,100
    ,第11个,110
    3,第3个,30
    4,第4个,40

     执行命令:

    sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password 123456 --table person -m 1 --export-dir person_export --update-key id --update-mode allowinsert

    需要注意的是,update-mode有两种,一种是uodateonly,一种是allowinsert

    执行完成之后,mysql中的数据:

    四、input-fields-terminated-by

    input-fields-terminated-by可以用来指定hdfs上文件的分隔符,默认是逗号

    HDFS上的数据格式(以空格切分):

     aaa 100
     bbb 110

    执行下面的命令来导出:

     sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password 123456 --table person -m 1 --export-dir person_export --input-fields-terminated-by ' '

    导出的结果是:

    五、columns

    使用colums来指定导出到mysql的列

     hdfs上的数据格式:

     aaa
     bbb

    执行下面的命令:

    sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password 123456 --table person -m 1 --export-dir person_export --input-fields-terminated-by ' ' --columns="id,name"

    执行结果:

     

  • 相关阅读:
    java 实验五保存网页到本地
    Codeforces Round #485 (Div. 2)F. AND Graph
    算法设计分析实验三——贪心求最小生成树
    D. XOR-pyramid Codeforces Round #483 (Div. 2) dp
    C. Finite or not? Codeforces Round #483 (Div. 2)
    Educational Codeforces Round 44 F. Isomorphic Strings
    Educational Codeforces Round 44 (Rated for Div. 2)+E. Pencils and Boxes+树状数组
    BZOJ 1012 [JSOI2008]最大数maxnumber
    BZOJ 1207 [HNOI2004]打鼹鼠(简单dp)
    POJ 3067 Japan(树状数组求逆序对)
  • 原文地址:https://www.cnblogs.com/dongdone/p/5708447.html
Copyright © 2011-2022 走看看