什么是Sqoop?
Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
摘自百度百科
从MySQL到HDFS
sqoop import --connect jdbc:mysql://<主机名称>:3306/<数据库名称> --username <用户名>--password <密码> --table <表名> --warehouse-dir=<导入HDFS的文件夹地址>
例子:
[root@nn ~]# sqoop import --connect jdbc:mysql://dn2:3306/training --username moni--password 123456 --table cityByCountry --warehouse-dir=/user/hive/warehouse
之后会出现一个MaReduce的作业,当执行完就可以在HIVE中的default库上可以看到。
注意:在导入时可能会出现permission denied的错误,在sqoop前面添加sudo -u <导入hdfs文件夹的所属人>,我这里是文件所属人是hive,所以sudo -u hive。
从MySQL到HIVE表
sudo -u hive sqoop import --connect jdbc:mysql://<主机名称>:3306/<数据库名称> --username <用户名> --password <密码>--table <表名称> --hive-import --hive-database <导入数据库>
例子:
[root@nn ~]# sudo -u hive sqoop import --connect jdbc:mysql://dn2:3306/movielens --username moni--password 123456 --table user --hive-import --hive-database movielens