sqoop配置与简单应用

Sqoop = SQL- to-Hadoop,是易用、并行的导入导出工具。

一. 安装

1.1 安装并设置环境变量
解压缩,重命名为sqoop

sudo gedit /etc/profile

文末添加安装路径,别忘了source一下

export SQOOP_HOME=/home/hduser/sqoop
export PATH=$SQOOP_HOME/bin:$PATH

1.2 修改配置文件sqoop-env.sh

mv  sqoop-env-template.sh  sqoop-env.sh

配置文件内容

export HADOOP_COMMON_HOME=/home/hduser/hadoop-2.2.0
export HADOOP_MAPRED_HOME=/home/hduser/hadoop-2.2.0
export HBASE_HOME=/usr/local/hbase
export HIVE_HOME=/home/hduser/hive
export ZOOCFGDIR=/usr/local/zk

1.3 将JDBC驱动复制到sqoop的lib目录
mysql的jdbc驱动mysql-connector-java-5.1.10.jar复制到sqoop项目的lib目录下

1.4 启动Hadoop集群

start-all.sh

二 . sqoop 小实例

2.1 Sqoop入门-使用方法
用法: sqoop COMMAND [ARGS]
支持的指令(command):

        codegen             生成关系数据库表映射的Java文件
        create-hive-table   生成与关系数据库对应的 Hive表
        export              导出hdfs目录到关系数据库中
        import              导入关系数据库表到HDFS
        import-all-tables   导入关系数据库所有表到HDFS
        list-databases      显示关系数据库所有的数据库
        list-tables         显示关系数据库所有的表  
        eval                执行SQL并显示结果
        version             显示版本信息

2.2 Mysql到Hive–初始化mysql数据库

mysql -uroot -p

create database study;
use study;
create table table1 (id int,name varchar(32) ,primary key(id));
insert into table1 values(1,'n1');
insert into table1 values(2,'n2');
insert into table1 values(3,'n3');
insert into table1 values(4,'n4');
insert into table1 values(5,'n5');

2.3 Mysql到Hive–从Mysql导入数据到Hive

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
flush privileges;
sqoop import --connect jdbc:mysql://node01:3306/study --username root --password ""--table table1 --hive-import --hive-table table1 -m 1 
sqoop import --connect jdbc:mysql://node01:3306/study --username root --password ""  --as-avrodatafile --table table1 --hive-import --hive-table table2 -m 1
sqoop list-databases --connect jdbc:mysql://node01:3306/study --username root --password ""

2.4 Mysql到Hive–查看Hive中导入的数据

hive
select * from products;

导入参数说明:

sqoop import 
--connect jdbc:mysql://node01:3306/study  //Mysql JDBC连接串
--username root      //Mysql用户名
--password 123       //Myql用户密码
--table table1       //Mysql被导出的数据表
--hive-import        //操作类型,导入数据到hive
--hive-table table1  //导入到hive表名
-m 1                 //并行map任务数量

2.5 Hive到Mysql–在Mysql中建立空表

mysql -uroot -p

use study;
create table table2 (id int,name varchar(32));

2.6 Hive到Mysql–从Hive导出数据到Mysql

sqoop export --connect jdbc:mysql://node01:3306/study --username root --password "" --table table2 --export-dir  /user/hive/warehouse/table1 --input-fields-terminated-by '\001'

2.7 Hive到Mysql–Mysql查看导出结果

select * from table2;

Hive导出参数说明:

sqoop export 
--connect jdbc:mysql://node01:3306/study  //Mysql JDBC连接串
--username root                //Mysql用户名
--password 123                 //Myql用户密码
--table table2                     //导入Mysql的数据表
--export-dir  /user/hive/warehouse/table1  //Hive表HDFS路径
--input-fields-terminated-by ‘\001‘                //字段分割符号

2.8 Mysql导入到Hbase

启动HBase

/home/hduser/hbase/bin/start-hbase.sh

导入数据到Hbase

sqoop import --connect jdbc:mysql://node01:3306/study --username root --password 123 --table table1 --hbase-table table1 --hbase-create-table   --hbase-row-key  id --column-family cf

查看导入结果

hbase shell
list
scan "table1"

Mysql到Hbase参数说明:

sqoop import 
--connect jdbc:mysql://node01:3306/study  //Mysql JDBC连接串
--username root         //Mysql用户名
--password 123          //Myql用户密码
--table table1          //Mysql被导出的数据表
--hbase-table table1    //导入到Hbase表名
--hbase-create-table    //自动创建Hbase新表
--hbase-row-key  id     //Hbase新表Key
--column-family cf      //Hbase列族名

你可能感兴趣的:(hadoop)