首先准备工具环境: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中的更多相关文章

  1. 使用 sqoop 将mysql数据导入到hive表(import)

    Sqoop将mysql数据导入到hive表中 先在mysql创建表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` varchar() ...

  2. python脚本 用sqoop把mysql数据导入hive

    转:https://blog.csdn.net/wulantian/article/details/53064123 用python把mysql数据库的数据导入到hive中,该过程主要是通过pytho ...

  3. 使用sqoop把mysql数据导入hive

    使用sqoop把mysql数据导入hive export HADOOP_COMMON_HOME=/hadoop export HADOOP_MAPRED_HOME=/hadoop   cp /hive ...

  4. Sqoop将mysql数据导入hbase的血与泪

    Sqoop将mysql数据导入hbase的血与泪(整整搞了大半天)  版权声明:本文为yunshuxueyuan原创文章.如需转载请标明出处: https://my.oschina.net/yunsh ...

  5. 使用 sqoop 将mysql数据导入到hdfs(import)

    Sqoop 将mysql 数据导入到hdfs(import) 1.创建mysql表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` va ...

  6. Logstash:把MySQL数据导入到Elasticsearch中

    Logstash:把MySQL数据导入到Elasticsearch中 前提条件 需要安装好Elasticsearch及Kibana. MySQL安装 根据不同的操作系统我们分别对MySQL进行安装.我 ...

  7. 使用Logstash把MySQL数据导入到Elasticsearch中

    总结:这种适合把已有的MySQL数据导入到Elasticsearch中 有一个csv文件,把里面的数据通过Navicat Premium 软件导入到数据表中,共有998条数据 文件下载地址:https ...

  8. 使用sqoop将mysql数据导入到hadoop

    hadoop的安装配置这里就不讲了. Sqoop的安装也很简单. 完成sqoop的安装后,可以这样测试是否可以连接到mysql(注意:mysql的jar包要放到 SQOOP_HOME/lib 下): ...

  9. Sqoop1.99.7将MySQL数据导入到HDFS中

    准备 本示例将实现从MySQL数据库中将数据导入到HDFS中 参考文档: http://sqoop.apache.org/docs/1.99.7/user/Sqoop5MinutesDemo.html ...

随机推荐

  1. charles 常用功能(八)重定向

    1.点击鼠标右键 点击保存就保存到桌面上了 效果图 在123.txt中修改 然后另存为 点击红圈处 然后再次发送请求

  2. 强大的拉姆表达式转Sql 类库 - SqlSugar 隐藏功能之Lambda

    使用场景 1.Lambda to sql 一直是ORM中最难的功能之一,如果有现成的解析库那么自已写一个ORM难度将大大降低 2.通过Lambda作为KEY进行缓存操作,特别是仓储模式想要拿到表达式进 ...

  3. 第7.23节 Python使用property函数定义属性简化属性访问的代码实现

    第7.23节 Python使用property函数定义属性简化属性访问的代码实现 一.    背景       在本章前面章节中,我们介绍了类相关的知识,并举例进行了说明,在这些例子中会定义一些形如 ...

  4. PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件设置tabsClosable后不能关闭选项卡的原因

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTabWidget的tabsClosable属性用于控制选项卡栏的每个选项卡是否显示关闭按钮,但显 ...

  5. PyQt(Python+Qt)学习随笔:QListView的viewMode属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListView的viewMode属性用于控制QListView的视图模式,该属性类型为枚举类型Q ...

  6. PyQt学习随笔:重写组件的event方法捕获组件的事件

    在PyQt的组件对象中,都有从QWidget中继承的方法event,而QWidget.event是对QObject类定义的虚拟方法event的实现. event方法的语法: bool event(QE ...

  7. PyQt学习随笔:Qt事件QEvent.type类型常量及其含义资料汇总详细内容速查

    下表是Qt5.11提供的所有已经定义的事件类型常量及其含义说明(其中标蓝色的是老猿认为价值比较大的事件),事件的事件类型通过QEvent.type()来获取.由于老猿没有找到直接粘贴Excel表格的方 ...

  8. C#实例化对象的三种方式及性能对比

    前言 做项目过程中有个需求要实例化两万个对象并添加到List中,这个过程大概需要1min才能加载完(传参较多),于是开启了代码优化之旅,再此记录. 首先想到的是可能实例化比较耗时,于是开始对每种实例化 ...

  9. NOI Online 题解

    T1 对\(t_i = 1\)的边,将\(u_i, v_i\)连一条边权为\(1\)的边.否则连一条边权为\(0\)的边. 对于每一个连通块,若图中不存在一条边权之和为奇数的圈,则可以将这个连通块二染 ...

  10. 题解-[SDOI2017]数字表格

    题解-[SDOI2017]数字表格 前置知识: 莫比乌斯反演</> [SDOI2017]数字表格 \(T\) 组测试数据,\(f_i\) 表示 \(\texttt{Fibonacci}\) ...