3.Hive系列之docker-compose部署升级总结

news2024/11/25 23:36:34

1. 版本号修改

对于升级而言,我们最先考虑的是docker hub中有的较新的版本,然后我们需要简单了解下hadoop2与hadoop3的区别,首先明确的是端口号有所改变,如下图所示

2. Hive镜像构建

刚刚我们修改了Hive为bde2020/hive:3.1.2-postgresql-metastore,仓库中并没有,我们就要考虑修改Dockerfile自行构建镜像了

现在可以尝试构建镜像了,并启动

docker build -t bde2020/hive:3.1.2-postgresql-metastore .

3. apt-get update 404 Not Found

哇偶,构建出错

原因:/etc/apt/sources.list中源存在问题,我们修改为目前可用的源即可

RUN sed -i 's/^.*$/deb http:\/\/deb.debian.org\/debian\/ buster main\ndeb-src http:\/\/deb.debian.org\/debian\/ buster main\ndeb http:\/\/deb.debian.org\/debian-security\/ buster\/updates main\ndeb-src http:\/\/deb.debian.org\/debian-security\/ buster\/updates main/g' /etc/apt/sources.list

4. entrypoint.sh文件不存在

再次尝试构建镜像了,并启动,发现如下错误

打开entrypoint.sh文件,发现报错,我们按照提示加上注释即可

5. 版本冲突与格式错误

/opt/hive/conf/hive-env.sh: line 37: $'\r': command not found
/opt/hive/conf/hive-env.sh: line 45: $'\r': command not found
/opt/hive/conf/hive-env.sh: line 46: $'\r': command not found
/opt/hive/conf/hive-env.sh: line 49: $'\r': command not found
/opt/hive/conf/hive-env.sh: line 52: $'\r': command not found
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-3.2.1/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
        at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357)

我们将hive-env.sh格式改为LF,unix格式

Dockerfile中加入这两段解决log冲突问题

# solve log version conflict
RUN cp /opt/hadoop-3.2.1/share/hadoop/common/lib/guava-27.0-jre.jar /opt/hive/lib/
RUN rm -rf /opt/hive/lib/guava-19.0.jar

再次构建尝试运行

6. url链接问题

看起来日志都很正常了,但是我们执行任何hive操作时,报如下错误:

Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive> show databases;
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

控制台没有输出错误日志,我们查看其他地方是由有hive.log

# find / -name hive.log
/tmp/root/hive.log

查看日志,可以发现,url非法了哎,这是因为docker在默认创建网络的时候,会给添加_default后缀导致url非法

Caused by: org.apache.hadoop.hive.metastore.api.MetaException: Got exception: java.net.URISyntaxException Illegal character in hostname at index 49: thrift://docker-hive-hive-metastore-1.docker-hive_default:9083
        at org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.logAndThrowMetaException(MetaStoreUtils.java:168) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.resolveUris(HiveMetaStoreClient.java:267) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:182) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.<init>(SessionHiveMetaStoreClient.java:94) ~[hive-exec-3.1.2.jar:3.1.2]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_232]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_232]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_232]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_232]
        at org.apache.hadoop.hive.metastore.utils.JavaUtils.newInstance(JavaUtils.java:84) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:95) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:148) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:119) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:4299) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:4367) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:4347) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.Hive.getAllFunctions(Hive.java:4603) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.Hive.reloadFunctions(Hive.java:291) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.Hive.registerAllFunctionsOnce(Hive.java:274) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.Hive.<init>(Hive.java:435) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.Hive.create(Hive.java:375) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.Hive.getInternal(Hive.java:355) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.metadata.Hive.get(Hive.java:331) ~[hive-exec-3.1.2.jar:3.1.2]
        at org.apache.hadoop.hive.ql.session.SessionState.setAuthorizerV2Config(SessionState.java:960) ~[hive-exec-3.1.2.jar:3.1.2]
        ... 16 mor

我们修改docker-compose.yaml,指定网络名称即可

