Sqoop

一、Sqoop介绍
1、Sqoop:SQL-to-Hadoop 传统数据库与Hadoop间数据同步工具 利用Mapreduce分布式批处理,加快了数据传输速度,保证了容错性。
2、sqoop import 原理:从传统数据库获取元数据信息(schema、table、field、field type),把导入功能转换为只有Map的Mapreduce作业,在mapreduce中有很多map,每个map读一片数据,进而并行的完成数据的拷贝。
3、sqoop export原理: 获取导出表的schema、meta信息,和Hadoop中的字段match;多个map only作业同时运行,完成hdfs中数据导出到关系型数据库中。

二、Sqoop安装配置
1、上传解压:

tar -zxvf sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz -C /usr/local/

2、配置环境

vi /etc/profile

export SQOOP_HOME = /usr/local/sqoop-1.4.4 
export PATH=$PATH:$JAVA_HOME/bin;$HADOOP_HOME/bin:$SQOOP_HOME/bin

source /etc/profile

3、重命名配置文件

在$SQOOP_HOME/conf中执行命令
mv sqoop-env-template.sh sqoop-env.sh

4、修改配置文件sqoop-env.sh

在$SQOOP_HOME/conf中执行命令

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

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

5、添加数据库驱动

把MySQL的JDBC驱动包复制到Sqoop的lib目录下

三、Sqoop导入导出HDFS的操作

  1. 导入
    1.1. 普通导入
sqoop import --connect jdbc:mysql://192.168.4.101:3306/mysql --username root --password root --table user --columns ‘name, age’ –m 1 <表没有主键时,需要指定map数量为1>

1.2. 指定输出路径、指定数据分隔符

sqoop import --connect jdbc:mysql://192.168.4.101:3306/test --username root --password root --table user --target-dir ‘/sqoop/d1’ --fields-terminated-by '\t’

1.3. 指定Map数量 -m

sqoop import --connect jdbc:mysql://192.168.4.101:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值