1.环境准备:打开Hadoop、Mysql
jps
cd /apps/hadoop/sbin
./start-all.sh
sudo service mysql start
mysql -u root -p

2.数据准备:
#本地下载数据文件
mkdir -p /data/sqoop2
cd /data/sqoop2 wget …
#导入到数据库中(在mysql命令行下)
create database mydb;
use mydb;
create table record(id varchar(100), buyer_id varchar(100), dt varchar(100), ip varchar(100), opt_type varch ar(100));
load data infile '/data/sqoop2/buyer_log' into table record fields terminated by '\t';
select * from record;

3.使用Sqoop查看Mysql数据库,检查Mysql是否可以正常使用
sqoop list-databases  
--connect jdbc:mysql://localhost:3306/  
--username root  
--password strongs
#查看Mysql中的表
sqoop list-tables  
--connect jdbc:mysql://localhost:3306/mydb  
--username root  
--password strongs

4.使用Sqoop将Mysql中数据导入到HDFS/mysqoop2目录里
sqoop import  
--connect jdbc:mysql://localhost:3306/mydb  
--username root  
--password strongs  
--table record -m 1  
--target-dir /mysqoop2
#查看HDFS上/mysqoop2目录下文件内容
hadoop fs -cat /mysqoop2/part-m-00000

5.使用Sqoop将HDFS中数据存入到Mysql数据库中
#新建一张表
use mydb
create table recordfromhdfs like record;
#在另一个窗口开始导数据
sqoop export  
--connect jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8  
--username root  
--password strongs  
--table recordfromhdfs  
--export-dir hdfs://localhost:9000/mysqoop2/part-m-00000
#查看Mysql中的表
select * from recordfromhdfs;

6.使用Sqoop将Mysql中数据导入到HBase中
#启动HBase,并进入命令行模式
cd /apps/hbase/bin
./start-hbase.sh
hbase shell
#在另一个窗口开始导数据
sqoop import  
--connect jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8  
--username root  
--password strongs  
--table record  
--hbase-create-table  
--hbase-table hbaserecord  
--column-family mycf  
--hbase-row-key dt -m 1
#查看HBase中有哪些表
list
#查看表中内容
scan ‘hbaserecord’

7.使用Sqoop将HBase中数据导出到Mysql中
暂时无法直接接口实现,需要借助其他途径去处理,比如:HBase=>HDFS=>Mysql或 HDFS=>Hive=>Mysql
hbase org.apache.hadoop.hbase.mapreduce.Export t1 /t2

