Sqoop学习笔记:Sqoop安装及使用

Sqoop的安装测试环境hive-1.1.0-cdh5.14.0hbase-1.2.0-cdh5.14.0hadoop-2.6.0-cdh5.14.0zookeeper-3.4.5-cdh5.14.0jdk1.8.0_171sqoop-1.4.6-cdh5.14.01.解压Sqoop到/opt/software下2.拷贝mysql-connector-java-5.1.40...
摘要由CSDN通过智能技术生成

Sqoop的安装

测试环境

hive-1.1.0-cdh5.14.0
hbase-1.2.0-cdh5.14.0
hadoop-2.6.0-cdh5.14.0
zookeeper-3.4.5-cdh5.14.0
jdk1.8.0_171
sqoop-1.4.6-cdh5.14.0

1.解压Sqoop到/opt/software下
2.拷贝mysql-connector-java-5.1.40-bin和java-json.jar到sqoop-1.4.6-cdh5.14.0\lib下
3.配置添加环境变量,并使环境变量生效

HIVE_CONF_DIR=/opt/software/hive-1.1.0-cdh5.14.0
SQOOP_HOME=/opt/software/sqoop-1.4.6-cdh5.14.0
HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
HADOOP_COMMON_HOME=/opt/software/hadoop-2.6.0-cdh5.14.0
HADOOP_MAPRED_HOME=/opt/software/hadoop-2.6.0-cdh5.14.0
HADOOP_CLASSPATH=$HIVE_HOME/lib/*

export JAVA_HOME
export HIVE_CONF_DIR
export HADOOP_CLASSPATH
export HADOOP_COMMON_HOME
export HADOOP_MAPRED_HOME

PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:$PIG_HOME/bin:$SQOOP_HOME/bin:$ECLIPSE_HOME:$HADOOP_HOME/sbin:$MAVEN_HOME/bin:$PROTOBUF_HOME/bin:$PHONEIX_HOME/bin:$PATH
export PATH

4.找到 sqoop-env-template.sh,修改为 sqoop-env.sh,并将相关变量的值配上对应路径

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

5.检查sqoop是否正常运行

Sqoop version

Sqoop原理

导入:在导入开始之前,Sqoop使用JDBC来检查将要导入的表,检索出表中所有的字段和字段的数据类型,这些数据类型将会被映射成Java的数据类型,生成反序列化代码和配置InputFormat后,Sqoop将Job发送到集群,使用只有Map的MapReduce任务执行查询并将ResultSet数据反序列化到生成类的实例,这些数据会被保存在SequenceFile文件中,或者在写到HDFS前被转换成分割的文本。在向HDFS导入数据时,重要的是确保访问的是数据源的一致性快照。

导出:将HDFS作为数据源,远程的数据库作为目标,在导出的时候必须在数据库中创建一张用于接收数据的目标表。在执行导出之前,Sqoop会使用JDBC作为导出,然后Sqoop会根据目标表的定义生成一个Java类,这个类能够从文本中解析记录,并且向表中插入类型合适的值。接着启动MapReduce任务,从HDFS中读取数据文件,使用生成的类解析记录,通过JDBC产生一批insert语句,向目标表插入记录,该过程使用多线程操作。在启动导出作业前,应当在数据库中设置表的约束(例如定义一个主键),以保证数据行的唯一性,并且,在导出过程完成前,不要对目标表进行操作以保证数据的完整和一致。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值