大数据系列Sqoop学习笔记
1. Sqoop简介 Apache Sqoop是一种专门为hadoop和比如关系型数据库等结构化数据库之间的高效数据转换一种工具。数据的搬运工Sqoop在大多数自动化数据转换的过程中,依托于数据库相关的Schema描述信息,转换的过程是使用MapReduce来进行的Sqoop目前有两个版本,完全不兼容,Sqoop和Sqoop2.可以通过版本号来进行简单的区分,1.4.x为sqoop或sqoop1,1.99.x为sqoop22. Sqoop数据的导入(import)传统的RDBMS中的数据导入到hbase...从传统数据库获取元数据信息(schema、table、field、field type),把导入功能转换为只有Map的Mapreduce作业,在mapreduce中有很多map,每个map读一片数据,进而并行的完成数据的拷贝。 3. Sqoop数据的导出(export)hbase中的数据导出到rdbms中获取导出表的schema、meta信息,和Hadoop中的字段match;多个map only作业同时运行,完成hdfs中数据导出到关系型数据库中。4. Sqoop的安装准备安装文件 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz解压 tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/重命名 mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop配置环境变量 export SQOOP_HOME=/opt/sqoopexport PATH=$PATH:$SQOOP_HOME/bin修改配置文件 mv sqoop-env-template.sh sqoop-env.sh ==vim sqoop-env.sh== export HADOOP_COMMON_HOME=/opt/hadoopexport HBASE_HOME=/opt/hbaseexport HIVE_HOME=/opt/hiveexport ZOOCFGDIR=/opt/zookeeper/conf因为SQOOP要连接rdbms,所以需要将该数据的驱动jar包添加进sqoop的classpath中,所以将mysql的jar包上传至$SQOOP_HOME/lib mysql需要mysql-connector-java-5.1.32.jar以上版本支持。5. Sqoop的基本操作列出数据库sqoop-list-databases --connect jdbc:mysql://uplooking05:3306/ --username root --password root 列出所有的表sqoop-list-tables --connect jdbc:mysql://uplooking05:3306/up1 --username root --password root 6. mysql中的数据导入到hdfs中sqoop-import --connect jdbc:mysql://uplooking05/up2 --username root --password root --table user ==在执行导入的过程中,一定要确定RDBMS中的表中有pk==--target-dir:导入到自定义的hdfs目录中--append : 追加导入-m :指定maptask的数量--username :数据库的用户名--password :数据库的密码--connect :数据库的url--delete-target-dir : 一般与--target-dir联用,与--append是==互斥==的--last-value : 跳过几行数据,追加其余所有的数据--where:根据条件进行导入 ...