使用docker快速搭建hive环境
记录一下使用docker快速搭建部署hive环境
写在前面
想练练Hive SQL,但是没有hive shell环境。现在只有一台空的CentOS 7机子,一想要弄jdk、hadoop、mysql、hive就头疼。
于是在网上找了找,发现用docker部署hive会快很多,在此记录一下部署过程。
以下过程每一步在文末都附有参考文档,出错的朋友可以去看对应的参考文档。
步骤
- 安装docker
- 安装git,配置github。因为用的是github上大佬写好的docker compose服务,所以要git clone下来。
- 部署hive
- 使用hive命令行
- 收尾工作
安装docker
要用到docker和docker-compose,我们依次来安装
安装docker
如果你之前安装过 docker,请先删掉
yum remove docker docker-common docker-selinux docker-engine
安装一些依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
拉取docker-ce.repo
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
把软件仓库地址替换为 TUNA:
sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
最后安装(默认安装的是最新版docker):
yum makecache fast
yum install docker-ce
启动docker,设为开机自启,查看docker版本
systemctl start docker
systemctl enable docker
docker version
至此,不报错的话,docker就安装好了。
安装docker-compose
依次执行以下命令
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
配置docker国内镜像源(可选)
我在后面pull docker镜像时,速度很慢,所以又配了一下国内镜像加速源,可配可不配。
参考https://www.cnblogs.com/reasonzzy/p/11127359.html这篇文章,我配的是阿里云镜像。
安装git & 配置github
执行以下命令就可以安装git了
yum -y install git
配置github的话,比较常规的操作,可以参考https://www.cnblogs.com/smartwen666/p/7891108.html这篇文章。
部署Hive
准备工作都做完了,可以开始部署Hive了。
docker-hive
用的是大佬写好的docker-hive。
上链接:https://github.com/big-data-europe/docker-hive
可以根据README.md中的介绍,来进行部署、测试。
开始部署
依次执行以下命令
git clone git@github.com:big-data-europe/docker-hive.git
# 注:本文所有docker-compose都是在docker-hive目录下执行的
cd docker-hive
# 这步在后台起一个hive,元数据库用的是postgresql
# 会费一点时间,需要耐心等待
docker-compose up -d
等上面命令运行完成后,可以执行docker-compose ps命令查看正在运行的镜像。
下图是我运行这个命令的截图:

可以看到有namenode、datanode、hive等,表示部署成功了。
使用Hive命令行
依次执行以下步骤
# 进入bash
docker-compose exec hive-server bash
# 使用beeline客户端连接
/opt/hive/bin/beeline -u jdbc:hive2://localhost:10000
# 执行SQL。这两句是可以直接执行的,镜像带了example文件
CREATE TABLE pokes (foo INT, bar STRING);
LOAD DATA LOCAL INPATH '/opt/hive/examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;
# 查询
select * from pokes;
查询结果:

