sqoop简单配置与使用
sqoop(sql-to-hadoop)
Apache Sqoop是用来实现结构型数据(如关系数据库)和Hadoop之间进行数据迁移的工具。它充分利用了MapReduce的并行特点以批处理的方式加快数据的传输,同时也借助MapReduce实现了容错。
可以把数据从hdfs倒到mysql
也可以把数据从
相当于把数据倒来倒去的工具,
sqoop支持的数据库:
|
Database |
version |
|
connect string matches |
|
HSQLDB |
1.8.0+ |
No |
|
|
MySQL |
5.0+ |
Yes |
|
|
Oracle |
10.2.0+ |
No |
|
|
PostgreSQL |
8.3+ |
Yes (import only) |
|
配置
1.开启zookeeper
2.开启集群服务(hadoop等)
3.上传sqoop并解压
4.进入目录sqoop下的conf(cd sqoop-1.4.5-cdh5.3.6/conf/)

5.cp sqoop-env-template.sh sqoop-env.sh
6.rm -rf *.cmd

7.修改sqoop-env.sh(HBASE暂时还没有学到,还没有配置,后续会配)

8.拷贝jdbc驱动到sqoop的lib目录下
(cp mysql-connector-java-5.1.27-bin.jar /opt/module/sqoop-1.4.5-cdh5.3.6/lib/)
9.启动sqoop(在sqoop目录下)
9.1 、bin/sqoop help
9.2测试Sqoop是否能够连接成功( bin/sqoop list-databases --connect jdbc:mysql://hadoop201:3306/metastore --username root --password 123456)

案例
一.使用sqoop将mysql中的数据导入到HDFS
1.确定Mysql服务的正常开启
2.在Mysql中创建一张表
mysql -uroot -p mysql> show databses;
mysql> create database company;
mysql> use company;
mysql> create table staff(id int(4) primary key not null auto_increment,name varchar(255) not null,sex varchar(255) not null);
mysql> show tables;
mysql> insert into staff(name, sex) values('Thomas', 'Male');
3.操作数据
3.1RDBMS --> HDFS
使用Sqoop导入数据到HDFS
A、全部导入
1.现在hadoop下创建个文件夹(bin/hdfs dfs -mkdir /user/company)
2.进入sqoop目录,执行
bin/sqoop import --connect jdbc:mysql://hadoop201:3306/company --username root --password 123456 --table staff --target-dir /user/company --delete-target-dir --num-mappers 1 --fields-terminated-by "\t"
也可以写成这种形式(\为未写完换行)
bin/sqoop import \
--connect jdbc:mysql://hadoop201:3306/company \
--username root \
--password 123456 \
--table staff \
--target-dir /user/company \
--delete-target-dir \ (如果目录存在则删除目录)
--num-mappers 1 \ (用几个mapper跑这个任务)
--fields-terminated-by "\t" (用什么分割)
3.查看(在hadoop目录下 bin/hdfs dfs -cat /user/company/*)

B、根据查询语句结果导入
$ bin/sqoop import
--connect jdbc:mysql://hadoop201:3306/company
--username root
--password 123456
--target-dir /user/company
--delete-target-dir
--num-mappers 1
--fields-terminated-by "\t"
--query 'select name,sex from staff where id >= 2 and $CONDITIONS;'
C、导入指定列
$ bin/sqoop import
--connect jdbc:mysql://hadoop201:3306/company
--username root
--password 123456
--target-dir /user/company
--delete-target-dir
--num-mappers 1
--fields-terminated-by "\t"
--columns id, sex
--table staff
D、使用sqoop关键字筛选查询导入数据
$ bin/sqoop import
--connect jdbc:mysql://hadoop201:3306/company
--username root
--password 123456
--target-dir /user/company
--delete-target-dir
--num-mappers 1
--fields-terminated-by "\t"
--table staff
--where "id=3"
3.2RDBMS --> Hive
1.在hive中创建表(不需要提前创建表,会自动创建)
1.1 在hive目录下 bin/hive
1.2
hive (company)> create table staff_hive(id int, name string, sex string) row format delimited fields terminated by '\t';

1.3向hive中导入数据
$ bin/sqoop import
--connect jdbc:mysql://hadoop201:3306/company
--username root
--password 123456
--table staff
--num-mappers 1
--hive-import
--fields-terminated-by "\t"
--hive-overwrite
--hive-table company.staff_hive
3.3Hive/HDFS --> MYSQL
1、在Mysql中创建一张表(create table student(id int(4) primary key not null auto_increment,name varchar(255) not null,sex varchar(255) not null,class varchar(255) not null);)

2.
$ bin/sqoop export
--connect jdbc:mysql://hadoo201:3306/company
--username root
--password 123456
--table staff_mysql
--num-mappers 1
--export-dir /user/hive/warehouse/company.db/staff_hive
--input-fields-terminated-by "\t"
sqoop简单配置与使用的更多相关文章
- sqoop简单import使用
一.sqoop作用? sqoop是一个数据交换工具,最常用的两个工具是导入导出. 导入导出的参照物是hadoop,向hadoop导数据就是导入. 二.sqoop的版本? sqoop目前有两个版本,1. ...
- 小丁带你走进git世界一-git简单配置
小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config –global user.name BattleHeaer ...
- 以实际的WebGIS例子探讨Nginx的简单配置
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...
- CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置
1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB,两条命令都可以 systemctl sta ...
- ssm简单配置
MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架. MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获. MyBatis 只使用简单的XML 和注解来配置和映射 ...
- 安装MariaDB和简单配置
1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start maria ...
- BIND的进程一:DNS简单配置与的主从配置
DNS的简单配置和DNS的主从配置 摘要:DNS(Domain-Name Server) ,DNS的服务起到的作用就是名称解析,在网络通讯来说计算机与计算机是通过IP地址相互通信的, 当是IP地址 ...
- 转-squid介绍及其简单配置
本文原始出处:http://linuxme.blog.51cto.com/1850814/372960 1.Squid是什么? Squid中文权威指南:http://zyan.cc/book/squi ...
- Linux中vim的简单配置
本文主要分享Linux中vim的简单配置 ★配置文件的位置 在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...
随机推荐
- maya2019卸载/安装失败/如何彻底卸载清除干净maya2019注册表和文件的方法
maya2019提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装maya2019失败提示maya2019安装未完成,某些产品无法安装,也有时候想重新安装maya ...
- Maven 的安装与配置
最近公司需要新起一个项目,想使用maven+springmvc+spring+mybatis+mysql实现,以前我们的项目都是传统的老项目,没用过maven,Eclipse版本是GALILEO的,有 ...
- /etc/sysconfig/iptables 默认配置详解
[参考链接]:一把三尺剑的百度知道回答 1. iptables文件 2. 规则语句详解 :INPUT ACCEPT [0:0] # 该规则表示INPUT表默认策略是ACCEPT :FORWARD AC ...
- Maven - 实例-1-手工创建Maven项目
1- 根据包结构创建maven项目目录 TestMaven - src - src/main/java/anliven/testmaven01/HelloMaven.java - src/test/j ...
- linux系统添加swap(虚拟内存)分区
在实际的生产环境中,实际的物理内存我们经常会觉得不够用,增加物理内存的成本又比较高,一种折中方案就出来了,使用硬盘的一部分空间来做Swap(windows 下叫虚拟内存),将系统内非活动内存换页到 ...
- spring boot 访问静态资源的步骤
1)resources/static下放置html文件.(或者static下新建目录 http://hcss:8090/imgs/单例.png) 2)webapp下放置html文件. 如果两个路径下有 ...
- MySQL Workbench导出Model提示['ERROR 1064 (42000): You have an error in your SQL syntax....syntax to use near 'VISIBLE']
CREATE TABLE IF NOT EXISTS `pihealth`.`warning_events` ( `wid` INT NOT NULL AUTO_INCREMENT, `wtime` ...
- The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar报错
缺少jstl依赖解析xml文件,报错jaspException 添加依赖如下: <dependency> <groupId>jstl</grou ...
- FF笔试题
一.单选题 1.下列关于继承的描述错误的是( ) A. 在Java中允许定义一个父类的引用,指向子类对象 B. 在Java中继承是通过extends关键字来描述的,而且只允许继承自一个直接父类 ...
- 高可用Hadoop平台-HBase集群搭建
1.概述 今天补充一篇HBase集群的搭建,这个是高可用系列遗漏的一篇博客,今天抽时间补上,今天给大家介绍的主要内容目录如下所示: 基础软件的准备 HBase介绍 HBase集群搭建 单点问题验证 截 ...