【大数据HIVE】Hive 编译遇到Protobuf 2.5 不支持的问题

36 篇文章 5 订阅
12 篇文章 0 订阅

前言

在大数据数仓实践过程中,hive技术栈充当了非常重要的环节,很多大数据平台,中台都是基于hive+hadoop+spark来搭建的,所以我们对于hive的编译,构建,安装是需要掌握的非常清楚。

而我们大数据的研发人员比较常用mac电脑来开发,mac 最新的 m1/m2 arm版本的系统在编译hive/hadoop的过程中会遇到protobuf编译失败的问题。

下面就是在编译过程中,遇到的问题,希望能给大家带来清晰的指导

编译命令

mvn -B -e clean package -Pdist -DskipTests

[ERROR] Failed to execute goal com.github.os72:protoc-jar-maven-plugin:3.5.1.1:run (default) on project hive-standalone-metastore: Error resolving artifact: com.google.protobuf:protoc:2.5.0: com.google.protobuf:protoc:exe:osx-aarch_64:2.5.0 was not found in https://repo.maven.apache.org/maven2 during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of central has elapsed or updates are forced

https://repo1.maven.org/maven2/com/google/protobuf/protoc/3.17.3/
[INFO] Resolving artifact: com.google.protobuf:protoc:3.17.3, platform: osx-aarch_64
需要修改os.arch

mvn -B -e clean package -Pdist -DskipTests -Dos.arch=x86_64

直接编译会遇到:

[ERROR] Failed to execute goal com.github.os72:protoc-jar-maven-plugin:3.5.1.1:run (default) on project hive-standalone-metastore: Error resolving artifact: com.google.protobuf:protoc:2.5.0: Could not find artifact com.google.protobuf:protoc:exe:osx-aarch_64:2.5.0 in central (https://repo.maven.apache.org/maven2)

这是由于Hive依赖于protoc-2.5.0的库在Maven的central repo, 没有ARM64版本的,有两种方式来规避该问题,一种是修改依赖库的版本,另一种是手动编译。

规避方式:

直接编译,也会报错,需要打上补丁,脚本如下:

# install dependencies for protobuf buildapt-get install autoconf automake libtool -y# build protobuf-2.5.0 for ARM64 archpushd /usr/local/src/
wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz# Fix protobuf-2.5.0 building on ARM64wget -O protobuf-2.5.0-arm64.patch https://www.dropbox.com/s/713wql5cw9dfxhx/protobuf-2.5.0-arm64.patch?dl=0
tar xfz protobuf-2.5.0.tar.gzcd protobuf-2.5.0
patch -p1 < ../protobuf-2.5.0-arm64.patch
apt-get install build-essential
apt-get install automake libtool autoconf
./autogen.sh
./configure --prefix=/usr
make
make installpopdldconfig
protoc --version

下载 protobuf 包

wget https://github.com/protocolbuffers/protobuf/archive/refs/tags/v2.5.0.tar.gz
tar -xvzf v2.5.0.tar.gz

下载自github的代码需要首先执行 $ ./autogen.sh 生成configure文件但注意autogen.sh 需要gtest包,默认是从 googletest.googlecode.com下载,国内需要FQ才能访问,autogen.sh运行失败

修改一下autogen.sh
将这段:

echo "Google Test not present.  Fetching gtest-1.5.0 from the web..."

curl http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2 | tar jx

mv gtest-1.5.0 gtest

修改为:

wget https://github.com/google/googletest/archive/release-1.5.0.tar.gz
tar xzvf release-1.5.0.tar.gz
mv googletest-release-1.5.0 gtest

编译:

$ ./configure 
$ make 
$ make check 
$ make install 
我使用的是centos系统 
/usr/local/bin 
/usr/local/lib, 
/usr/local/include 是也系统默认路径之一,所以到这一步就可以使用protobuf了 
$ protoc -I=./ --cpp_out=./ test.proto 
到你的test.proto文件所在目录使用命令
protoc -I=./ --cpp_out=./ 生成C++版本的协议文件 
一切OK的话,你回在当前目录看到.h和.cc文件

希望对正在查看文章的您有所帮助,记得关注、评论、收藏,谢谢您

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 大数据Hive离线计算开发实战教案主要包括以下几个方面的内容: 1. 前期数据准备和环境搭建:介绍如何准备数据集、搭建Hadoop分布式环境以及安装和配置Hive。 2. Hive表的创建与管理:讲解如何通过Hive创建和管理表,包括表的分区、桶和索引等操作。同时介绍如何通过HiveQL语言对数据进行增删改查。 3. 数据清洗与转换:介绍如何使用Hive进行数据清洗和转换,包括数据去重、空值处理、数据格式转换等操作。同时还可以引导学员使用Hive内置函数和自定义函数对数据进行进一步处理和分析。 4. 数据抽取与加载:介绍如何使用Hive进行数据的抽取和加载,包括从其他数据库、Hadoop集群和外部文件系统中导入数据,以及将Hive查询结果导出到其他存储系统。 5. 数据统计与分析:介绍如何使用Hive进行数据统计和分析,包括使用聚合函数、窗口函数和分组操作进行数据分析,以及使用HiveQL编写复杂的数据查询和报表生成。 6. 性能优化与调优:介绍如何通过优化Hive表的设计、调整配置参数、使用分区和桶以及进行数据压缩等手段来提高Hive查询的性能。 7. 实际案例实战:提供一些实际的大数据案例,并引导学员使用Hive进行数据处理和分析。通过实际的案例演练,让学员更好地理解和掌握Hive离线计算的应用。 这些内容将通过理论讲解、实验操作和案例实战相结合的方式进行教学,帮助学员全面了解和掌握Hive离线计算的开发实战技巧,提升其在大数据领域的能力水平。 ### 回答2: 大数据Hive离线计算开发实战教案主要包括以下内容。 首先,教案将介绍Hive的基本概念和原理,包括Hive的架构、数据模型以及HiveQL查询语言的基本语法。 其次,教案将详细讲解Hive的数据导入与导出,包括如何使用Hive将数据从Hadoop集群导入到Hive表中,以及如何将Hive表中的数据导出到其他存储系统。 接着,教案将介绍Hive的表管理和分区设计,包括如何创建Hive表、修改表结构和删除表,以及如何对Hive表进行分区设计来优化查询性能。 此外,教案还将探讨Hive的性能调优和优化技术,如何通过调整Hive的配置参数、使用Hive的索引和分桶等方法来提高查询效率。 最后,教案将提供实际的案例和练习,来帮助学员理解和应用所学的知识。通过实际操作,学员将学会使用Hive进行离线计算开发,包括数据导入导出、表管理、分区设计以及性能调优等方面的技能。 综上所述,大数据Hive离线计算开发实战教案将通过理论讲解、实际操作和案例练习等方式,帮助学员掌握Hive的基本原理和技术,并能够应用Hive进行离线计算开发。通过学习这个教案,学员将能够熟练使用Hive进行数据处理和分析,并能够优化Hive查询性能以提高工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑起来贼好看

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值