• Hadoop sqoop


    0目录

    1.安装sqoop

    2.补充sqoop流程

    1.安装sqoop

    解压、改名

    [root@kb129 install]# tar -xvf ./sqoop-1.4.7.tar.gz -C /opt/soft/

    [root@kb129 soft]# mv sqoop-1.4.7/ sqoop147

    拷贝配置文件

    [root@kb129 conf]# pwd

    /opt/soft/sqoop147/conf

    [root@kb129 conf]# cp sqoop-env-template.sh sqoop-env.sh

    编辑配置文件

    export HADOOP_COMMON_HOME=/opt/soft/hadoop313

    export HADOOP_MAPRED_HOME=/opt/soft/hadoop313

    export HBASE_HOME=/opt/soft/hbase235

    export HIVE_HOME=/opt/soft/hive312

    export HIVE_CONF_DIR=/opt/soft/hive312/conf

    export ZOOCFGDIR=/opt/soft/zk345/conf

    解压

    [root@kb129 install]# tar -xvf ./sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C ./

    拷贝jar包

    [root@kb129 sqoop-1.4.7.bin__hadoop-2.6.0]# cp ./sqoop-1.4.7.jar /opt/soft/sqoop147/

    [root@kb129 lib]# pwd

    /opt/soft/sqoop147/lib

    [root@kb129 lib]# cp /opt/soft/hive312/lib/hive-common-3.1.2.jar ./

    [root@kb129 lib]# cp /opt/install/sqoop-1.4.7.bin__hadoop-2.6.0/lib/avro-1.8.1.jar ./

    [root@kb129 lib]# cp /opt/soft/hive312/lib/mysql-connector-java-8.0.29.jar ./

    配置环境变量并source

    #SQOOP

    export SQOOP_HOME=/opt/soft/sqoop147

    export PATH=$SQOOP_HOME/bin:$PATH

    验证安装

    [root@kb129 lib]# sqoop version

    查看sqoop一般操作命令

    [root@kb129 lib]# sqoop help

    连接mysql命令(\代表换行输入)

    [root@kb129 lib]# sqoop list-databases \

     --connect jdbc:mysql://kb129:3306/ \

     --username root \

     --password 123456

    查看sql50数据库内的表

    [root@kb129 lib]# sqoop list-tables --connect jdbc:mysql://kb129:3306/sql50 --username root --password 123456

    在hive默认库中创建表(来源mysql库中的help_keyword表,仅复制表结构)

    [root@kb129 lib]# sqoop create-hive-table \

    --connect jdbc:mysql://kb129:3306/mysql \

    --username root --password 123456 \

    --table help_keyword \

    --hive-table hk

    导入mysql库中的help_keyword的数据到HDFS默认路径上/user/root

    sqoop import --connect jdbc:mysql://kb129:3306/mysql --username root --password 123456 --table help_keyword -m 1

    导入sql50库中的student表的数据到HDFS默认路径上

    sqoop import --connect jdbc:mysql://kb129:3306/sql50 --username root --password 123456 --table student -m 1

    导入: 指定分隔符和导入路径

    sqoop import --connect jdbc:mysql://kb129:3306/sql50 --username root --password 123456 --table student --target-dir /kb23/student --fields-terminated-by '\t' -m 1

    导入数据:带where条件

    sqoop import --connect jdbc:mysql://kb129:3306/mysql --username root --password 123456 --where "name='STRING'" --table help_keyword --target-dir /kb23/hk1 -m 1

    导入:指定自定义查询SQL

    sqoop import --connect jdbc:mysql://kb129:3306/mysql --username root --password 123456 --target-dir /kb23/hk2 --query 'select help_keyword_id,name from help_keyword where $CONDITIONS and name="STRING"' --split-by help_keyword_id --fields-terminated-by ':' -m 4

    在以上需要按照自定义SQL语句导出数据到HDFS的情况下:

    1、引号问题,要么外层使用单引号,内层使用双引号,$CONDITIONS的$符号不用转义, 要么外层使用双引号,那么内层使用单引号,然后$CONDITIONS的$符号需要转义

    2、自定义的SQL语句中必须带有WHERE \$CONDITIONS

    2、把MySQL数据库中的表数据导入到Hive中

    Sqoop 导入关系型数据到 hive 的过程是先导入到 hdfs,然后再 load 进入 hive

    普通导入:数据存储在默认的default hive库中,表名就是对应的mysql的表名

    sqoop import --connect jdbc:mysql://kb129:3306/mysql --username root --password 123456 --table help_keyword --hive-import -m 1

    导入过程

    第一步:导入mysql.help_keyword的数据到hdfs的默认路径

    第二步:自动仿造mysql.help_keyword去创建一张hive表, 创建在默认的default库中

    第三步:把临时目录中的数据导入到hive表中

    指定行分隔符和列分隔符,指定hive-import,指定覆盖导入,指定自动创建hive表,指定表名,指定删除中间结果数据目录

    sqoop import  \

    --connect jdbc:mysql://192.168.3.129:3306/mysql  \

    --username root  \

    --password 123456  \

    --table help_keyword  \

    --fields-terminated-by "\t"  \

    --lines-terminated-by "\n"  \

    --hive-import  \

    --hive-overwrite  \

    --create-hive-table  \

    --delete-target-dir \

    --hive-database  default \

    --hive-table new_help_keyword

    增量导入(追加)

    执行增量导入之前,先清空hive数据库中的my_help_keyword表中的数据

    从原表501行数据开始到最后,追加到目标表中

    sqoop import  \

    --connect jdbc:mysql://kb129:3306/mysql  \

    --username root  \

    --password 123456  \

    --table help_keyword  \

    --hive-import  \

    --incremental  append  \

    --hive-database kb23db \

    --check-column  help_keyword_id \

    --last-value 500  \

    -m 1

    更多参考

    Sqoop import https://www.cnblogs.com/qingyunzong/p/8807252.html

    Sqoop export 小白篇(十二):sqoop export指令实操_belialxing的博客-CSDN博客

    2.补充sqoop流程

  • 相关阅读:
    2022“杭电杯”中国大学生算法设计超级联赛(4)
    软件测试之集成测试
    初见JAVA —— 最基础的变量,选择,循环语句,数组,方法,输入与输出等
    Flex 布局项目实战,好像没那么难!
    使用Kubeadm安装简单集群实战
    Debain 11 LINUX 操作系统技巧
    前端用vue实现一个滚动数字时钟
    BRISK: Binary Robust Invariant Scalable Keypoints全文翻译
    http请求报错:406 Not Acceptable的解决办法
    自动驾驶车什么时候普及,自动驾驶还有多久普及
  • 原文地址:https://blog.csdn.net/zhurui19940321/article/details/132962856