使用Sqoop导入数据到HDFS

Sqoop把关系型数据库(这里以mysql为例)的数据导入到HDFS中,主要分为两步

          *得到元数据(mysql数据库中的数据)

          *提交map


这样流程就很清晰了,首先连接到mysql数据库得到表中的数据,然后进行map任务即可

具体实现为:

bin/sqoop import \
--connect jdbc:mysql://192.168.83.112:3306/test \           *这里将数据库ip和你要导入的数据所在的数据库换成你自己的
--username root \
--password root  \

--table student

根据map任务执行来看,这里如果不指定输出到hdfs的目录的话,会自动在hdfs用户主目录下生成一个与表的名称一致的目录来存放数据,这里默认是会有四个map任务,数据量小,所以这里比较耗时


一般我们需要自己指定存放在hdfs的位置目录和map的个数

扫描二维码关注公众号,回复: 2192334 查看本文章

bin/sqoop import \
--connect jdbc:mysql://192.168.83.112:3306/test \
--username root \
--password root  \
--table student \
--target-dir /user/root/sqoop/import/student \                  *指定导入到hdfs中的位置

--num-mappers 1                                                                  *指定map任务的个数

Sqoop导入数据到HDFS具体执行流程:

      *将命令自动生成相应的java类

      *将java代码编译成jar包

      *执行jar包

      *执行mapreduce(对import来说,只运行map任务)




猜你喜欢

转载自blog.csdn.net/ys_230014/article/details/81060422