使用sqoop将mysql数据导入到hive中
首先准备工具环境:hadoop2.7+mysql5.7+sqoop1.4+hive3.1
准备一张数据库表:


接下来就可以操作了。。。
一、将MySQL数据导入到hdfs
首先我测试将zhaopin表中的前100条数据导出来,只要id、jobname、salarylevel三个字段。
再Hdfs上创建目录
hadoop fs -mkdir -p /data/base #用于存放数据
我们cd到sqoop目录下执行命令
# \ 用于换行
bin/sqoop import \
--connect jdbc:mysql://172.18.96.151:3306/zhilian \ #连接数据库
--username root \ #用户名
--password 123456 \ #密码
--query 'select id, jobname, salarylevel from zhaopin where $CONDITIONS LIMIT 100' \ #选取表的字段信息
--target-dir /data/base \ #上传到Hdfs的目录
--delete-target-dir \ #如果指定文件目录存在则先删除掉
--num-mappers 1 \ #使用1个map并行任务
--compress \ #启动压缩
--compression-codec org.apache.hadoop.io.compress.SnappyCodec \ #指定hadoop的codec方式 默认为gzip
--direct \ #使用直接导入方式,优化导入速度
--fields-terminated-by '\t' #字段之间通过空格分隔

当你看到下面信息,就成了。。。

hadoop fs -ls -R /data/hbase #查看目录发现多了两个文件,我们就成功将数据导入到了hdfs
二、将hfds数据导入到Hive
首先我们先在hive中创建一个表,我们直接在默认的库中创建一个表。
drop table if exists default.hive_zhaopin_snappy ; #如果存在就先删除 create table default.hive_zhaopin_snappy(
id int,
jobname string,
salarylevel string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ; #这个地方是标记分割字段的,\t为空格分隔,否则会在导入的hive表中都是NULL.
类似于这样

接下来就是导入环节了,在hive下执行命令:
load data inpath '/data/base/' into table default.hive_zhaopin_snappy ;

查看一下结果:

返回hdfs查看发现,base目录下原有的两个文件少了一个,它被移动到hive的hdfs存储中去了

