Sqoop简介
Sqoop作用在hadoop(hive)与传统的数据库之前的数据传递,可以将一个关系型数据库中的数据导入到HDFS中,也可以将HDFS的数据导入到关系型数据库中.
Sqoop原理
将导入导出命令翻译成mapreduce
翻译出的mapreduce中主要对inputformat和outputformat进行定制
读出数据直接写到mysql
下载解压
修改配置
Conf/sqoop-env.sh中:修改为相应的目录
export HADOOP_COMMON_HOME=/opt/module/hadoop-2.7.2.
export HADOOP_MAPRED_HOME=/opt/module/hadoop-2.7.2.
export HIVE_HOME=/opt/module/hive
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10·
export ZOOCFGDIR=/opt/module/zookeeper-3.4.10
export Hbase_HOME=/opt/module/ hbase
拷贝JDBC驱动
将mysqljar包拷贝到lib目录下
验证Sqoop
Bin/sqoop list-databases –connect jdbc:mysql://hadoop120:3306/ --username root –password 000000
Sqoop简单实用案例
Sqoop中”导入”指从关系型数据库导入大数据集群
Sqoop中”导出”指从大数据集群导入关系型数据库
案例:
- mysql创建数据库,创建表,导入数据
- 选择不同的导入方式
-
- Connect参数指定到数据库
Table参数指定表
Target-dir指定hdfs目录
Delete-target参数:如果有目标目录的话,删除原来目录(使用的时候要谨慎)
Fields-terminated参数:指定分隔符
-
- 查询导入
最后的$CONDITIONS必须加
-
- 按列导入
这个东西感觉没什么用 (直接写SQL指定列和where不就都有了?)
- 将数据从mysql导入hive
- 如果hive中没有指定的表,会在临时的default下自己创建(不建议这样)
- 使用—hive-database dbname指定数据库
- 将数据从mysql导入hbase
- 即使使用了—hbase-create-table参数,也可能因为版本问题创建表不成功
- Hive或hdfs数据导出到mysql



