Sqoop数据ETL工具(九)
其他
2018-11-26 08:51:07
阅读次数: 0
19.9 使用Sqoop将数据导入MySQL
要求:
MySQL服务启动且运行正常,命令为:
[zkpk@master ~]$ /etc/init.d/mysqld status
Hadoop集群启动且运行正常,命令为:
将前面生成的实时数据从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