@songlaf
2016-05-26T19:36:17.000000Z
字数 2062
阅读 737
北风网大数据培训
Sqoop主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
#修改/etc/profile,增加sqoop的环境变量export SQOOP_HOME=/opt/modules/sqoop-1.4.5-cdh5.3.6export PATH="$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$SQOOP_HOME/bin"#配置sqoop的配置文件sqoop-env.sh(复制文件sqoop-env-template.cmd)#Set path to where bin/hadoop is available#设置Hadoop的目录export HADOOP_COMMON_HOME=/opt/modules/hadoop-2.5.0-cdh5.3.6#Set path to where hadoop-*-core.jar is available#设置yarn的目录export HADOOP_MAPRED_HOME=/opt/modules/hadoop-2.5.0-cdh5.3.6#set the path to where bin/hbase is available#export HBASE_HOME=#Set the path to where bin/hive is available#设置hive的目录export HIVE_HOME=/opt/modules/apache-hive-0.13.1-bin#Set the path for where zookeper config dir is#设置zookeper的目录export ZOOCFGDIR=/opt/modules/zookeeper-3.4.5-cdh5.3.6/conf
#列出Mysql的数据库bin/sqoop list-databases \--connect jdbc:mysql://njt.song.s0:3306/ \--username root \--password 123456
sqoop import \--connect jdbc:mysql://njt.song.s0:3306/test \--username root \--password 123456 \--table my_user \--target-dir /output2/ \--fields-terminated-by ',' \-m 1
#参数说明:-connect jdbc:mysql://ip:3306/sqoop ##告诉jdbc,连接mysql的url--username sqoop ##连接mysql的用户名--password sqoop ##连接mysql的密码--table test ##从mysql导出的表名称--fields-terminated-by '\t' ##指定输出文件中的行的字段分隔符-m 1 ##复制过程使用1个map作业
#查看执行结果bin/hdfs dfs -cat /output2/part-m-00000

bin/sqoop import \--connect jdbc:mysql://njt.song.s0:3306/test \--username root \--password 123456 \--table my_user \--delete-target-dir \--hive-import \--hive-database db_test \--hive-table my_user_test \--fields-terminated-by ','
参数说明: Hive--hive-database Hive数据库--fields-terminated-by 字段分割--hive-table hive表--as-parquetfile--compress--compresion-codec org.apache.hadoop.io.compress.DefaultCodecorg.apache.hadoop.io.compress.SnappyCodec
执行结果

hive到处到RDMS其实其实就是从HDFS导入到RDBMS
Hive表的数据如下:
OK
1,tom NULL
2,robi NULL
3,jack NULL
4,hua NULL
bin/sqoop export \--connect jdbc:mysql://njt.song.s0:3306/test \--username root \--password 123456 \--table wu \--export-dir /user/hive/warehouse/db_test.db/wu/ \--input-fields-terminated-by ','
执行结果
