Sqoop数据传递
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数据传递的更多相关文章
- sqoop实现关系型数据库与hadoop之间的数据传递-import篇
由于业务数据量日益增长,计算量非常庞大,传统的数仓已经无法满足计算需求了,所以现在基本上都是将数据放到hadoop平台去实现逻辑计算,那么就涉及到如何将oracle数仓的数据迁移到hadoop平台的问 ...
- hive、sqoop、MySQL间的数据传递
hdfs到MySQL csv/txt文件到hdfs MySQL到hdfs hive与hdfs的映射: drop table if exists emp;create table emp ( id i ...
- EXTJS中grid的数据特殊显示,不同窗口的数据传递
//EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...
- Activity系列讲解---数据传递
在Android中,不同的Activity实例可能运行在一个进程中,也可能运行在不同的进程中.因此需要一种特别的机制帮助我们在Activity之间传递消息.Android中通过Intent对象来表示一 ...
- vue2.0 组件之间的数据传递
组件间的数据传递// 父组件<template><div class="order"><dialog-addpro v-on:closedialog= ...
- ASP.NET MVC3中Controller与View之间的数据传递总结
一. Controller向View传递数据 1. 使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...
- ASP.NET MVC3中Controller与View之间的数据传递
在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一. Controller向Vie ...
- 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递
通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容.本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV ...
- MVC数据传递
一.数据传递 1.ViewData[]: 用法:action中:ViewData["key"]="aaa";,V层接收ViewData["key&qu ...
随机推荐
- 复选框、单选框样式自定义(https://www.cnblogs.com/freedom-feng/p/11346396.html)
复选框.单选框样式自定义(https://www.cnblogs.com/freedom-feng/p/11346396.html)复选框html内容如下:<input type="c ...
- 基于Docker快速搭建ELK【华为云技术分享】
[摘要] 本文基于自建的Docker平台速搭建一套完整的ELK系统,相关的镜像直接从Docker Hub上获取,可以快速实现日志的采集和分析检索. 准备镜像 l 获取ES镜像:docker pull ...
- 【我的物联网成长记6】由浅入深了解NB-IoT
[摘要] 什么是NB-IoT?NB-IoT有什么优势?NB-IoT能做什么?本文将会从NB-IoT技术的发展历程,技术特点,通信协议,应用场景等方面为您全方面解读NB-IoT技术,了解NB-IoT的独 ...
- 如何使用modelarts训练海量数据
在modelarts上使用notebook上使用evs空间默认大小是5G,能满足大部分文本和图片训练模型的需求.如果训练数据稍微超过这个限额,可以适当的扩增下空间.但如果训练对象是视频,或是实际生成过 ...
- shell ssh 远程机器 追加文件内容
在host1上,把下面的两行内容通过ssh追加到host2上的/etc/ca-certificates.conf文件中 I am a student Are you ok ssh host2 &quo ...
- cenos基本信息和ssh
一.查看cenos相关信息 1.查看cpu more /proc/cpuinfo grep "model name" grep "model name ...
- iOS本地数据存储
http://www.jianshu.com/p/a3eeae99e902 大牛整理的超全
- 谈架构设计中DDD思想的运用
首先,描述一下我的业务场景及项目分层结构,非标准DDD(其实我不觉得有标准),只是思考的时候有带入DDD思想. 业务场景:这是一个ERP系统对中台提供的接口项目,仓储操作大多都是存储过程去完成的. 项 ...
- 数据库Oracle函数之单行函数的介绍
函数介绍: 函数:是数据库产品中提供的能够处理查询结果的方法. 函数能够用于下面的目的: • 执行数据计算 • 修改单个数据项 • 格式化显示的日期和数字 • 转换列数据类型 • 函数有输入参数,并且 ...
- [TimLinux] django 全局变量在WSGI多进程多线程环境中的研究
场景1: 2个进程,每个进程1个线程,请求函数中设置了10秒sleep,9个请求同一URL: 结果: 1. 全局变量ID值,在每一个进程中相同,不同进程中不相同 2. 并行只能接受2个请求,同时发起多 ...