文档章节

Hive(五)——Sqoop导入数据

i
 ittzg
发布于 07/19 00:39
字数 673
阅读 9
收藏 0

一、Sqoop的安装与配置

  1. 下载安装包:sqoop-1.4.5-cdh5.3.6.tar.gz
  2. 解压到linux指定目录
  3. 备份./conf/sqoop-env-template.sh文件,cp sqoop-env-template.sh sqoop-env.sh
  4. 修改配置文件:
#Set path to where bin/hadoop is available
# 配置hadoop的安装目录
export HADOOP_COMMON_HOME=/home/hadoop/module/hadoop-2.4.0

#Set path to where hadoop-*-core.jar is available
#export HADOOP_MAPRED_HOME=
# 配置MAPRED的安装目录 及hadoop的安装目录
export HADOOP_COMMON_HOME=/home/hadoop/module/hadoop-2.4.0

#set the path to where bin/hbase is available
#export HBASE_HOME=

#Set the path to where bin/hive is available
# 配置hive的安装目录
export HIVE_HOME=/home/hadoop/module/apache-hive

#Set the path for where zookeper config dir is
# 配置zookeeper的配置文件目录
export ZOOCFGDIR=/home/hadoop/module/zookeeper-3.4.5/conf
  1. 将mysql的驱动包复制到sqoop的lib目录下:mysql-connector-java-5.1.37-bin.jar
  2. 启动hadoop集群,zookeeper集群
  3. 启动sqoop:切换到bin目录下执行 ./sqoop help
  4. 测试sqoop是否成功连接mysql
 ./sqoop list-databases --connect jdbc:mysql://192.168.0.70:3306/metastore --username root --password 123456
  1. 当8的测试结果如下是证明成功启动sqoop

二、Sqoop导入数据案例

  1. 准备
    • 在mysql中创建数据库sqooptest:create database sqooptest;
    • 在sqooptest中创建表person,并插入数据
    	DROP TABLE IF EXISTS `person`;
    	CREATE TABLE `person` (
    	`id` int(11) NOT NULL AUTO_INCREMENT,
    	`name` varchar(255) DEFAULT NULL,
    	`age` int(11) DEFAULT NULL,
    	PRIMARY KEY (`id`)
    	) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
    	-- ----------------------------
    	-- Records of person
    	-- ----------------------------
    	INSERT INTO `person` VALUES ('1', 'zhangsan', '22');
    	INSERT INTO `person` VALUES ('2', 'lisi', '20');
    	INSERT INTO `person` VALUES ('3', 'wangwu', '23');
    
  2. 将mysql数据导入到HDFS
    • 全部导入

    ./sqoop import --connect jdbc:mysql://192.168.0.70:3306/sqooptest --username root --password 123456 --table person --target-dir /user/sqooptest/ --delete-target-dir --num-mappers 1 --fields-terminated-by "\t"

    • 查询导入

    ./sqoop import --connect jdbc:mysql://192.168.0.70:3306/sqooptest --username root --password 123456 --target-dir /user/sqooptest1/ --delete-target-dir --num-mappers 1 --fields-terminated-by "\t" --query 'select name from person where id >= 2 and $CONDITIONS;'

    • 导入指定列

    ./sqoop import --connect jdbc:mysql://192.168.0.70:3306/sqooptest --username root --password 123456 --target-dir /user/sqooptest2/ --delete-target-dir --num-mappers 1 --fields-terminated-by "\t" --columns id,name --table person

    • 使用sqoop关键字筛选查询导入数据

    ./sqoop import --connect jdbc:mysql://192.168.0.70:3306/sqooptest --username root --password 123456 --target-dir /user/sqooptest3/ --delete-target-dir --num-mappers 1 --fields-terminated-by "\t" --where "id=1" --table person

  3. 将mysql数据导入到Hive

    ./sqoop import --connect jdbc:mysql://192.168.0.70:3306/sqooptest --username root --password 123456 --target-dir /user/sqooptest3/ --table person --delete-target-dir --num-mappers 1 --fields-terminated-by "\t" --hive-import --hive-overwrite --hive-table sqooptest.person

  4. Hive导入mysql
    • 在mysql的sqooptest创建一张表结构和hive中person表的数据结构及字段相同的表person_hive,执行下面语句

    ./sqoop export --connect jdbc:mysql://192.168.0.70:3306/sqooptest --username root --password 123456 --table person_hive --num-mappers 1 --export-dir /user/hive/warehouse/sqooptest.db/person --input-fields-terminated-by "\t"

  5. HDFS导入mysql
    • 在mysql的sqooptest创建一张表结构和HDFS中person表的数据结构相同的表person_hive,执行下面语句

    ./sqoop export --connect jdbc:mysql://192.168.0.70:3306/sqooptest --username root --password 123456 --table person_hdfs --num-mappers 1 --export-dir user/sqooptest/part-m-00000 --input-fields-terminated-by "\t"

© 著作权归作者所有

i
粉丝 5
博文 66
码字总数 58232
作品 0
海淀
程序员
私信 提问
Sqoop架构以及应用介绍

本篇文章在具体介绍Sqoop之前,先给大家用一个流程图介绍Hadoop业务的开发流程以及Sqoop在业务当中的实际地位。 如上图所示:在实际的业务当中,我们首先对原始数据集通过MapReduce进行数据清...

a2011480169
2016/05/25
0
0
[大数据之Sqoop] —— Sqoop初探

Sqoop是一款用于把关系型数据库中的数据导入到hdfs中或者hive中的工具,当然也支持把数据从hdfs或者hive导入到关系型数据库中。 Sqoop也是基于Mapreduce来做的数据导入。 关于sqoop的原理 sq...

青夜之衫
2017/12/05
0
0
sqoop——sqoop1.x命令

mysql导入数据导hdfs -target-dir默认使用/user/${user}/,--和-的效果是一样的,--fields-terminated-by 't'字段间使用空格分隔,-m使用多少个map做导入操作。 列出mysql数据库中的所有数据...

cjun1990
2016/12/19
7
0
sqoop实战(五)

1 Importing Data Directly into Hive 关系型数据库-----hive sqoop import --connect jdbc:mysql://192.168.130.221/sqoop --username root --password root --table tblplace --hive-impor......

发光体
2016/02/26
167
0
sqoop简介以及架构介绍

本篇文章在具体介绍Sqoop之前,先给大家用一个流程图介绍Hadoop业务的开发流程以及Sqoop在业务当中的实际地位。 如上图所示:在实际的业务当中,我们首先对原始数据集通过MapReduce进行数据清...

qi49125
2017/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
13
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
10
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
12
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部