大数据学习——Sqoop入门使用
来源:互联网 发布:万网域名信息查询 编辑:程序博客网 时间:2024/04/29 09:25
Sqoop
概述
Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
架构示意图:
Sqoop整合了Hive、Hbase和Oozie,通过map-reduce任务来传输数据,从而提供并发特性和容错。
网址:http://sqoop.apache.org/
手册地址:http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html
Sqoop1与Sqoop2
- 两个不同的版本,完全不兼容
- 版本号划分区别,Apache版本:1.4.x(Sqoop1); 1.99.x(Sqoop2) CDH版本 : Sqoop-1.4.3-cdh4(Sqoop1) ; Sqoop2-1.99.2-cdh4.5.0 (Sqoop2)
- Sqoop2比Sqoop1的改进
- 引入Sqoop server,集中化管理connector等
- 多种访问方式:CLI,Web UI,REST API
- 引入基于角色的安全机制
Sqoop1架构
Sqoop2架构
Sqoop1与Sqoop2比较
安装
到 http://mirror.bit.edu.cn/apache/sqoop/1.4.6/ 下载,注意与hadoop的版本号对应。
wget http://mirror.bit.edu.cn/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gzmv sqoop-1.4.6.tar.gz /homecd /hometar -zxf sqoop-1.4.6.tar.gzrm sqoop-1.4.6.tar.gzcd /home/sqoop-1.4.6/lib/# mysqlwget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.10/mysql-connector-java-5.1.10.jar# postgrewget https://jdbc.postgresql.org/download/postgresql-9.4-1206-jdbc4.jar
配置环境变量
vim /etc/profile
#sqoopexport SQOOP_HOME=/home/sqoop-1.4.6export PATH=$PATH:$SQOOP_HOME/bin
source /etc/profile
配置文件
cd /home/sqoop-1.4.6/conf/cp sqoop-env-template.sh sqoop-env.shvim sqoop-env.sh
内容:
#Set path to where bin/hadoop is availableexport HADOOP_COMMON_HOME=/home/hadoop/hadoop-2.7.3#Set path to where hadoop-*-core.jar is availableexport HADOOP_MAPRED_HOME=/home/hadoop/hadoop-2.7.3#set the path to where bin/hbase is available#export HBASE_HOME=#Set the path to where bin/hive is available#export HIVE_HOME=#Set the path for where zookeper config dir is#export ZOOCFGDIR=
vim /home/sqoop-1.4.6/bin/configure-sqoop
注释掉下面部分(如果使用HCatalog Accumulo等则不用此操作)## Moved to be a runtime check in sqoop.if [ ! -d "${HCAT_HOME}" ]; then echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail." echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'fiif [ ! -d "${ACCUMULO_HOME}" ]; then echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail." echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'fi
测试
sqoop versionsqoop import --help
使用示例
简单示例:
sqoop import --connect jdbc:mysql://ip:3306/metastore --username hiveuser --password redhat --table TBLS
通过文件配置参数:
sqoop --options-file /users/homer/work/import.txt --table TEST
import.txt
import--connectjdbc:mysql://192.168.56.121:3306/metastore--usernamehiveuser--password redhat
使用说明
测试连接
sqoop list-databases --connect jdbc:postgresql://ip/testdb --username root --P
显示表
sqoop list-tables --connect jdbc:postgresql://ip/testdb --username root --P
从关系数据库导HDFS
sqoop import --connect jdbc:postgresql://ip/testdb --username root --P --table fin_cashier_order --target-dir/user/hadoop/databases/ssa/fin_cashier_order -m 4
使用 sql 语句
$ sqoop import --connect jdbc:mysql://IP:3306/metastore --username hiveuser --password redhat --query 'SELECT * from TBLS where \$CONDITIONS ' --split-by tbl_id -m 4 --target-dir /user/hive/result上面命令通过 -m 1 控制并发的 map 数。
direct
$ sqoop import --connect jdbc:mysql://ip:3306/metastore --username hiveuser --password redhat --table TBLS --delete-target-dir --direct --default-character-set UTF-8 --target-dir /user/hive/result
指定文件输出格式
sqoop import --connect jdbc:mysql://ip:3306/metastore --username hiveuser --password redhat --table TBLS --fields-terminated-by"\t" --lines-terminated-by "\n" --delete-target-dir --target-dir /user/hive/result
从HDFS导到关系数据库(未验证)
sqoop export --connect jdbc:mysql://hadoop003:3306/ssa --table fin_cashier_order2 --username root--password ****** --export-dirhdfs://jrtestcluster/user/hadoop/databases/ssa/fin_cashier_order/
其它参数:
1 0
- 大数据学习——Sqoop入门使用
- 大数据学习笔记(十四)-Sqoop
- 大数据学习——Mahout入门
- 大数据学习——HBase 入门
- 大数据(八) - Sqoop
- 1.Sqoop入门学习
- 大数据学习入门
- 大数据学习入门
- 大数据企业学习篇04-----Sqoop浅析
- 【hadoop Sqoop】数据迁移工具 sqoop 入门
- sqoop使用入门
- Sqoop数据转移学习
- 大数据--sqoop/hive搭建
- Sqoop实践——原始数据库到大数据时代必备神器
- Sqoop学习笔记 --- 使用Sqoop 对 Oracle 做数据迁移 到 PostgreSQL
- 大数据学习-hadoop入门
- Sqoop数据导入大数据平台实例
- (大数据之sqoop)sqoop的安装及常用操作
- 关于Servlet中forward的执行流程
- Java并发——volatile
- Java空字符串与null区别
- python搭建
- PowerDesigner 设置Table表的颜色(例如:PK(主键),FK(外键),字体大小等)
- 大数据学习——Sqoop入门使用
- C++ vector对象的学习与整理
- jvm运行机制
- Android studio快速取得app的SHA1值
- struts2中constant参数设置
- JavaScript中的变量声明
- git 总结
- 2017年2月大数据精华文章集锦
- 【学习Android NDK开发】native code通过JNI调用Java方法