zoukankan      html  css  js  c++  java
  • 大数据实践(九)--sqoop安装及基本操作

    前置工具及环境

    Hadoop 2.7.3

    sqoop 1.4.6

    mysql 8

    mysql-connector-java-8.0.20.jar

    java-json.jar

    一、简介

    Sqoop 是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出:

    • 导入数据:从 MySQL,Oracle 等关系型数据库中导入数据到 HDFS、Hive、HBase 等分布式文件存储系统中;
    • 导出数据:从 分布式文件系统中导出数据到关系数据库中。

    其原理是将执行命令转化成 MapReduce 作业来实现数据的迁移。

    二、安装

    1、解压、配置环境变量

    tar -zxvf  sqoop-1.4.6.tar.gz
    

    其他步骤略去。

    2、修改环境文件

    进入安装目录的conf下,拷贝模板

    cp sqoop-env-template.sh sqoop-env.sh
    

    在文件中修改hadoop的变量。

    sqoop使用mapReduce处理数据,所以以下两个变量必须修改。

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

    3、加入jar包

    在lib目录下加入Mysql和处理json的jar包。

    mysql-connector-java-8.0.20.jar 
    
    #  处理json
    java-json.jar 
    

    查看版本

    $ sqoop version
    Warning: /usr/local/sqoop/../hcatalog does not exist! HCatalog jobs will fail.
    Please set $HCAT_HOME to the root of your HCatalog installation.
    Warning: /usr/local/sqoop/../accumulo does not exist! Accumulo imports will fail.
    Please set $ACCUMULO_HOME to the root of your Accumulo installation.
    20/11/12 14:34:17 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
    Sqoop 1.4.6
    git commit id 
    Compiled by jenkins on Tue Aug 23 00:56:12 PDT 2016
    
    

    三、数据转换

    1、查看mysql

    没有mysql驱动会报错

    #链接数据库,查看库
    sqoop list-databases 
    --connect jdbc:mysql://ip:3306/ 
    --username root 
    --password root
    
    
    #连接数据库,查看表
    sqoop list-tables 
    --connect jdbc:mysql://ip:3306/mysql  
    --username root 
    --password root 
    

    2、mysql-hdfs

    将mysql数据导入hdfs

    sqoop import 
    --connect jdbc:mysql://ip:3306/mysql      
    --username root 
    --password root 
    --table help_keyword            # 待导入的表
    --delete-target-dir             # 目标目录存在则先删除
    --target-dir /sqoop             # 导入的目标目录
    --fields-terminated-by '	'     # 指定导出数据的分隔符
    -m 3    
    

    将hdfs数据导入mysql中

    #mysql中需要预先建表
    CREATE TABLE help_keyword_from_hdfs LIKE help_keyword ;
    
    sqoop export  
        --connect jdbc:mysql://ip:3306/mysql 
        --username root 
        --password root 
        --table help_keyword_from_hdfs         # 导出数据存储在 MySQL 的 help_keyword_from_hdf 的表中
        --export-dir /sqoop  
        --input-fields-terminated-by '	'
        --m 3 
    

    3、sqoop转换hbase、hive、mysql等

    导入导出过程中可能会出现以下冲突:

    主键错误
    乱码
    
  • 相关阅读:
    CentOS配置教程
    CentOS安装教程(VMware)
    Kali配置教程
    Kali安装教程(VMWare)
    Tomcat安装教程
    JDK安装教程(Windows7 x64)
    WebSphere概要文件的创建与删除
    swftools安装教程
    常用Linux源小记
    Linux软件源书写格式解析及本地yum源制作
  • 原文地址:https://www.cnblogs.com/cgl-dong/p/14034914.html
Copyright © 2011-2022 走看看