简介: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的更多相关文章

  1. 使用MapReduce将HDFS数据导入Mysql

    使用MapReduce将Mysql数据导入HDFS代码链接 将HDFS数据导入Mysql,代码示例 package com.zhen.mysqlToHDFS; import java.io.DataI ...

  2. 利用sqoop将hive数据导入导出数据到mysql

    一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令  #  sqoop list-databases --connect jdbc:mysql://localhost:3306 ...

  3. sqoop将oracle数据导入hdfs集群

    使用sqoop将oracle数据导入hdfs集群 集群环境: hadoop1.0.0 hbase0.92.1 zookeeper3.4.3 hive0.8.1 sqoop-1.4.1-incubati ...

  4. 将Excel数据导入mysql数据库的几种方法

    将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...

  5. 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL[转]

    使用MySQL Migration Toolkit快速将Oracle数据导入MySQL上来先说点废话本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoDB非 ...

  6. SQLServer2005数据导入Mysql到详细教程

    如果转载请注明转载地址,谢谢. SQL SERVER数据导入MYSQL目录 1.Navicat for MySQL 版本10.0.9 2.创建目标数据库 3.创建正确的SQL SERVER数据库ODB ...

  7. Excel连接到MySQL,将Excel数据导入MySql,MySQL for Excel,,

    Excel连接到MySQL 即使当今时代我们拥有了类似微软水晶报表之类的强大报表工具和其他一些灵活的客户管 理应用工具,众多企业在分析诸如销售统计和收入信息的时候,微软的Excel依然是最常用的工具. ...

  8. 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL

    MySQL GUI Tools中的MySQL Migration Toolkit可以非常方便快捷的将Oracle数据导到MySQL中,该软件可以在http://dev.mysql.com/downlo ...

  9. SQL Server 数据导入Mysql具体教程

    SQLServer2005数据导入Mysql到具体教程(測试) SQL SERVER数据导入MYSQL文件夹   1.Navicat for MySQL 版本号10.0.9 2.创建目标数据库 3.创 ...

随机推荐

  1. MongoDB 集合(Collection)对应的物理文件

    dbpath下是清一色的collection-n-***与index-n-***开头的物理文件,如何知道某一个集合与其对应与其对应的物理文件? db.collection_name.stats() 返 ...

  2. Maven打包后的文件存在中文乱码

    发现打包的js文件虽然是UTF-8格式的编码,但是有中文有乱码 可设置jvm的编码,两种方法: 在系统的环境变量中添加一个变量,名为: JAVA_TOOL_OPTIONS, 值为:-Dfile.enc ...

  3. jsp Servlet 文件上传

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  4. 吴裕雄 python深度学习与实践(18)

    # coding: utf-8 import time import numpy as np import tensorflow as tf import _pickle as pickle impo ...

  5. vue-router跳转

    当使用$router.push()操作时,如果路由不加反斜杠会自动替换当前路由的最后一个反斜杠后面部分

  6. python Selenium启动chromedriver

    从网上下载对应版本的chromedriver之后,里面的内容仅为一个.exe文件, 将其解压在chrome的安装目录下(C:\Program Files (x86)\Google\Chrome\App ...

  7. cv2.error: openCV报错

    运行openCV程序,出现了.cv2.error: OpenCV(4.1.0) D:\Build\OpenCV\opencv-4.1.0\modules\imgproc\src\color.cpp:1 ...

  8. vue响应式原理

    vue的响应式,数据模型仅仅是普通的Javascript对象.当你修改它们时,视图会进行更新 那么如何追踪变化: 当把普通的js对象传给vue实例的data选项,Vue将遍历此对象的所有属性,并使用O ...

  9. Wordpress 后台更改网址

    在 `wp_options` 数据库执行下面两条命令 ```sql update wp_options set option_value = 'your_new_url' where option_n ...

  10. $.ajax()参数详解

    来自于<锋利的jQuery(第2版)>. 参数 类型 说明 accepts Map 内容类型发送请求头,告诉服务器什么样的响应会接受返回. 如果accepts设置需要修改,推荐在$.aja ...