Sqoop数据ETL工具(九)

19.9 使用Sqoop将数据导入MySQL

要求:

MySQL服务启动且运行正常,命令为:

[zkpk@master ~]$ /etc/init.d/mysqld status

Hadoop集群启动且运行正常,命令为:

[zkpk@master ~]$ jps

将前面生成的实时数据从HDFS导入到MySQL中,步骤如下:

以下操作都是在MySQL交互客户端执行。

(1)登录MySQL

mysql -uhadoop -phadoop

(2)创建数据库

查看test数据库是否存在:

show databases;

如果不存在就创建:

create database test;

(2)创建表

create TABLE `test`.`uid_cnt`

(`ts` varchar(255) DEFAULT NULL,

`uid` varchar(255) DEFAULT NULL,

`keyword` varchar(255) DEFAULT NULL,

`rank` int(11) DEFAULT NULL,`ord` int(11) DEFAULT NULL,

`url` varchar(255) DEFAULT NULL) 

ENGINE=InnoDB DEFAULT CHARSET=utf8;

提示:语句中的引号是反引号`,不是单引号’。

创建成功后,退出MySQL。

(3)导入数据

进入sqoop安装主目录:

[zkpk@master ~]$ cd /home/zkpk/sqoop-1.4.5.bin__hadoop-2.0.4-alpha

导入命令:

[zkpk@master sqoop-1.4.5.bin__hadoop-2.0.4-alpha]$ 

bin/sqoop export --connect jdbc:mysql://192.168.204.135:3306/test --username hadoop --password hadoop --table uid_cnt --export-dir '/sogou/sogou.100h'  --fields-terminated-by '\t'

 

注意:红色IP部分需要使用HadoopMaster节点对应的IP地址

代码解释:

bin/sqoop export   ##表示数据从hive复制到mysql中\

--connect jdbc:mysql://192.168.1.113:3306/test \

--username root \

--password admin \

--table bb   ##mysql中的表,即将被导入的表名称 \

--export-dir '/user/hive/warehouse/sogou.db/uid_cnt'   ##hive中被导出的文件 \

--fields-terminated-by '\t'    ##hive中被导出的文件字段的分隔符

 

(4)导出数据

 

# 导入HDFS

 

bin/sqoop import --connect jdbc:mysql://192.168.204.135:3306/test --username hadoop --password hadoop  --table uid_cnt -m 1

 

hadoop fs -cat /user/zkpk/uid_cnt/part-m-00000(默认到/user/zkpk)

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_42325841/article/details/81483028