为了调试hive,我们使用docker来制作一个镜像。可以在镜像中启动hive的相关服务,在本地ide(intellij)中进行远程调试。

先放出最后制作好的镜像: docker pull limengjiao029/hive:v0.1

使用方法:

启动镜像:

docker run --privileged -tid -p 8000:8000 -p 8088:8088 -p 8042:8042 -p 50070:50070 limengjiao029/hive:v0.1

登陆镜像:

containerID 为上一步启动镜像后得到的容器id。

docker exec -ti containerID /bin/bash

启动服务:

登陆后可以根据需要启动各组件的服务。

环境变量:JAVA_HOME, HADOOP_HOME, HIVE_HOME 已设置

mysql:已经默认启动。已建立root与hadoop用户,密码均为 123!@#qweQWE

Hadoop:已经配置为yarn模式。namenode已经格式化。直接启动即可。$HADOOP_HOME\sbin\start-all.sh

Hive: metastore 使用的数据已经配置为mysql.

-- 启动metastore服务: hive --service metastore

-- 使用cli:hive

-- 启动hiveserver2: hiveserver2

-- 连接hiveserver2: beeline -u "jdbc:hive2://127.0.0.1:10000"

UI界面:

yarn: http://127.0.0.1:8088

远程调试:

启动cli: hive --debug 此时程序会监听8000端口,等待ide连接

intellj: 配置远程模式,端口填写为8000,在cli模块代码中打好断点,点击运行。

Screen Shot 2018-09-01 at 9.58.42 AM.png

搭建过程:

创建dockerfile:

> mkdir hivedocker

> cd hivedocker

> touch Dockerfile

编辑Dockerfile:

FROM centos:7

ENV container docker

RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \

systemd-tmpfiles-setup.service ] || rm -f $i; done); \

rm -f /lib/systemd/system/multi-user.target.wants/*;\

rm -f /etc/systemd/system/*.wants/*;\

rm -f /lib/systemd/system/local-fs.target.wants/*; \

rm -f /lib/systemd/system/sockets.target.wants/*udev*; \

rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \

rm -f /lib/systemd/system/basic.target.wants/*;\

rm -f /lib/systemd/system/anaconda.target.wants/*;

VOLUME [ "/sys/fs/cgroup" ]

RUN yum -y install net-tools

RUN yum -y install wget

RUN yum -y install vim-common

RUN yum -y install openssh*

RUN yum -y install initscripts

RUN yum -y install which

CMD ["/usr/sbin/init"]

生成镜像:

> docker build -t local/base

--

环境配置:

按照上文的方法启动并登入 local/base 镜像。假设得到的container id 是 baseContainerID,后续会用到这个id。

-- 安装jdk

> wget http://~/jdk-8u181-linux-x64.tar.gz

> tar -zxf jdk-8u181-linux-x64.tar.gz

> export JAVA_HOME=

> export PATH=$JAVA_HOME/bin:$PATH

-- 安装mysql:

wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

rpm -Uvh mysql57-community-release-el7-10.noarch.rpm

yum install -y mysql-community-server

-- 配置mysql:

mysql安装后重设密码

> vi /etc/my.cnf # 最后一行增加 skip-grant-tables

> service mysqld start

> mysql

mysql > use mysql;

mysql > update user set authentication_string = password("root") where user='root';

mysql > exit;

> vi /etc/my.cnf # 去掉最后一行

> service mysqld stop

> service mysqld start

> mysql -uroot -proot

mysql > alter user 'root'@'localhost' identified by '123!@#qweQWE';

mysql > flush privileges;

mysql > exit;

创建hadoop账户,并创建hive数据库

mysql > create user 'hadoop'@'localhost' identified by '123!@#qweQWE';

mysql > grant all privileges on *.* to hadoop;

mysql > create database hive;

-- 配置hadoop:

下载hadoop,编辑 hadoop-env.sh, core-site.xml, hdfs-site.xml。 如果使用yarn模式,还需要编辑mapred-site.xml和yarn-site.xml.

hadoop-env.sh

export JAVA_HOME=/***/jdk1.8.0_181

core-site.xml

fs.defaultFS

hdfs://localhost:8020

hadoop.tmp.dir

/opt/data/tmp

hdfs-site.xml

dfs.replication

1

mapred-site.xml

mapreduce.framework.name

yarn

yarn-site.xml

yarn.nodemanager.aux-services

mapreduce_shuffle

环境变量和初始化

> export HADOOP_HOME=

> export PATH=$HADOOP_HOME/bin:$PATH

> hadoop namenode -format

-- 配置hive:

下载hive,编辑hive-env.sh,根据需要编辑hive-site.xml

hive-env.sh

HADOOP_HOME=

HIVE_CONF_DIR=

hive-site.xml

javax.jdo.option.ConnectionUserName

hadoop

javax.jdo.option.ConnectionPassword

123!@#qweQWE

javax.jdo.option.ConnectionURL

jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

初始化metastore

> schematool -dbType mysql -initSchema

提交更改

