• linux中sqoop部署以及实现mysql数据导入hive


    Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

    Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。

    下面我们进一步了解Sqoop安装部署过程,以及如何从Mysql数据库导入数据到hive。
    一.前期准备
    1.1 Hadoop

    版本:Hadoop 2.6.5

    安装:Hadoop集群安装和部署详解
    1.2 Mysql

    版本:5.6.33 MySQL Community Server (GPL)
    1.3 Mysql驱动包

    版本:mysql-connector-java-5.1.40-bin.jar
    1.4 Hive

    版本:apache-hive-2.1.1-bin

    安装:《Hive安装和部署详解》
    1.5 Sqoop安装包

    版本:sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
    二.Sqoop安装部署
    2.1 Sqoop部署


    #定位
    cd /opt/software
    #解压
    tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
    #复制sqoop到/usr/local/sqoop
    cp -r sqoop-1.4.6.bin__hadoop-2.0.4-alpha /usr/local/sqoop



    2.2 Mysql驱动包

    把1.3中的mysql驱动包放置到$SQOOP_HOMElib目录



    三.Sqoop配置
    3.1 Sqoop环境变量配置


    vi /etc/profile
    #sqoop
    export SQOOP_HOME=/usr/local/sqoop
    export PATH=$PATH:$SQOOP_HOME/bin
    #重新编译profile
    source /etc/profile

    3.2 sqoop-env.sh配置


    #定位
    cd /usr/local/sqoop/conf
    #创建sqoop-env.sh文件
    cp -r sqoop-env-template.sh sqoop-env.sh
    #配置sqoop-env.sh
    vi sqoop-env.sh
    ---------------------------------------------------------------
    # Set Hadoop-specific environment variables here.

    #Set path to where bin/hadoop is available
    export HADOOP_COMMON_HOME=/usr/local/hadoop

    #Set path to where hadoop-*-core.jar is available
    export HADOOP_MAPRED_HOME=/usr/local/hadoop

    #set the path to where bin/hbase is available
    #export HBASE_HOME=

    #Set the path to where bin/hive is available
    export HIVE_HOME=/usr/local/hive

    #Set the path for where zookeper config dir is


    注意:根据实际路径配置HADOOP_COMMON_HOME,HADOOP_MAPRED_HOME,HIVE_HOME
    3.3 sqoop-site.xml配置


    #创建sqoop-site.xml
    cp -r sqoop-site-template.xml sqoop-site.xml



    四.Mysql数据导入Hive
    4.1 启动dfs+yarn


    #定位
    cd /usr/local/hadoop
    #启动dfs+hive
    sbin/start-all.sh

    4.2 测试Sqoop
    sqoop help
    Available commands:
    codegen Generate code to interact with database records
    create-hive-table Import a table definition into Hive
    eval Evaluate a SQL statement and display the results
    export Export an HDFS directory to a database table
    help List available commands
    import Import a table from a database to HDFS
    import-all-tables Import tables from a database to HDFS
    import-mainframe Import datasets from a mainframe server to HDFS
    job Work with saved jobs
    list-databases List available databases on a server
    list-tables List available tables in a database
    merge Merge results of incremental imports
    metastore Run a standalone Sqoop metastore
    version Display version information

    4.3 Mysql数据导入Hive测试
    4.3.1 Mysql数据库新建表

    新建表T_USER,并插入测试数据


    4.3.2 Hive中新建表,并制定存放HDFS目录


    create table IF NOT EXISTS T_USER
    (
    id BIGINT COMMENT 'id',
    name STRING COMMENT 'name',
    password STRING COMMENT 'password'

    ) COMMENT 'T_USER'
    ROW format delimited fields terminated BY '01' LOCATION '/usr/hive/warehouse/hivetest.t_user';

    4.3.3 Sqoop中查看Mysql数据库


    sqoop list-databases --connect jdbc:mysql://192.168.32.128:3306/ --username root --password root



    4.3.4 Sqoop中查看Mysql数据库表


    sqoop list-tables --connect jdbc:mysql://192.168.32.128:3306/hive --username root --password root



    4.3.5 Sqoop导入Mysql数据到Hive


    sqoop import -m 1 --connect jdbc:mysql://192.168.32.128:3306/hive --username root --password root --table t_user --hive-import --hive-overwrite --hive-table hivetest.t_user --hive-drop-import-delims



    4.3.6 查看Mysql导入的数据
    4.3.6.1 hive中查看

    对比:与Mysql中表T_USER数据一致。
    4.3.6.2 hadoop中查看



    至此,以上为本文所有内容。

    ————————————————
    版权声明:本文为CSDN博主「IT狗探求」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/a123demi/article/details/72742553

  • 相关阅读:
    深度学习3--caffe的安装(only CPU)
    深度学习2--安装opencv3.1
    深度学习1--ubuntu14.04+win10双系统
    java回调机制——基本理解
    mysql修改默认端口号后从windows命令行登录
    UTF-8编码与GBK编码下的字符长度
    代码质量的几点新思考
    软件工程质量之“工程元数据”
    Junit概述
    maven+springmvc项目启动时,request mapping not found……
  • 原文地址:https://www.cnblogs.com/javalinux/p/14902906.html
Copyright © 2020-2023  润新知