我有一个大的 mysql 表,我想将它转移到 Hadoop/Hive 表。是否有标准的命令或技术可以将一个简单(但很大)的表从 Mysql 传输到 Hive?该表主要存储分析数据。
2 回答
首先下载mysql-connector-java-5.0.8并将jar放到Sqoop的lib和bin文件夹中
在 Hive中使用与mysql 中一样的确切字段名称和类型创建表定义
sqoop import --verbose --fields-terminated-by ',' --connect jdbc:mysql://localhost/test --table employee --hive-import --warehouse-dir /user/hive/warehouse --fields -terminated-by ',' --split-by id --hive-table 员工
测试 - 数据库名称
员工 - 表名(存在于测试中)
/user/hive/warehouse - HDFS 中必须导入数据的目录
--split-by id - id 可以是表'employee'的主键
--hive-table employee - 其定义存在于 Hive 中的员工表
Sqoop 用户指南(学习 Sqoop 的最佳指南之一)
Apache Sqoop是一个解决这个问题的工具:
Apache Sqoop(TM) 是一种工具,设计用于在 Apache Hadoop 和结构化数据存储(如关系数据库)之间高效传输批量数据。