三、用sqoop直接将mysql数据导入hive中
首先我们再创建一张表
create table default.hive_zhaopin_jingji(
id int,
jobname string,
salarylevel string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ;
然后cd到sqoop目录下,执行命令
bin/sqoop import \
--connect jdbc:mysql://172.18.96.151:3306/zhilian \ #连接mysql必备
--username root \
--password 123456 \
--table zhaopin \ #要连接的表
--fields-terminated-by '\t' \ #字段通过空格分隔
--delete-target-dir \ #如果目录存在就删除
--num-mappers 1 \ #启动一个Map并行任务
--hive-import \ #执行导入Hive
--hive-database default \ #导入到默认的default库
--hive-table hive_zhaopin_jingji #导入到hive_zhaopin_jingji表中


执行玩这些,表示没有报错。

查看了一下,数据都是对的。
倘若你的程序每次执行都会卡在job执行的时刻,那么应该是你的yarn-site.xml配置错误,仔细检查一下确保字母没有写错。
OVER。。。
使用sqoop将mysql数据导入到hive中的更多相关文章
- 使用 sqoop 将mysql数据导入到hive表(import)
Sqoop将mysql数据导入到hive表中 先在mysql创建表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` varchar() ...
- python脚本 用sqoop把mysql数据导入hive
转:https://blog.csdn.net/wulantian/article/details/53064123 用python把mysql数据库的数据导入到hive中,该过程主要是通过pytho ...
- 使用sqoop把mysql数据导入hive
使用sqoop把mysql数据导入hive export HADOOP_COMMON_HOME=/hadoop export HADOOP_MAPRED_HOME=/hadoop cp /hive ...
- Sqoop将mysql数据导入hbase的血与泪
Sqoop将mysql数据导入hbase的血与泪(整整搞了大半天) 版权声明:本文为yunshuxueyuan原创文章.如需转载请标明出处: https://my.oschina.net/yunsh ...
- 使用 sqoop 将mysql数据导入到hdfs(import)
Sqoop 将mysql 数据导入到hdfs(import) 1.创建mysql表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` va ...
- Logstash:把MySQL数据导入到Elasticsearch中
Logstash:把MySQL数据导入到Elasticsearch中 前提条件 需要安装好Elasticsearch及Kibana. MySQL安装 根据不同的操作系统我们分别对MySQL进行安装.我 ...
- 使用Logstash把MySQL数据导入到Elasticsearch中
总结:这种适合把已有的MySQL数据导入到Elasticsearch中 有一个csv文件,把里面的数据通过Navicat Premium 软件导入到数据表中,共有998条数据 文件下载地址:https ...
- 使用sqoop将mysql数据导入到hadoop
hadoop的安装配置这里就不讲了. Sqoop的安装也很简单. 完成sqoop的安装后,可以这样测试是否可以连接到mysql(注意:mysql的jar包要放到 SQOOP_HOME/lib 下): ...
- Sqoop1.99.7将MySQL数据导入到HDFS中
准备 本示例将实现从MySQL数据库中将数据导入到HDFS中 参考文档: http://sqoop.apache.org/docs/1.99.7/user/Sqoop5MinutesDemo.html ...
随机推荐
- 教学之Treap
放在前面的话 本蒟蒻因为最近的题目总是搞点奇奇怪怪的平衡树,就去学了下\(Treap\) 现在来总结一下 由于本人是个蒟蒻,本文可能有部分错误,麻烦各位读者大佬在评论区提醒 什么是\(Treap\) ...
- Java解决大文件读取的内存问题以及文件流的比较
Java解决大文件读取的内存问题以及文件流的比较 传统方式 读取文件的方式一般是是从内存中读取,官方提供了几种方式,如BufferedReader, 以及InputStream 系列的,也有封装好的如 ...
- python核心高级学习总结6------面向对象进阶之元类
元类引入 在多数语言中,类就是一组用来描述如何生成对象的代码段,在python中同样如此,但是在python中把类也称为类对象,是的,你没听错,在这里你只要使用class关键字定义了类,其解释器在执行 ...
- PHP中双引号引起的命令执行漏洞(Kuwebs代码审计 )
在代码审计一书中提到Kuwebs的配置文件中可以利用PHP可变变量的特性执行代码 在PHP语言中,单引号和双引号都可以表示一个字符串,但是对于双引号来说,可能会对引号内的内容进行二次解释,这就可能会出 ...
- 【Alpha冲刺阶段】Scrum Meeting Daily2
[Alpha冲刺阶段]Scrum Meeting Daily2 1.会议简述 会议开展时间 2020/5/23 8:30-9:00 PM 会议基本内容摘要 讨论了基础的分工,以及明确了各自模块需要完成 ...
- 【题解】「UVA1149」装箱 Bin Packing
做法显然:贪心,但是怎么贪? 首先从大到小或从小到大排序,窝这次是从大到小排,这样更容易理解(从小到大更方变) 然后设置两个变量 front 和 after 作为前指针和后指针. 循环判断: 当前后两 ...
- 深入理解Java虚拟机(三)——垃圾回收策略
所谓垃圾收集器的作用就是回收内存空间中不需要了的内容,需要解决的问题是回收哪些数据,什么时候回收,怎么回收. Java虚拟机的内存分为五个部分:程序计数器.虚拟机栈.本地方法栈.堆和方法区. 其中程序 ...
- mysql扩展百分位函数(类似SUM)
mysql扩展百分位函数(类似SUM) 参考:https://my.oschina.net/waterbear/blog/1186744 百度搜索:mysql percentile
- Vue3源码解析(computed-计算属性)
作者:秦志英 前言 上一篇文章中我们分析了Vue3响应式的整个流程,本篇文章我们将分析Vue3中的computed计算属性是如何实现的. 在Vue2中我们已经对计算属性了解的很清楚了,在Vue3中提供 ...
- rman删除归档日志无法释放
背景 当Oracle 归档日志满了后,将无法正常登入oracle,需要删除一部分归档日志才能正常登入ORACLE.最近遇到一个问题,一套Oracle 11g数据库使用RMAN删除了归档日志,但是仍然无 ...