一、Sqoop概述
1)官网
http://sqoop.apache.org/
2)场景
传统型缺点,分布式存储。把传统型数据库数据迁移。
Apache Sqoop(TM)是一种用于在Apache Hadoop和结构化数据存储(如关系数据库)之间高效传输批量数据的工具。 二、Sqoop安装部署
1)下载安装包
2)解压
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
3)修改配置
mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop
cd sqoop/conf
mv sqoop-env-template.sh sqoop-env.sh vi sqoop-env.sh
export HADOOP_COMMON_HOME=/root/hd/hadoop-2.8.4
export HADOOP_MAPRED_HOME=/root/hd/hadoop-2.8.4
export HIVE_HOME=/root/hd/hive
export ZOOCFGDIR=/root/hd/zookeeper-3.4.10/conf
4)发送mysql驱动到sqoop/lib下
5)检测是否安装成功
bin/sqoop help 三、Sqoop的import命令 执行mysql -uroot -proot进入mysql命令行
准备数据:
create database sq;
use sq;
create table user(id int primary key auto_increment,name varchar(20),addr varcher(200));
insert into user(id,name,addr) values(1,"zhangsan","beijing");
insert into user(id,name,addr) values(2,"lisi","shanghai");
select * from user; create table user1(id int primary key auto_increment,name varchar(20));
insert into user1(id,name) values(1,"haha");
insert into user1(id,name) values(2,"hongqigong");
select * from user1; 1)数据从mysql中导入到hdfs当中
bin/sqoop import --connect jdbc:mysql://hd09-1:3306/sq --username root --password root --table user --target-dir /sqoop/datas
--delete-target-dir --num-mappers 1 --fields-terminated-by "\t"
2)数据mysql中导入到hdfs当中进行筛选
bin/sqoop import --connect jdbc:mysql://hd09-1:3306/sq --username root --password root --target-dir /sqoop/selectdemo --delete-target-dir
--num-mappers 1 --fields-terminated-by "\t" --query 'select * from user where id<=1 and $CONDITIONS'
3)通过where筛选
bin/sqoop import --connect jdbc:mysql://hd09-1:3306/sq --username root --password root --target-dir /sqoop/selectdemo2 --delete-target-dir
--num-mappers 1 --fields-terminated-by "\t" --table user --where "id<=1"
4)mysql导入到hive
需要先创建hive表:
create table user_sqoop(id int,name string) row format delimited fields terminated by '\t'; bin/sqoop import --connect jdbc:mysql://hd09-1:3306/sq --username root --password root --table user1 --num-mappers 1
--hive-import --fields-terminated-by "\t" --hive-overwrite --hive-table user_sqoop 四、问题:hiveconf
解决:
vi ~/.bash_profile
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/root/hd/hive/lib/*

   mysql权限问题:
grant all privileges on *.* to root@'%' identified by "root";
flush privileges; 五、Sqoop的export命令
需求:Hive/hdfs的数据导出到mysql
1)根据hive中的字段创建mysql表
create table user1(id int primary key auto_increment,name varchar(20));
2)编写sqoop启动命令
bin/sqoop export --connect jdbc:mysql://hd09-1:3306/sq --username root --password root --table user1 --num-mappers 1
--export-dir /user/hive/warehouse/user_sqoop --input-fields-terminated-by "\t"
3)mysql中查看数据是否导入
select * from user1; 六、Sqoop打包脚本的使用
1)创建文件夹
mkdir sqoopjob
2)创建文件脚本
vi job_hdfs2mysql.opt
export
--connect
jdbc:mysql://hd09-1:3306/sq
--username
root
--password
root
--table
user1
--num-mappers
1
--export-dir
/user/hive/warehouse/user_sqoop
--input-fields-terminated-by
"\t"
注意:一行命令 一行值
3)执行脚本文件
bin/sqoop --options-file /root/sqoopjob/job_hdfs2mysql.opt 七、sqoop常用命令
命令           说明
import 将数据导入到集群
export 将集群数据导出
codegen 将某数据库中表生成javaBean并打包为jar
eval 查看sql执行结果
create­hive­table     创建hive表
import­all­tables     导入某个数据库中所有表到hdfs中
list­tables 列出某个数据库下的所有表
merge 将hdfs中不同目录下的数据合并在一起
version V 查看sqoop版本
help 查看帮助信息 八、sqoop常用参数
参数            说明
–connect 连接关系型数据库URL
–connection­manager 指定连接管理类
–driver JDBC的driver class
–username 连接数据库的用户名
–password 连接数据库的密码
–verbose 在控制台中打印详细信息
–help 查看帮助
–hive­import 将关系型数据库导入到hive表中
–hive­overwrite 覆盖掉hive表中已存在的数据
–create­hive­table 创建hive表
–hive­table 接入hive表
–table 指定关系型数据库的表名

Sqoop简介及使用的更多相关文章

  1. Sqoop 简介与安装

    一.Sqoop 简介 Sqoop是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出: 导入数据:从MySQL,Oracle等关系型数据库中导入数据到HDFS.Hive.HBase ...

  2. sqoop简介和原理分析

    Sqoop简介 Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL , ...

  3. 入门大数据---Sqoop简介与安装

    一.Sqoop 简介 Sqoop 是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出: 导入数据:从 MySQL,Oracle 等关系型数据库中导入数据到 HDFS.Hive.H ...

  4. Sqoop简介及安装

    Hadoop业务的大致开发流程以及Sqoop在业务中的地位: Sqoop概念 Sqoop可以理解为[SQL–to–Hadoop],正如名字所示,Sqoop是一个用来将关系型数据库和Hadoop中的数据 ...

  5. Sqoop简介

    一  Sqoop是什么 Sqoop:SQL-to-Hadoop 连接传统关系型数据库和Hadoop的桥梁 把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS.HBase 和 Hive) ...

  6. 【Sqoop学习之一】Sqoop简介

    环境 sqoop-1.4.6 Sqoop:将关系数据库(oracle.mysql.postgresql等)数据与hadoop数据进行转换的工具. 两个版本:两个版本完全不兼容,sqoop1使用最多:s ...

  7. Sqoop -- 用于Hadoop与关系数据库间数据导入导出工作的工具

    Sqoop是一款开源的工具,主要用于在Hadoop相关存储(HDFS.Hive.HBase)与传统关系数据库(MySql.Oracle等)间进行数据传递工作.Sqoop最早是作为Hadoop的一个第三 ...

  8. sqoop安装与使用

    sqoop简介 sqoop名字是怎么来的?Sqoop: SQL-to-Hadoop 连接传统数据库和hadoop的桥梁,把关系型数据库的数据导入到hadoop系统(如HDFS,HBASE和hive中) ...

  9. 【大数据技术】Sqoop

     1.Sqoop是什么 Sqoop:SQL-to-Hadoop,传统数据库与Hadoop间数据同步工具.(MySQL.Oracle <==> HDFS.HBase.Hive) Sqoop ...

随机推荐

  1. love2d--glsl03噪声

    由于一些glsl的教程都是3d的,而love是2d的,所以之后以示例为主,我会收集 一些love的shader,分类讲解. 此文简译自love2d社区博客,这里略去作者的自我介绍. 像素着色器入门 示 ...

  2. UCOS2_STM32移植详细过程(汇总)

    Ⅰ.概述 笔者发现一个问题,很多初学者,甚至很多工作一两年的人,他们有一种依赖的思想,就是希望从别处获取的软件代码不做任何修改,直接可以运行或者使用.笔者想说,实践才是检验真理的关键,实践才是掌握知识 ...

  3. 使用导出导入(datapump)方式将普通表切换为分区表

    随着数据库数据量的不断增长,有些表须要由普通的堆表转换为分区表的模式. 有几种不同的方法来对此进行操作,诸如导出表数据,然后创建分区表再导入数据到分区表:使用EXCHANGE PARTITION方式来 ...

  4. Gogs http和ssh地址显示localhost的问题

    问题描述: 如下图所示HTTP和SSH地址显示的是localhost而不是对应的域名或地址. 解决方案: 按以下方法修改Gogs配置文件并重启服务器 域名问题 RUN_USER = git DOMAI ...

  5. 向服务器发送josn字符串,服务器端解析

    <script type="text/javascript"> $(function () { $("#btnsave").click(functi ...

  6. 部署到服务器-执行脚本-脚本传递参数-需要base on 执行传入的参数(被测环境的ip)

    测试脚本 # !/usr/bin/python # -*- coding:utf-8 -*- import sys sys.path.append("..") from utils ...

  7. 【HDU】3622 Bomb Game(2-SAT)

    http://acm.hdu.edu.cn/showproblem.php?pid=3622 又是各种逗.. 2-SAT是一种二元约束,每个点可以置于两种状态,但只能处于一种状态,然后图是否有解就是2 ...

  8. JAVA 并发编程-多个线程之间共享数据(六)

    多线程共享数据的方式: 1.假设每一个线程运行的代码同样.能够使用同一个Runnable对象,这个Runnable对象中有那个共享数据,比如,卖票系统就能够这么做. 2,假设每一个线程运行的代码不同. ...

  9. hdu 1233:还是畅通工程(数据结构,图,最小生成树,普里姆(Prim)算法)

    还是畅通工程 Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  10. 国际化信息-->MVC

    假设我们正在开发一个支持多国语言的Web应用程序,要求系统能够根据客户端的系统的语言类型返回对应的界面:英文的操作系统返回英文界面,而中文的操作系统则返回中文界面——这便是典型的i18n国际化问题.对 ...