在上一节我们看了sqoop对单表的操作,如下:https://www.cndba.cn/dave/article/3306
Sqoop MySQL 导入数据到 HDFS
https://www.cndba.cn/dave/article/3305https://www.cndba.cn/dave/article/3306
https://www.cndba.cn/dave/article/3306https://www.cndba.cn/dave/article/3306
这里我们看下sqoop导出整个数据库中的表到HDFS。
1 库中表信息
mysql> use employees
Database changed
mysql> show tables
-> ;
+----------------------+
| Tables_in_employees |
+----------------------+
| current_dept_emp |
| departments |
| dept_emp |
| dept_emp_latest_date |
| dept_manager |
| employees |
| salaries |
| titles |
+----------------------+
8 rows in set (0.00 sec)
2 导入全库表
这里有两种语法,第一种是使用之前单表操作的import,第二种是使用import-all-tables,它是强制性的,在该数据库中的每个表必须有一个主键字段。
https://www.cndba.cn/dave/article/3306
https://www.cndba.cn/dave/article/3306https://www.cndba.cn/dave/article/3306
2019-03-03 01:52:59,211 ERROR tool.ImportAllTablesTool: Error during import: No primary key could be found for table current_dept_emp. Please specify one with --split-by or perform a sequential import with '-m 1'.
不过可以通过设置-m 1来解决这个错误。https://www.cndba.cn/dave/article/3306
https://www.cndba.cn/dave/article/3306
[dave@www.cndba.cn ~]$ sqoop import-all-tables --connect jdbc:mysql://192.168.56.2:3306/employees --username root --m 1 -P
Warning: /home/hadoop/sqoop/../hbase does not exist! HBase imports will fail.
Please set $HBASE_HOME to the root of your HBase installation.
Warning: /home/hadoop/sqoop/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /home/hadoop/sqoop/../accumulo does not