通过sqoop将hdfs数据导入MySQL
简介:Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
一、查看hdfs数据查看,参考
[root@hadoop001 opt]# hadoop fs -text emp.txt /data/emp.txt
1250 yangyamei doctor
1251 zhangzhenxing doctor
1261 zhangjun nurse
1265 Bob doctor
2000 spark nurse
参考:https://www.cnblogs.com/iloverain/p/8809950.html
二、MySQL数据库创建接收数据的空表emp_demo
mysql> select * from emp_demo;
Empty set (0.00 sec) //表结构 mysql> desc emp_demo;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| EMP_NO | int(11) | YES | | NULL | |
| EMP_NAME | varchar(255) | YES | | NULL | |
| Job | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
三、开始导出数据到MySQL
sqoop export \
--connect jdbc:mysql://hadoop001:3306/sqoop \
--username root \
--password 123456 \
--table emp_demo \
--export-dir /data/emp.txt \
-m 1 \
--verbose \
--fields-terminated-by '\t'
–table 指定MySQL接收数据的表
–export-dir 指定从HDFS那个路径下导出数据
–verbose 打印更多信息
–fields-terminated-by ‘\t’ 指定分隔符为\t 记住必须指定分隔符否则报错
四、查看数据是否已经进入
mysql> select * from emp_demo;
+--------+---------------+--------+
| EMP_NO | EMP_NAME | Job |
+--------+---------------+--------+
| 1250 | yangyamei | doctor |
| 1251 | zhangzhenxing | doctor |
| 1261 | zhangjun | nurse |
| 1265 | Bob | doctor |
| 2000 | spark | nurse |
+--------+---------------+--------+
工作总结:
1.查询表
./sqoop list-tables --connect jdbc:mysql://192.168.5.129:3306/hadoop --username root --password 111111
2.hdfs导出到mysql中
sqoop export --connect jdbc:mysql://192.168.5.129:3306/hadoop --table emp_demo --username root --password 111111 --export-dir /opt/hadoop/hive/ --input-fields-terminated-by '\t'
sqoop export --connect jdbc:mysql://192.168.5.129:3306/hadoop --table emp_demo --username root --password 111111 --export-dir /user/hive/warehouse/emp --input-fields-terminated-by '\t'
3.mysql导入到hdfs中
sqoop import --connect jdbc:mysql://192.168.5.129:3306/hadoop --username root --password 111111 --table emp_demo --fields-terminated-by '\t' -m 1
4.导入报错
// :: WARN hdfs.DataStreamer: Excluding datanode DatanodeInfoWithStorage[192.168.5.132:,DS-f3e2c26c-28a0--b768-cf1585d38ba5,DISK]
关闭防火墙
5.将数据文件上传至hdfs
hadoop fs -put <local file or dir> <hdfs dir> --hdfs dir 一定要存在,否则命令不会执行

