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. react之高阶组件(一)

    当两个或多个组件有相同的地方,可以将相同的部分抽离出来 先创建三个组件A.B.C A.js import React, { Component } from 'react' class A exten ...

  2. 点击按钮每次都能实现图片的旋转和切换(swift)

    效果如图: 代码如下: // // ViewController.swift // TwoSidedView // // Created by mayl on 2017/12/14. // Copyr ...

  3. 3分钟了解ServiceStage 应用智能化运维【华为云分享】

    [摘要] 微服务云应用平台(ServiceStage)是面向企业及开发者的一站式DevOps平台服务,支持基于微服务的应用开发.治理.部署及运维监控的全生命周期管理,并提供大规模容器集群管理及中间件服 ...

  4. 用workspace管理工程,并解决多静态库依赖

    from:http://www.cnblogs.com/perryxiong/p/3759818.html   最近我在项目中遇到一些工程之间的管理问题. 模型: 其中 库A 是一个公共的基础静态库, ...

  5. PDF怎么删除页面?教你两个超级好用的方法

    在日常办公中,由于工作需要我们有时候会对PDF文件中的内容进行二次编辑,可能需要删除PDF文件中的一些页面.那么PDF怎么删除页面呢?小伙伴们还在为这个问题苦恼吗?那么今天小编就来教大家两个超级好用的 ...

  6. 线段树+lazy标记 2019年8月10日计蒜客联盟周赛 C.小A的题

    题目链接:https://nanti.jisuanke.com/t/40852 题意:给定一个01串s,进行m次操作,|s|<=1e6,m<=5e5 操作有两种 l r 0,区间[l,r] ...

  7. 如何正确的探索 Microsoft Ignite The Tour

    Microsoft Ignite The Tour 是一年一度微软为全球开发者.IT专家.安全专家以及数据专家提供的为期两天,包含众多核心产品的实践性技术培训.2019.12.10-2019.12.1 ...

  8. Python3 类的继承小练习

    1.打印并解释结果 class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print(Pa ...

  9. JAVA 锁的终极状态

    自旋锁 背景:互斥同步对性能最大的影响是阻塞,挂起和恢复线程都需要转入内核态中完成:并且通常情况下,共享数据的锁定状态只持续很短的一段时间,为了这很短的一段时间进行上下文切换并不值得. 原理:当一条线 ...

  10. 6张图说清楚Tomcat原理及请求流程

    前言 很多东西在时序图中体现的已经非常清楚了,没有必要再一步一步的作介绍,本文以图为主,然后对部分内容加以简单解释. 绘制图形使用的工具是 PlantUML + Visual Studio Code ...