@songlaf
2016-05-26 19:36
字数 2062
阅读 585
北风网大数据培训
Sqoop主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
#修改/etc/profile,增加sqoop的环境变量
export SQOOP_HOME=/opt/modules/sqoop-1.4.5-cdh5.3.6
export 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.DefaultCodec
org.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 ','
执行结果