至此,就可以开始愉快的写Hive SQL了。
收尾工作
安装vi、lrzsz
准备sql表数据时,发现这个docker image默认没有安装vi,就自己安一个吧。
apt-get update
apt-get install vim
# lrzsz是一个上传下载文件的工作,也安装一下
apt-get install lrzsz
关闭相关命令
# 关闭hive相关服务
docker-compose kill
# 关闭docker
systemctl stop docker
# 跑路
init 0
END
一套操作下来,好像也没省多少事。但是有docker,部署乱七八糟的环境还是挺省心的。
安装过程有问题的小伙伴,可以看下面的参考链接,也可以评论交流。
参考链接
清华镜像站安装docker:https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/
Centos7下安装Docker:https://blog.csdn.net/u014069688/article/details/100532774
Docker Compose教程:https://www.runoob.com/docker/docker-compose.html
Docker Compose详解:https://www.jianshu.com/p/658911a8cff3
配置docker国内镜像源:https://www.cnblogs.com/reasonzzy/p/11127359.html
git配置连接github:https://www.cnblogs.com/smartwen666/p/7891108.html
docker-hive github:https://github.com/big-data-europe/docker-hive
使用docker快速搭建hive环境的更多相关文章
- spring boot / cloud (十八) 使用docker快速搭建本地环境
spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...
- 使用Docker快速搭建ELK环境
今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...
- 使用docker快速搭建本地环境
在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越来越多. 然而要顺利的安装好这些中间件也是一个比较费时费力的工作. 俗话说" ...
- Docker快速搭建LNMP环境
一.使用Dockerfile制作镜像 前面的博客中已经介绍了如何基于容器制作镜像,此方法的原理是使用一个正在运行的容器,根据生产所需进行配置更改等操作后,使其满足生产环境,再将这个容器打包制作为镜像, ...
- 【Rocketmq】通过 docker 快速搭建 rocketmq 环境
1. 安装 Namesrv 拉取镜像 docker pull rocketmqinc/rocketmq:4.4.0` 启动容器 docker run -d -p 9876:9876 -v {RmHom ...
- 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- 五分钟用Docker快速搭建Go开发环境
挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU ...
- Docker-教你如何通过 Docker 快速搭建各种测试环境
今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是作者在工作中经常用到的,其中包括 MySQL.Redis.Elasticsearch.MongoDB 安装步骤,通 ...
- Docker 快速搭建 MySQL8 开发环境
使用 Docker 快速搭建一个 MySQL8 开发环境 步骤 获取镜像 docker pull mysql:8 启动容器,密码 123456,映射 3306 端口 docker run --name ...
随机推荐
- linux专题(九):磁盘管理
http://dwz.date/UDf 概述 Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用命令为 df.du. df :列出文件系统的整体磁盘使用量 du:检查磁盘空间 ...
- web前端知识点(webpack篇)
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency gr ...
- 微博大数据即席查询(OLAP)引擎实践
前言 适用于 即席查询 场景的开源查询引擎有很多,如:Elasticsearch.Druid.Presto.ClickHouse等:每种系统各有利弊,有的擅长检索,有的擅长统计:实践证明,All In ...
- Static关键字的使用
Static关键字的使用 static关键字的作用: 用来修饰成员变量和方法,被修饰的成员是属于类的,而不单单是属于某个对象的,也就是说,可以不靠对象来调用. 首先我们来介绍类变量 当static修饰 ...
- static关键字有何魔法?竟让Spring Boot搞出那么多静态内部类
生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...
- 题解 洛谷 P4112 【[HEOI2015]最短不公共子串】
给定两个字符串\(A\)和\(B\),我们需要找出一个串,其在\(A\)中出现且不在\(B\)中出现,这个串为子串或者子序列,求在每种情况下,该串的最短长度. 考虑到后缀自动机可以识别一个字符串的所有 ...
- 分布式 ID 解决方案之美团 Leaf
分布式 ID 在庞大复杂的分布式系统中,通常需要对海量数据进行唯一标识,随着数据日渐增长,对数据分库分表以后需要有一个唯一 ID 来标识一条数据,而数据库的自增 ID 显然不能满足需求,此时就需要有一 ...
- Spring Security系列之极速入门与实践教程
@ 目录 1. Spring Security 2. 实验环境准备 3. 日志级别修改 4. 配置用户名/密码 5. 数据库方式校验 6. 不拦截静态资源 7. 自定义登录页面 8. Remember ...
- Fortify Audit Workbench 笔记 Unreleased Resource: Database( 未释放资源:数据库)
Unreleased Resource: Database 未释放资源:数据库 Abstract 程序可能无法成功释放某一项系统资源. Explanation 程序可能无法成功释放某一项系统资源. 资 ...
- [C#.NET 拾遗补漏]06:单例模式实佳实践
大家好,这是[C#.NET 拾遗补漏]专辑的第 06 篇文章.今天讲讲大家熟悉的单例模式. 单例模式大概是所有设计模式中最简单的一种,如果在面试时被问及熟悉哪些设计模式,你可能第一个答的就是单例模式. ...