• 【华为云技术分享】使用sqoop导入mysql数据到hive中


    Sqoop 是一个数据转储工具,它能够将 hadoop HDFS 中的数据转储到关系型数据库中,也能将关系型数据库中的数据转储到 HDFS 中。

    clipboard.png

    Apache Sqoop,是"SQL to Hadoop"的意思,可以实现 Hadoop 和几乎任何外部结构化数据存储间

    的双向数据传输。 Apache Sqoop 旨在协助 RDBMS 与 Hadoop 之间进行高效的大数据交流。

    用户可以在 Sqoop 的帮助下,轻松地把关系型数据库的数据导入到 Hadoop 与其相关的系

    统 (如 HBase 和 Hive)中;同时也可以把数据从 Hadoop 系统里抽取并导出到关系型数据库

    里。

    2) Sqoop 通过 hadoop 的 mapreduce 把数据从关系型数据库中导入数据到 HDFS。 Sqoop

    架构非常简单,其整合了 Hive、 Hbase 和 Oozie,通过 map-reduce 任务来传输数据,从而提供并发

    特性和容错。

    Sqoop的典型应用场景是 将白天的生产的数据库中的数据在晚间导入Hive数据仓库进行分析

    1、下载并安装Sqoop

    tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

    mv sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz   sqoop-1.4.7.bin

    2、设置Sqoop配置文件

    cd %SQOOP_HOME%

    cp conf/sqoop-env-template.sh /conf/sqoop-env.sh

    在sqoop-env.sh中添加如下配置:

    export HADOOP_PREFIX=/opt/hadoop-2.8.0

    export HADOOP_HOME=${HADOOP_PREFIX}

    export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

    export HADOOP_COMMON_HOME=${HADOOP_PREFIX}

    export HADOOP_HDFS_HOME=${HADOOP_PREFIX}

    export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}

    export HADOOP_YARN_HOME=${HADOOP_PREFIX}

    # Native Path

    export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native

    export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib/native"

    # Hadoop end

    #Hive

    export HIVE_HOME=/opt/hive-2.3.3

    export PATH=$HIVE_HOME/bin:$PATH

    #HBase

    export HBASE_HOME=/opt/hbase-2.1.0

    export PATH=$HBASE/bin:$PATH

    #export ZOOCFGDIR

    export ZOOCFGDIR=/opt/zookeeper-3.4.13/conf/

    请根据实际情况修改路径

    将MySQL需要用到的jar包拷贝至$SQOOP_HOME/lib下

    cp mysql-connector-java-8.0.12.jar $SQOOP_HOME/lib

    3、配置环境变量

    vim /etc/profile

    export SQOOP_HOME=/opt/sqoop-1.4.7.bin

    export PATH=$SQOOP_HOME/bin:$PATH

    4、测试Sqoop

    #测试MySQL连接

    sqoop list-databases --connect jdbc:mysql://172.168.248.8/student --username root –P

    #检验SQL语句

    sqoop eval --connect jdbc:mysql://172.168.248.8/student --username root--password ********

    --query "SELECT id,name,class,suject,score

    FROM student

    WHERE score >=90"

    通过以上语句可以确认sqoop是否正常运行,连接mysql是否正常

    5、从Mysql导入表数据至HDFS

    sqoop import --connect jdbc:mysql://172.16.248.8/student --username root --password ******* --table student --warehouse-dir /myschool -m 1

    –warehouse-dir或–target-dir    指定目录

    6、从Mysql导入表数据至Hive

    sqoop import --connect jdbc:mysql://172.168.248.8/studeng --username root --password ******** --table student --hive-import --hive-database default --create-hive-table -m 1

    –create-hive-table:当表在Hive不存在时,使用该参数在指定数据库中添加同名表

    作者:华为云MVP  hellfire

  • 相关阅读:
    G级别的文本文件分割器FileSpliter
    zabbix5.2.6性能优化001、数据库的优化
    Zabbix 6.0 使用Elasticsearch作为 后端数据库
    zabbix 5.2.6 升级到 6.0.1
    Linux 系统常用命令
    zabbix获取历史告警问题
    Kubernetes1.20.1 下 部署Prometheus+nodeexporter+Grafana+AlertManager 监控系统
    第一天
    zabbix 5.2.6不定时重启, 日志报错 failed to open log file: [24] Too many open files
    CentOS 7.6 部署 elasticsearch kibana 7.9.1
  • 原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13164823.html
Copyright © 2020-2023  润新知