Hadoop Sqoop应用案例

102 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

image.png

环境

  • CentOS 6.8 64位 1核 2GB

  • JDK 1.7.0_75 64 位

  • Hadoop 1.1.2

  • Hive 0.12.0

  • Mysql 5.6.21

  • Sqoop 1.4.5

MySql数据导入到HDFS

  • 查看 mysql 中的数据表
mysql -uhive -phive
mysql> show databases;
mysql> use hive;
mysql> show tables;
mysql> select TBL_ID, CREATE_TIME, DB_ID, OWNER, TBL_NAME,TBL_TYPE from TBLS;
+--------+-------------+-------+--------+------------+---------------+
| TBL_ID | CREATE_TIME | DB_ID | OWNER  | TBL_NAME   | TBL_TYPE      |
+--------+-------------+-------+--------+------------+---------------+
|      1 |  1621827317 |     1 | yohann | test       | MANAGED_TABLE |
|      6 |  1625316873 |     1 | yohann | mysql2hive | MANAGED_TABLE |
+--------+-------------+-------+--------+------------+---------------+
2 rows in set (0.00 sec)
  • sqoop 列出 mysql 中所有数据库
$ sqoop list-databases --connect jdbc:mysql://hadoop:3306/ --username hive --password hive
information_schema
hive
mysql
performance_schema
test
  • 把 hive 数据库 TBLS 表中数据导入到 HDFS
$ sqoop import --connect jdbc:mysql://hadoop:3306/hive --username hive --password hive --table TBLS -m 1
  • 查看导出结果
$ hadoop fs -ls /user/yohann/TBLS
Found 3 items
-rw-r--r--   1 yohann supergroup          0 2021-07-04 16:36 /user/yohann/TBLS/_SUCCESS
drwxr-xr-x   - yohann supergroup          0 2021-07-04 16:36 /user/yohann/TBLS/_logs
-rw-r--r--   1 yohann supergroup        120 2021-07-04 16:36 /user/yohann/TBLS/part-m-00000
$ hadoop fs -cat /user/yohann/TBLS/part-m-00000
1,1621827317,1,0,yohann,0,1,test,MANAGED_TABLE,null,null

MySql导出表数据到Hive

  • 启动 metastore 和 hiveserver
$ hive --service metastore &
$ hive --service hiveserver &
  • 查看启动进程
$ jps
10873 RunJar
10741 RunJar

确保以上进程都存在。

  • 导出
$ hadoop fs -rmr /user/yohann/TBLS
$ sqoop import --connect jdbc:mysql://hadoop:3306/hive --username hive --password hive --table TBLS --hive-table MySql2Hive --hive-import -m 1

导出之前,先把刚刚生成的文件夹删掉

  • 查看导出结果
$ hive
hive> show tables;
mysql2hive
test
hive> desc MySql2Hive;
tbl_id              	bigint              	None
create_time         	int                 	None
db_id               	bigint              	None
last_access_time    	int                 	None
owner               	string              	None
retention           	int                 	None
sd_id               	bigint              	None
tbl_name            	string              	None
tbl_type            	string              	None
view_expanded_text  	string              	None
view_original_text  	string              	None
Time taken: 0.152 seconds, Fetched: 11 row(s)

登录 hive,在 hive 中查看该表。