6.sqoop定位数据行数
-Dorg.apache.sqoop.export.text.dump_data_on_error=true
参考:https://blog.csdn.net/qq_20064245/article/details/78352973
sqoop export -Dorg.apache.sqoop.export.text.dump_data_on_error=true ${sqoop_connect_param_oneline} --export-dir
通过sqoop将hdfs数据导入MySQL的更多相关文章
- 使用MapReduce将HDFS数据导入Mysql
使用MapReduce将Mysql数据导入HDFS代码链接 将HDFS数据导入Mysql,代码示例 package com.zhen.mysqlToHDFS; import java.io.DataI ...
- 利用sqoop将hive数据导入导出数据到mysql
一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令 # sqoop list-databases --connect jdbc:mysql://localhost:3306 ...
- sqoop将oracle数据导入hdfs集群
使用sqoop将oracle数据导入hdfs集群 集群环境: hadoop1.0.0 hbase0.92.1 zookeeper3.4.3 hive0.8.1 sqoop-1.4.1-incubati ...
- 将Excel数据导入mysql数据库的几种方法
将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL[转]
使用MySQL Migration Toolkit快速将Oracle数据导入MySQL上来先说点废话本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoDB非 ...
- SQLServer2005数据导入Mysql到详细教程
如果转载请注明转载地址,谢谢. SQL SERVER数据导入MYSQL目录 1.Navicat for MySQL 版本10.0.9 2.创建目标数据库 3.创建正确的SQL SERVER数据库ODB ...
- Excel连接到MySQL,将Excel数据导入MySql,MySQL for Excel,,
Excel连接到MySQL 即使当今时代我们拥有了类似微软水晶报表之类的强大报表工具和其他一些灵活的客户管 理应用工具,众多企业在分析诸如销售统计和收入信息的时候,微软的Excel依然是最常用的工具. ...
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
MySQL GUI Tools中的MySQL Migration Toolkit可以非常方便快捷的将Oracle数据导到MySQL中,该软件可以在http://dev.mysql.com/downlo ...
- SQL Server 数据导入Mysql具体教程
SQLServer2005数据导入Mysql到具体教程(測试) SQL SERVER数据导入MYSQL文件夹 1.Navicat for MySQL 版本号10.0.9 2.创建目标数据库 3.创 ...
随机推荐
- VB6 Collection实现百万文本去重
上一篇数组的去重说到,对于千次计算以上的去重基本上特别的吃力,这里就介绍一种方法,通过Collection集合对象来过滤重复. Option Explicit '//By: InkHin '// 参考 ...
- alias命令详解
1.简介: 设置指令的别名,用户可利用alias,自定指令的别名.若仅输入alias,则可列出目前所有的别名设置. alias的效力仅及于该次登入的操作.若要每次登入是即自动设好别名,可在/etc/p ...
- camstart API 服务器负载均衡
docker 安装haproxy docker pull haproxy 创建配置文件到:D:/docker/haproxy 配置文件内容如下 # 配置文件 # 全局配置 global # 设置日志文 ...
- IDE 设备(磁盘/CD-ROM)配置不正确。“ide1:1”上具有一个 IDE 从设备,但没有主设备。此配置在虚拟机中无法正常运行。请使用配置编辑器将磁盘/CD-ROM 从“ide1:1”移到“ide1:0”。
开启vmware报这个错: IDE 设备(磁盘/CD-ROM)配置不正确.“ide1:1”上具有一个 IDE 从设备,但没有主设备.此配置在虚拟机中无法正常运行.请使用配置编辑器将磁盘/CD-ROM ...
- 一.javascript核心部分:1.词法结构
本文作为个人学习笔记,一直也没有重视javascript的系统学习(javascript是最容易被人忽视的语言),我都是要用的时候百度一下查找下资料开始用,但没有系统的,学习,和整理过javascri ...
- Windows下phpstudy配置tp5的nginx时遇到的奇葩问题
nginx原来的配置: hosts已经配置好127.0.0.1 到tpdev1.net这个域名 最后结果 No input file specified. 解决方法: 找到原因了,竟然是root的分隔 ...
- 《Orange’s》保护模式
保护模式 完整代码 ; ========================================== ; pmtest1.asm ; 编译方法:nasm pmtest1.asm -o pmte ...
- CCS 6新建文件自动生成注释
对于CCS6,可以通过配置,达到新建源文件或者头文件时,自动生成适当的注释: 一.新建源文件自动生成配置. 在某个文件夹下右击选择 New - Source File. 点击 Configure,再选 ...
- C#字符串和数组互转
string str = "a,b,c,d,e"; string[] strArray = str.Split(','); //字符串转数组 ...
- java集合类,HashMap,ArrayList
集合类 Collection LinkedList.ArrayList.HashSet是非线程安全的, Vector是线程安全的; ArrayXxx:底层数据结构是数组,连续存放,所以查询快,增删慢. ...