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)