首先准备工具环境: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。。。

最新文章

  1. 我的SQL总结---未完待续
  2. 更新系统没有mac dashboard 问题解决
  3. WebApp:如何让安卓的webview缓存webapp的html、js和图片等资源
  4. [转]mac 10.9.4下配置apache
  5. Javascript正则表达式笔记
  6. oracle游标小试
  7. 引用 RAM和ROM和Flash ROM的区别
  8. 服务器编程入门(10)TCP回射服务器实现 - 并发
  9. Sun 与 Oracle 合并的未来
  10. [UE4]插值interp
  11. weka的基本使用
  12. javascript基础:函数参数与闭包问题
  13. [LintCode] Longest Increasing Continuous subsequence
  14. [Winform]安装在C盘,无操作权限的一个解决办法
  15. SDOI 2017 天才黑客
  16. linux 自定义yum仓库、repo文件 yum命令
  17. js 获取下一秒 时间
  18. 介绍CppShell
  19. 用于金融分析的Python包
  20. Linux无法登录,显示module is unknown,一闪而过

热门文章

  1. Linux学习之iostat命令详解
  2. PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件外观展示类属性elideMode、documentMode、tabBarAutoHide、tabShape介绍
  3. PyQt学习随笔:ListView控件增加列表项
  4. 第八章、Designer组件属性编辑界面中QWidget类相关属性详解
  5. CNVD漏洞证书(1)
  6. SQL注入WAF绕过姿势
  7. 认识css常见的hack
  8. 【题解】切割多边形 [SCOI2003] [P4529] [Bzoj1091]
  9. 【HNOI2010】城市建设(对时间分治 & Kruskal)
  10. 题解-Railgun