> docker commit baseContainerID limengjiao/029:v0.1

docker hive nagasuga_制作一个用来调试hive的docker镜像相关推荐

  1. eac 反调试_自己动手制作一个过保护调试器

    一.起因 本人是新手第一次接触驱动开发的小白,事情是这样的,一个星期前突发奇想想做一个调试器保护程序用于调试游戏,既然要调试驱动保护的程序,自然也要深入驱动底层.做调试器必须要hook api去隐藏调 ...

  2. 我的docker随笔25:一个测试用的镜像制作过程

    本文记录制作一个镜像的过程,先构建可运行静态程序的镜像,以此为基础,构建一个golang语言编写的web服务器,可获取容器的主机.内核版本等信息.该镜像可用于 k8s 和 KubeEdge 群集测试. ...

  3. 【环境配置】使用 docker 制作一个ubuntu16.04 + ROS + pytorch-gpu 的镜像

    文章目录 使用 docker 制作一个ubuntu16.04 + ROS + pytorch-gpu 镜像的过程 1. 我的笔记本环境: 2. 环境配置过程 2.1. 在 ubuntu 16.04 中 ...

  4. Docker基于容器制作httpd镜像(使用nfs共享存储部署一个网站)

    Docker基于容器制作httpd镜像 1 编译安装httpd 2 安装nfs共享存储 3 使用nfs共享存储提供httpd网页服务 4 在浏览器上进行测试访问 1 编译安装httpd [root@d ...

  5. 使用 Docker 制作一个盒装部落格

    先玩起来 Play with Docker 官方提供的 Playground,进去点击 Start,然后 +ADD NEW INSTANCE 即可开玩. 上来直接 run docker run -it ...

  6. Docker从入门到放弃-----Dockerfile常用命令解析与实战(使用docker制作一个开箱即用的consul镜像)

    前言 在上一篇文章docker常用命令的实践与解析中,我们提到了可以使用commit命令来在本地创建镜像,但是commit创建的镜像其实是不够正规的,第三方无法了解镜像创建的过程,所以只能作为我们在本 ...

  7. 【docker】拉取一个基础镜像然后制作自己的镜像并复用

    今天下午,我再一次地被部署一个模型时因为没有网络而导致的复杂无比的环境依赖而折腾的手忙脚乱.因此,我觉得必须要把docker的基本操作路线打通一下了. 软件环境 docker:19.03.8 操作系统 ...

  8. python开发rpa_几步教你用 Python 制作一个 RPA 机器人!

    原标题:几步教你用 Python 制作一个 RPA 机器人! 作者 | 阿文 出品 | CSDN(ID:CSDNnews) 头图 | CSDN下载自东方IC 繁琐且重复的工作 在我们日常的工作中,有很 ...

  9. Docker将容器制作成镜像并提交到远程仓库

    Docker将容器制作成镜像并提交到远程仓库 步骤如下 先在dockerhub上创建一个自己的用户https://hub.docker.com/.或者在阿里云也可以. 2. 然后先创建一个空的镜像名. ...

最新文章

  1. R语言Kaplan-Meier绘制生存分析、Log-rank假设检验、Cox回归曲线实战案例:恶性黑色素瘤的术后数据生存分析
  2. C++14尝鲜:Generic Lambdas(泛型lambda)
  3. java new arraylist_Java中ArrayList用法详解
  4. 【PC工具】更新github下载加速器,github项目辅助下载工具,github高速下载
  5. mysql lock scope_scope_lock模式详解
  6. CSS3 Perspective
  7. ProcessBuilder执行bash脚本
  8. 图解extends and implements 的区别
  9. python安装时没有选path怎么办,环境变量是个啥? 没有勾选Add to Path怎么办?
  10. Java基础04 编译与反编译
  11. 为什么用python画图_为什么使用Matplotlib绘图太慢?
  12. 一二线城市互联网公司汇总,助你拿高薪!
  13. html表格列表模板,前端基础 - HTML(二) 表格、表单、列表
  14. date.gettime()返回的是什么?
  15. Java好学吗?现在待遇如何?
  16. Java培训还是自学
  17. 源码阅读-Record
  18. oc中写c语言的方法,OC语言description步骤和sel
  19. .NET(C#、VB)APP开发——Smobiler平台控件介绍:OCR组件
  20. 【技巧】Edge浏览器更换chrome主题、选项卡悬浮预览(开启实验功能)

热门文章

  1. Android Studio中Eric常用的快捷键
  2. 【Qt教程】2.3 - Qt5 控件 - 按钮组(QPushButton、QToolButton、QRadioButton、QCheckBox)资源编辑器导入资源
  3. leetcode957. Prison Cells After N Days
  4. PASCAL-VOC2012 数据集介绍 及 制作同格式数据
  5. 关于java方法的重载(Overloading),覆写(Override)以及final 方法的几点说明
  6. zend studio如何更改字符集
  7. PJzhang:经典子域名爆破工具subdomainsbrute
  8. 在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。...
  9. 如何 tune spark jobs
  10. bootstrap table 服务器端分页例子