8.使用Sqoop将Mysql表中数据导入到Hive中表
#使用vim编辑用户环境变量
vim ~/.bashrc
#hadoop
export HADOOP_HOME=/apps/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/apps/hive/lib/*
#执行source,使用户环境变量生效。
source /etc/profile
#开启Hive,创建表hiverecord
hive
create table hiverecord (id varchar(100),buyer_id varchar(100),dt varchar(100), ip varchar(100), opt_type varchar(100))
row format delimited fields terminated by ',' stored as textfile;
#在linux命令行下,使用Sqoop将Mysql中record表导入Hive中。
sqoop import  
--connect jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8  
--username root  
--password strongs  
--table record  
--hive-import  
--hive-table hiverecord  
--fields-terminated-by ',' -m 1
#在hive下,查看Hive中hiverecord表。
select * from hiverecord;

9.使用Sqoop将Hive表hiverecord表中的数据,导出到Mysql中的recordfromhive表中。
#首先在Mysql中创建表recordfromhive。
create table recordfromhive like record;
#在linux命令行下,使用sqoop开始导数据。
sqoop export  
--connect jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8  
--username root  
--password strongs  
--table recordfromhive  
--export-dir /user/hive/warehouse/hiverecord/part-m-00000  
--input-fields-terminated-by ','
#导入完成,查看Mysql中recordfromhive表。
select * from recordfromhive;

10.增量数据导入方法
#使用Append模式(字段增长),增量导入
sqoop import --connect jdbc:mysql://localhost:3306/sqoop --username root -password strongs --table buyer -m 1  
--incremental append --last-value 10005 --check-column buyer_id --target-dir /mysqoop/111
#使用Lastmodified模式(时间增长),增量导入
##将reg_date字符类型改为date类型。
alter table buyer modify reg_date date;
sqoop import --connect jdbc:mysql://localhost:3306/sqoop --username root --password strongs --table buyer -m 1  
--incremental lastmodified --check-column reg_date --last-value '2008-10-21 15:31:33' --target-dir /mysqoop/222

Sqoop数据传递的更多相关文章

  1. sqoop实现关系型数据库与hadoop之间的数据传递-import篇

    由于业务数据量日益增长,计算量非常庞大,传统的数仓已经无法满足计算需求了,所以现在基本上都是将数据放到hadoop平台去实现逻辑计算,那么就涉及到如何将oracle数仓的数据迁移到hadoop平台的问 ...

  2. hive、sqoop、MySQL间的数据传递

    hdfs到MySQL csv/txt文件到hdfs MySQL到hdfs  hive与hdfs的映射: drop table if exists emp;create table emp ( id i ...

  3. EXTJS中grid的数据特殊显示,不同窗口的数据传递

    //EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...

  4. Activity系列讲解---数据传递

    在Android中,不同的Activity实例可能运行在一个进程中,也可能运行在不同的进程中.因此需要一种特别的机制帮助我们在Activity之间传递消息.Android中通过Intent对象来表示一 ...

  5. vue2.0 组件之间的数据传递

    组件间的数据传递// 父组件<template><div class="order"><dialog-addpro v-on:closedialog= ...

  6. ASP.NET MVC3中Controller与View之间的数据传递总结

    一.  Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...

  7. ASP.NET MVC3中Controller与View之间的数据传递

    在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.  Controller向Vie ...

  8. 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

    通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容.本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV ...

  9. MVC数据传递

    一.数据传递 1.ViewData[]: 用法:action中:ViewData["key"]="aaa";,V层接收ViewData["key&qu ...

随机推荐

  1. 【Python3网络爬虫开发实战】6.4-分析Ajax爬取今日头条街拍美图【华为云技术分享】

    [摘要] 本节中,我们以今日头条为例来尝试通过分析Ajax请求来抓取网页数据的方法.这次要抓取的目标是今日头条的街拍美图,抓取完成之后,将每组图片分文件夹下载到本地并保存下来. 1. 准备工作 在本节 ...

  2. MySql CPU彪高到百分之1000的排查思路

    You need to enable JavaScript to run this app.   原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等情况,可查看当前链接:https:// ...

  3. 图解leetcode —— 124. 二叉树中的最大路径和

    前言: 每道题附带动态示意图,提供java.python两种语言答案,力求提供leetcode最优解. 描述: 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到 ...

  4. js练习- 给你一个对象,求有几层

    // 比如这个a中,就有四层.如何算出这四层 const a = { b: 1, c() {}, d: { e: 2, f: { g: 3, h: { i: 4, }, }, j: { k: 5, } ...

  5. mybatis错题

    第一题 解析: MyBatis的动态SQL中没有else元素,when元素的test属性中直接书写表达式即可,即test=”表达式”. 第二题 解析: resource属性和url属性是必须的属性,但 ...

  6. Atoder-3620

    The season for Snuke Festival has come again this year. First of all, Ringo will perform a ritual to ...

  7. AI Boot Camp 分享之 ML.NET 机器学习指南

    今天在中国七城联动,全球134场的AI BootCamp胜利落幕,广州由卢建晖老师组织,我参与分享了一个主题<ML.NET 机器学习指南和Azure Kinect .NET SDK概要>, ...

  8. io流函数略解(java_input流)[二]

    背景 在写这篇随笔之前,已经写了io流函数略解(java_File)(一),主要是总结了File的一些操作,以及一些源码介绍. 在Io实际应用中,实际上运用在如果会操作File,实际上很难写出一点能实 ...

  9. Day 03 Python 基础

    目录 Pycharm 的使用 设置 快捷键 变量 什么是变量 定义变量 变量名的命名规则 变量名的两种命名方式 注释 快捷键(快速注释) 单行注释 多行注释 注释的作用 Turtle库的使用 Pych ...

  10. 【React】354- 一文吃透 React 事件机制原理

    大纲 主要分为4大块儿,主要是结合源码对 react事件机制的原理 进行分析,希望可以让你对 react事件机制有更清晰的认识和理解. 当然肯定会存在一些表述不清或者理解不够标准的地方,还请各位大神. ...