Sqoop安装及基本使用

Posted yfb918

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sqoop安装及基本使用相关的知识,希望对你有一定的参考价值。

Sqoop:
    1、sqoop从数据库中导入数据到HDFS
    2、SQOOP从数据库导入数据到hive
    3、sqoop从hive中将数据导出到数据库
 
sqoop底层还是执行的mapreduce程序,,但是特殊的地方只有map TASK
    可以实现:企业级数据仓库、文档型系统、关系型数据库<-->
 
sqoop安装:
    1、tar -zxvf sqoop-1.4.6-cdh5.5.2.tar.gz
    2、将mysql的驱动包mysql-connector-java-5.1.43.jar拷贝到sqoop home/lib下面
        cp mysql-connector-java-5.1.43.jar sqoop-1.4.6-cdh5.5.2/lib/
    3、配置环境变量
        export SQOOP_HOME=/yang/sqoop-1.4.6-cdh5.5.2
        export PATH=$PATH:$SQOOP_HOME/bin
    4、配置SQOOP ,cd sqoop-1.4.6-cdh5.5.2/conf/
        mv sqoop-env-template.sh sqoop-env.sh
        
        export HADOOP_COMMON_HOME=/yang/hadoop-2.6.5
        export HADOOP_MAPRED_HOME=/yang/hadoop-2.6.5
        export HBASE_HOME=/yang/hbase-1.2.5
        export HIVE_HOME=/yang/apache-hive-2.1.1-bin
 
    5、source /etc/profile
    6、sqoop version
 
 开始使用:
        前提:mysql可以正常使用
        hdfs服务开启start-dfs.sh start-yarn.sh
        hive服务开启 nohup hive --service metastore &
 查看数据库有哪些表
            sqoop list-tables --connect jdbc:mysql://192.168.100.121:3306/big_data --username root -P
            或者(上面大写P会让你在控制台输入密码)
            sqoop list-tables --connect jdbc:mysql://192.168.100.121:3306/big_data --username root --password 1234
            sqoop list-tables --connect jdbc:mysql://192.168.100.121:3306/big_data --username root -P
 
 #使用 sqoop将数据库的数据导入到 Hdfs(地址使用默认地址/user/$user/tabname)
斜杠后面不能有空格 而且需要启动yarn,因为要sqoop底层要执行mapreduce
当执行报错;classwrite的时候加入:--driver com.mysql.jdbc.Driver
sqoop import
--driver com.mysql.jdbc.Driver
--username root
--password 1234
--table t_area 需要放入那张表
            
             #使用指定的输出目录 --target-dir /tmp
            #使用指定的并发数量 -m 2
sqoop import
--driver com.mysql.jdbc.Driver
--username root
--password 1234
--table t_area
--target-dir /sqoop
-m 2
#使用sqoop将HDFS文件导出到 MYSQL 表中,默认MAP为 4个 ,先将空表建好t_area_copy1
sqoop export
--driver com.mysql.jdbc.Driver
--table t_area_copy1
--username root
--password 1234
 
mysql导入到hive:
    注意需要启动服务:hive服务开启 nohup hive --service metastore &
                    再来启动hive
     #使用自定义的条件,并且过滤字段,并发数为1
#切分的字段可以更改为另外一个字段  
sqoop import
--hive-import
--hive-table t_area
--username root
--password 1234
--query "SELECT * from t_area where $CONDITIONS"   //将mysql中的表导入到hive表t_area
--fields-terminated-by "," //按,分割,首先在hive中将表建好(z字段对应),并按,分割
--lines-terminated-by " "
--target-dir /tmp/aa //临时存放的目录
-m 1
异常:org.apache.hadoop.hive.conf.HiveConf
    Make sure HIVE_CONF_DIR is set correctly
    解决:
    在/etc/profile下面加上:
        HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*
        分布发送到其他主机上 source 一下
    
sqoop export
将hive的数据导出到mysql:是通过hdfs中的路径导入到mysql中
如果需要通过导入指定行的话,需要建立中间表
--driver com.mysql.jdbc.Driver
--table t_area1     //导入到mysql表t_area1
--username root
--password 1234     
--export-dir /user/hive/warehose/t_area           这个文件路径从hdfs上知道
--input-fields-terminated-by ‘,‘ 是以,分割的  

以上是关于Sqoop安装及基本使用的主要内容,如果未能解决你的问题,请参考以下文章

大数据之非常详细Sqoop安装和基本操作

Sqoop基本语法简介

入门大数据---Sqoop基本使用

Sqoop学习笔记_Sqoop的基本使用一

SQOOP安装及使用

SQOOP安装及使用