Sqoop
Sqoop是一个开源的工具,能用来hadoop(或者说是hive)和关系型数据库(mysql)之间转输,可将数据从hive中导出到mysql,也能从mysql导入到hive。
Sqoop安装
下载sqoop,这里用的是1.4.7版本
http://apache.mirrors.pair.com/sqoop/1.4.7/
解压后,将sqoop安装地址添加到环境变量中
vim ~/.bashrc
export SQOOP_HOME=sqoop安装地址
export path=$path:$SQOOP_HOME/bin
保存后,使用source ~/.bashrc
然后在sqoop的bin目录下,修改configure-sqoop
export HADOOP_HOME=hadoop安装地址
export HIVE_HOME=hive安装地址
保存后,即可使用。
导入
将mysql数据导入到hdfs中
sqoop import --connect jdbc:mysql://localhost/test --username root --password 123 --table test_table -m 1
会在hadoop中生成对应的数据文件,默认目录在/user/用户名/
在hive中建表,表结构要跟数据对应,将数据文件跟表关联
如:
create table test_table(id int , name string);
hdfs将数据文件导入到hive表中
load data inpath '/user/hadoop/test_table' into table test_table;
导出
如上,假设hive和mysql中的表都已建好,要将hive中表的数据导出到mysql的表中。
sqoop export --connect jdbc:mysql://localhost/test --username root --password 123 --table test_table --export-dir /user/hive/test/test_table