Mac M1中Idea编译hadoop2.6.0流程

网友投稿 399 2022-11-16

Mac M1中Idea编译hadoop2.6.0流程

1. 背景

更换Mac M1后,发现无法编译Hadoop2.6.0了,本文总结了Mac基于Idea编译Hadoop2.6.0的难点及解决办法。

2. 下载JDK7并配置

为了防止出现Exception in thread “main” java.lang.AssertionError: Missing tools.jar at: /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/Classes/classes.jar. Expression: file.exists()报错,在安装后,增加一个软链接:

mkdir /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/Classes ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/lib/tools.jar /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/Classes/classes.jar

3. 安装protoc 2.5.0

下载:https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0

解压后,在src/google/protobuf/stubs/platform_macros.h文件中,增加arm芯片相关配置:

找到以下代码:

#else #error Host architecture was not detected as supported by protobuf

在上面增加:

#elif defined(__arm64__) #define GOOGLE_PROTOBUF_ARCH_ARM 1 #define GOOGLE_PROTOBUF_ARCH_64_BIT 1

效果如下所示:

在编译安装前,如果已经安装protoc3,修改protoc命令名,以免被覆盖:

mv /usr/local/bin/protoc /usr/local/bin/protoc3

安装protoc2.5.0:

./configure make make check make install

安装后,检查版本:

protoc --version

4. hadoop pom增加依赖

为了防止出现com.sun.javadoc不存在错误,可以在父模块hadoop-main模块下的pom.xml中增加配置:

jdk.tools jdk.tools 1.7 system /Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home/lib/tools.jar

4. 效果

执行单元测试,发现可以正常运行:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:The 15th Chinese Northeast Collegiate Programming Contest C. Vertex Deletion(树形dp)
下一篇:基于TF32A09系列芯片的高速数据流加密的解决方案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~