# 版本由3改为3.5
version: "3.5"
# solve java.net.URISyntaxException Illegal character in hostname at index 49: thrift://docker-hive-hive-metastore-1.docker-hive_default:9083
networks:
  default:
    name: docker-hive-default

先down后up,再次执行show databases;正常了哎, 也可以看到网络docker-hive-default

(base) PS D:\Java\新建文件夹\docker-hive> docker network ls
NETWORK ID     NAME                  DRIVER    SCOPE
b53167dc0bb1   bridge                bridge    local
6ae196a5dfd6   docker-hive-default   bridge    local
1582f3dcbd8b   docker-hive_default   bridge    local
3e85deffd6b1   host                  host      local
8740d8865907   none                  null      local

现在即使通过beeline连接也是OK的,完结

欢迎关注公众号算法小生,与我沟通交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/629975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ESPG(European Petroleum Survey Group)

数据转换器&#xff08;栅格&#xff09; &#xff0c;数据转换器&#xff08;矢量&#xff09;转换数据时经常会看到EPSG的坐标系标识。那么什么是EPSG呢&#xff1f; ESPG&#xff08;European Petroleum Survey Group&#xff09;坐标系是一种用于地球表面测量和地理信息处…

Xubuntu之将rm删除内容移至回收站(一百七十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

【小沐学Unity3d】Unity3d导入3D模型

文章目录 1、简介1.1 标准文件格式1.2 专有文件格式1.3 从 Autodesk 3ds Max 导入对象1.4 从 Blender 导入对象 2、测试2.1 新建项目2.2 导入fbx2.2 手动调整相机2.3 脚本控制相机 结语 1、简介 Unity 支持多种标准和专有模型文件格式。 Unity 内部使用 .fbx 文件格式作为其导…

【前端 - CSS】第 9 课 - CSS 初体验

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、CSS 定义 2、基础选择器 3、文字控制属性 4、示例代码 5、总结 1、CSS 定义 层叠样式表&#xff08;Cascading Style …

IP组播6_PIM-SM(SSM)详解

目录 1.PIM-SM&#xff08;SSM&#xff09;简介 2.PIM-SM&#xff08;ASM&#xff09;工作原理 3.PIM-SM&#xff08;SSM&#xff09;实验 3.1 PIM-SM&#xff08;SSM&#xff09;常用配置命令 3.2 PIM-SM&#xff08;ASM&#xff09;实验配置步骤 3.3 PIM-SM&#xff08…

HTMLCSS Day01 功能元素与HTTP请求协议详解

文章目录 1.功能元素1.1.列表标签- HTML中列表标签的分类 1.1.1.无序列表:- 无序列表格式:- 无序列表样式- 注意点:- 无序列表应用场景: 1.1.2.有序列表- 有序列表格式:- 有序列表样式 1.1.3.定义列表- 定义列表的格式:- 定义列表的应用场景- 定义列表的注意点 1.2.表格标签- 什…

【算法】手写题

文章目录 画一个三角形实现三栏布局通过position和margin通过float和margin通过flex实现 变量提升题实现边框0.5px深拷贝快速排序手写发布订阅/事件总线 画一个三角形 .box1 {width: 0;height: 0;border: 10px solid;border-color: red transparent transparent transparent;}实…

window编写redis服务启动脚本

日常工作中&#xff0c;每次启动项目总会忘记开启redis服务&#xff0c;并收货一天中的第一个项目报错&#xff0c;然后经历繁琐的文件查找redis所在目录&#xff0c;并点击redis-server.exe&#xff0c;启动服务&#xff0c;于是笔者在想&#xff0c;如果在桌面写个脚本一键启…

新项目,不妨采用这种架构分层,很优雅

在专栏开篇提到过DDD&#xff08;Domain-Driven Design&#xff0c;领域驱动设计&#xff09;学习起来较为复杂&#xff0c;一方面因为其自身涉及的概念颇多&#xff0c;另一方面&#xff0c;我们往往缺乏实战经验和明确的代码模型指导。今天&#xff0c;我们将专注于DDD的分层…

机器学习笔记 - EANet 外部注意论文简读及代码实现

一、论文简述 论文作者提出了一种新的轻量级注意力机制&#xff0c;称之为外部注意力。如图所示&#xff0c;计算自注意力需要首先通过计算自查询向量和自关键字向量之间的仿射关系来计算注意力图&#xff0c;然后通过用该注意力图加权自值向量来生成新的特征图。外部关注的作用…

条款29:假定移动操作不存在、成本高、未使用

移动语义可以说在C11的所有语言特性中占据着首要中的首要地位。“移动容器现在和复制指针一样成本低廉了&#xff01;”这是你很可能听说过的&#xff0c;类似说法还有“复制临时对象现在已经如此高效&#xff0c;如果刻意在撰写代码总避免它&#xff0c;就无异于犯了过早优化的…

java SSM 程序在线评判系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 程序在线评判系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采…

PDCA循环

PDCA循环 由美国质量管理专家沃特阿曼德休哈特&#xff08;Walter A. Shewhart&#xff09;首先提出的&#xff0c;由戴明采纳、宣传&#xff0c;获得普及&#xff0c;所以又称戴明环。 模型介绍 戴明是一位美国的质量管理大师&#xff0c;却成名于日本。在他的帮助下&#xf…

JQuery 操作Class实现前段交互方案(推荐)

一、JQuery基础控制图片宽度实现动画交互 1.html页面声明周期 //页面生命周期 //页面的数据html&#xff0c;加载完成&#xff0c; 图片ajax视频 在异步加载中 //document.ready---DOMContentLoaded ----小程序onload ---Vue created() //页面加载完成 //window.onload…

二叉树的相关操作

一.二叉树 本文的数据结构基于C语言练习。 C语言中的二叉树是一种数据结构&#xff0c;用于表示具有层次关系的数据集合。它由一个根节点开始&#xff0c;每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。 二叉树有许多相关性质&#xff0c;其中一些重要的包…

记录一下idea黄色警戒线问题

记录一下idea黄色警戒线问题 一、通用文件中解决黄色波浪线问题1.选中File中的Settings进入2.点击Editor&#xff0c;选中Inspections&#xff0c;找到General&#xff0c;找到Dulicated code fragment点击取消 二、SQL文件中黄色警告线 一、通用文件中解决黄色波浪线问题 1.选…

jvm之7种垃圾回收器解读(下)

目录 G1回收器&#xff1a;区域化分代式 G1回收器的特点&#xff08;优势&#xff09; 空间整合 可预测的停顿时间模型&#xff08;即&#xff1a;软实时soft real-time&#xff09; G1垃圾收集器的缺点 G1回收器的参数设置 G1收集器的常见操作步骤 G1收集器的适用场景 分…

Spring SpringMVC Mybatis 整合 SSM整合 一篇就够了!

SSM详细整合教程 因为XML注解方式实现更加方便&#xff0c;所以我门选用它 文章目录 SSM详细整合教程一、整合思路二、整合步骤0. 前期准备引入Jar包与Web目录创建1. Spring框架编写1.1 创建Application配置文件 2. SpringMvc框架编写2.1 创建Springmvc-config文件2. 2 配置前端…

用栈模拟实现队列(c语言版)

前言 用"栈实现队列",力扣中一道oj题,可以帮助刚接触"栈"和"队列"的新手更好的理解栈和队列这两种结构. 题目来源于力扣: 题目链接:https://leetcode.cn/problems/implement-queue-using-stacks/ 难度:简单 目录 前言一、队列的各接口:1.1 类型…

机器学习实战六步法之数据收集方法(四)

要落地一个机器学习的项目&#xff0c;是有章可循的&#xff0c;通过这六个步骤&#xff0c;小白也能搞定机器学习。 看我闪电六连鞭&#xff01;&#x1f923; 数据收集 数据是机器学习的基础&#xff0c;没有数据一切都是空谈&#xff01;数据集的数据量和数据的质量往往决…