建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

五湖四海@银河护卫队

发帖: 118粉丝: 43

级别 : 版主

发消息 + 关注

发表于2020年02月10日 22:05:30 1683 9
直达本楼层的链接
楼主
显示全部楼层
[大数据] Hadoop-2.6.0-CDH5.15.1移植指南 for 中标麒麟7.5【鲲鹏920(ARM64)】

 

1 CDH简介

CDHCloudera’s Distribution Including Apache Hadoop)是Cloudera的开源大数据平台,基于Web的用户界面,支持大多数Hadoop组件,包括HDFSMapReduceHivePigHbaseZookeeperSqoop,简化了大数据平台的安装、使用难度。

本文主要是描述如何将CDH 5.15.1x86版本中的hadoop相关组件移植到TaiShan服务器上,包含编译部分。CDH的其他组件如果需要移植,也可以参考本文中描述的方法操作。

官方链接:http://archive.cloudera.com/cdh5/cdh/5/hadoop/

类别:大数据

语言: JAVA

 

2 软硬件环境

类别

子项

版本

获取地址(方法)

 

硬件

CPU

Kunpeng 920

iBMC

网络

Ethernet-10GE

iBMC

存储

SATA 4T

iBMC

内存

xxG   xxxMHz

iBMC

OS

NeoKylin

7.5

cat   /etc/neokylin-release

Kernel

4.14.0

cat   /proc/version

 

软件

GCC

4.8.5

gcc -v

Maven

3.5.4

参考下面安装说明

JDK

1.8.0_191

参考下面安装说明

Protoc

2.5.0

参考下面安装说明


3 编译环境准备

3.1 安装Openjdk

下载并安装到指定目录(如/opt/tools/installed):

wget  https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

tar   -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

mv jdk8u191-b12   /opt/tools/installed/

【注】:使用系统自带Openjdk软件包可以通过执行“yum -y install java-1.8.0*进行安装然后参考如下步骤配置JAVA_HOME环境变量;

配置java环境变量,在/etc/profile文件末尾处增加下面的代码:

JAVA_HOME=/opt/tools/installed/jdk8u191-b12

PATH=$JAVA_HOME/bin:$PATH

export   JAVA_HOME PATH

运行下面命令,使修改的环境变量生效:

source   /etc/profile

3.2 安装GCC等依赖项

挂载OS镜像:

mount -o loop   /home/NeoKylin/nsV7Update5-adv-lic-build05-aarch64.iso /mnt/NeoKylin/

修改/etc/yum.repos.d/ns7-adv.repo文件,配置yum本地源:

[ns7-adv-os]

name=NeoKylin Linux Advanced Server 7 - Os

baseurl= file:///mnt/NeoKylin

gpgcheck=0

gpgkey=file:///mnt/NeoKylin/RPM-GPG-KEY-neokylin-release

enabled=1

        运行下面的命令,使yum源配置生效:

yum clean all

yum makecache

yum安装GCC等相关依赖:

sudo yum install -y snappy snappy-devel autoconf automake libtool   git gcc gcc-c++ make cmake openssl openssl-devel ncurses-devel zlib zlib-devel   bzip2 bzip2-devel bzip2-libs readline readline-devel bison zip unzip tar tcl java-1.8.0*   bison* ncurses*

3.3 安装Maven

下载并安装到指定目录(如/opt/tools/installed):

wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxf apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /opt/tools/installed/

修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:

JAVA_HOME=/opt/tools/installed/jdk8u191-b12

M2_HOME=/opt/tools/installed/apache-maven-3.5.4

PATH=$M2_HOME/bin:$JAVA_HOME/bin:$PATH

export M2_HOME   JAVA_HOME PATH

运行下面的命令,是修改的环境变量生效:

source /etc/profile

修改maven配置文件中的:本地仓路径、远程仓等:

配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml

本地仓库配置:(可选,可保持默认)

<!--默认在“~/.m2/”目录下,可以按下行格式修改成你自己想保存的目录-->

<localRepository>/path/to/local/repo</localRepository>

远程仓库配置:(可选,默认用maven2官方远程仓但访问慢,建议用国内maven仓)

<!--修改成自己搭建的maven仓库,如果没有,可以使用下面的华为开源maven -->

<mirror>
  <id>
huaweimaven</id>
  <name>
huaweicloud maven</name>
  <url>
https://mirrors.huaweicloud.com/repository/maven/</url>
  <mirrorOf>central</mirrorOf>
  </mirror>

配置代理:(可选,外网环境下不用配置maven的代理)

  <proxies>

   <proxy>

        <id>optional</id>

        <active>true</active>

        <protocol>http</protocol>

      <username>用户名</username>

      <password>密码</password>

      <host>代理服务器网址</host>

      <port>代理服务器端口</port>

        <nonProxyHosts>local.net|some.host.com</nonProxyHosts>

    </proxy>

  </proxies>

3.4 gccg++c++增加-fsigned-char选项

1、对gcc增加-fsigned-char选项

1)使用which gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)

which gcc

2)更改gcc的名字(比如改成gcc-arm

mv /usr/bin/gcc   /usr/bin/gcc-arm

3)、进入gcc所在目录执行vi gcc,并填入如下内容保存:

#! /bin/sh

/usr/bin/gcc-arm -fsigned-char "$@"

cd /usr/bin/

vi gcc

4)、执行chmod +x gcc给脚本添加执行权限

chmod +x gcc

2、对g++增加-fsigned-char选项

1)使用which g++命令寻找g++所在路径(一般位于/usr/bin/g++)

which g++

2)更改g++的名字(比如改成g++-arm

mv /usr/bin/g++   /usr/bin/g++-arm

3)、进入g++所在目录执行vi g++,并填入如下内容保存:

#! /bin/sh

/usr/bin/g++-arm -fsigned-char "$@"

cd /usr/bin/

vi g++

4)、执行chmod +x g++给脚本添加执行权限

chmod +x g++

3、对c++增加-fsigned-char选项

1)使用which c++命令寻找g++所在路径(一般位于/usr/bin/c++)

which c++

2)更改c++的名字(比如改成c++-arm

mv /usr/bin/c++   /usr/bin/c++-arm

3)、进入c++所在目录执行vi c++,并填入如下内容保存:

#! /bin/sh

/usr/bin/c++-arm -fsigned-char "$@"

cd /usr/bin/

vi c++

4)、执行chmod +x c++给脚本添加执行权限

chmod +x c++

3.5 安装Protoc

下载并解压源码:

wget   https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

tar   -zxf protobuf-2.5.0.tar.gz

cd   protobuf-2.5.0

修改autogen.sh文件的第20-24行:

vi   autogen.sh

注释如下红框内注释内容并增加如下:

curl -L   https://github.com/google/googletest/archive/release-1.5.0.tar.gz | tar zx

mv googletest-release-1.5.0 gtest

protoc-1.PNG

打ARM补丁:

cp   protoc.patch ./src/google/protobuf/stubs/

cd   ./src/google/protobuf/stubs/

patch   -p1 < protoc.patch

cd   -

注:proctoc ARM补丁为protoc.patch.rar(从附件中解压获取);


        编译并安装到系统默认目录:

./autogen.sh   && ./configure CFLAGS='-fsigned-char' && make && make   install

3.6 编译安装Snappy 1.1.3

下载并解压源码:

wget   https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz

tar   zxvf snappy-1.1.3.tar.gz

cd   snappy-1.1.3/

执行./configure进行编译配置:

./configure

        执行make进行编译:

make   -j32

        执行make install编译安装:

make   install

snappy-1.1.3-1.PNG

查看编译后的结果:

cd   /usr/local/lib

snappy-1.1.3-2.PNG

3.7 编译安装Hadoop-Snappy

通过git clone下载源码:

git   clone https://github.com/electrum/hadoop-snappy.git

修改src/main/native/Makefile.am文件:

vi   src/main/native/Makefile.am

根据如果红框内的内容进行修改

hadoop-snappy-1.PNG

         执行mvn package进行编译:

mvn   package

hadoop-snappy-2.PNG

         查看编译后的jar文件:

cd   target/hadoop-snappy-0.0.1-SNAPSHOT-tar/hadoop-snappy-0.0.1-SNAPSHOT/lib

hadoop-snappy-3.PNG

【注】:hadoop-snappy-0.0.1-SNAPSHOT.jar文件在hadoop-2.6.0-cdh5.15.1编译完成后,需将该文件拷贝到$HADOOP_HOME/lib库目录下

 

4 软件移植分析

1、使用checkSo工具(获取地址:https://bbs.huaweicloud.com/forum/thread-22679-1-1.html)检查hadoop-2.6.0-cdh5.15.1对应x86的安装包或源码包是否有依赖x86so文件,通过检查hadoop-2.6.0-cdh5.15.1的源码hadoop-2.6.0-cdh5.15.1-src.tar.gz没有发现有依赖的x86架构的so文件。

  

5 依赖库编译

5.1 编译snappy-java-1.0.4.1.jar

SnappyGoogle开源的压缩/解压缩库,snappy-java封装了其接口

1)从github网站下载源码并解压

wget https://codeload.github.com/xerial/snappy-java/tar.gz/snappy-java-1.0.4.1

mv snappy-java-1.0.4.1   snappy-java-1.0.4.1.tar.gz

tar -xzvf snappy-java-1.0.4.1.tar.gz

cd snappy-java-snappy-java-1.0.4.1

        2)修改Makefile文件中snappy源码的下载路径:

vi Makefile

snappy-java-1.0.4.1-1.PNG

注】因为默认的路径已经失效,需要如下使用新的下载路径:http://repository.timesys.com/buildsources/s/snappy/snappy-1.0.4/snappy-1.0.4.tar.gz

3)安装libstdc++-static-4.8.5-28.el7.ns7.02.aarch64.rpmglibc-static-2.17-222.el7.ns7.01.aarch64.rpm

wget http://download.cs2c.com.cn/neokylin/desktop/everything/7.0/aarch64/os/Packages/libstdc++-static-4.8.5-28.el7.ns7.02.aarch64.rpm

rpm -ivh   libstdc++-static-4.8.5-28.el7.ns7.02.aarch64.rpm

wget http://download.cs2c.com.cn/neokylin/desktop/everything/7.0/aarch64/os/Packages/glibc-static-2.17-222.el7.ns7.01.aarch64.rpm

rpm -ivh   glibc-static-2.17-222.el7.ns7.01.aarch64.rpm

4)执行make编译并查看编译后的snappy-java-1.0.4.1.jar

make

cd   target/

snappy-java-1.0.4.1-2.PNG

4)将编译后的snappy-java-1.0.4.1.jar覆盖到本地maven仓对应路径

cp   snappy-java-1.0.4.1.jar   /root/.m2/repository/org/xerial/snappy/snappy-java/1.0.4.1/

snappy-java-1.0.4.1-3.PNG

5.2 编译leveldbjni-all-1.8.jar

Leveldb是一个google实现的非常高效的kv数据库;

官方链接:https://github.com/google/leveldb

依据网上资料,编译leveldbjni-all-1.8.jar,需要先将leveldb和snappy编译成静态库,再将两个静态库编译进leveldbjni.so里面,最后生成leveldbjni-all-1.8.jar压缩包。

注:如下编译snappy-1.1.3、leveldb-1.20和leveldbjni需要在同一个ssh窗口执行,切换ssh会导致如下临时定义的SNAPPY_HOME和LEVELDB_HOME变量失效,如发生ssh窗口异常,编译leveldbjni时需要先定义临时SNAPPY_HOME和LEVELDB_HOME变量(变量路径要正确);

5.2.1 编译snappy-1.1.3

wget https://github.com/google/snappy/archive/1.1.3.tar.gz

tar   -zxvf 1.1.3.tar.gz

cd   snappy-1.1.3/

./autogen.sh

./configure   --with-pic

snappy-1.1.3--1.PNG

make   -j20

snappy-1.1.3--2.PNG

export   SNAPPY_HOME=`pwd`

cp   .libs/libsnappy.a .

5.2.2 编译leveldb-1.20

1)源码下载并解压

wget https://github.com/google/leveldb/archive/v1.20.tar.gz

tar   -zxvf v1.20.tar.gz

cd   leveldb-1.20

        2)修改build_detect_platform

vi   build_detect_platform

 

注释如下红框内的3行注释内容,并添加如下三行:

echo   "PLATFORM_CCFLAGS=$PLATFORM_CCFLAGS $PLATFORM_SHARED_CFLAGS"   >> $OUTPUT

echo   "PLATFORM_CXXFLAGS=$PLATFORM_CXXFLAGS $PLATFORM_SHARED_CFLAGS"   >> $OUTPUT

echo   "PLATFORM_SHARED_CFLAGS=" >> $OUTPUT

leveldb-1.20-1.PNG

3)修改Makefile,增加-fPIC的编译选项

vi   Makefile

增加-fPIC

leveldb-1.20-2.PNG

4)对比附件补丁leveldbpatch.zip,将代码合入(替换源码压缩包对应路径中的文件即可):

5)执行编译

make   -j20

export   LEVELDB_HOME=`pwd`

cp   out-static/libleveldb.a .

 

5.2.3 编译leveldbjni

1)通过git获取源码

git   clone https://github.com/fusesource/leveldbjni.git

cd   leveldbjni

export   LEVELDBJNI_HOME=`pwd`

        2)修改pom.xml

vi   pom.xml

 

注释如下红框内注释内容,并增加如下两行

    <module>leveldbjni-linux64</module>

      <module>leveldbjni-all</module>

leveldbjni-all-1.8-1.PNG

leveldbjni-all-1.8-2.PNG

leveldbjni-all-1.8-3.PNG

3)修改leveldbjni-all/pom.xml文件

vi   leveldbjni-all/pom.xml

 

注释如下红框内注释内容,并按红框内框内容进行修改

leveldbjni-all-1.8-4.PNG

leveldbjni-all-1.8-5.PNG

4)修改所有pom.xml文件中的版本号

将所有pom.xml文件中的版本“99-master-SNAPSHOT”改为“1.8”:

sed -i   's/99-master-SNAPSHOT/1.8/g' `find . -name pom.xml`

5)编译选项增加 -fsigned-char

vim leveldbjni/src/main/native-package/Makefile.in

增加-fsigned-char

leveldbjni-all-1.8-6.PNG

6)修改automake版本号

vi   leveldbjni/src/main/native-package/aclocal.m4

vi   leveldbjni/src/main/native-package/configure

automake版本号从1.14改成1.13,注意不要改成1.13.4(根据系统安装automake版本号进行修改)

7)执行maven编译并查看编译结果

export   LIBRARY_PATH=${SNAPPY_HOME};export C_INCLUDE_PATH=${LIBRARY_PATH};export   CPLUS_INCLUDE_PATH=${LIBRARY_PATH}

mvn   clean package -P download -P linux64-aarch64 –DskipTests

cd   leveldbjni-all/target/

leveldbjni-all-1.8-7.PNG

注:执行maven编译会自动编译五个模块:leveldbjni-projectleveldbjnileveldbjni-linux64leveldbjni-linux64-aarch64leveldbjni-all

8)将编译后的leveldbjni-all-1.8.jar复制到本地maven仓对应路径进行覆盖

cp   leveldbjni-all-1.8.jar   /root/.m2/repository/org/fusesource/leveldbjni/leveldbjni-all/1.8/

leveldbjni-all-1.8-8.PNG

5.3 编译jline-2.11.jar

编译依赖关系jline-2.11 / jline-2.12 à jansi-1.11 à jansi-native-1.5

编译jansi-native-1.5jansi1.11(编译命令使用mvn package -Dmaven.javadoc.skip=true),编译生成的jansi-1.11.jar拷贝到maven本地仓库

 

1)下载jansi-native-1.5源码,并解压

wget https://github.com/fusesource/jansi-native/archive/jansi-native-1.5.tar.gz

tar   -zxvf jansi-native-1.5.tar.gz

cd   jansi-native-jansi-native-1.5/

        2)编译jansi-native-1.5并查看编译结果

mvn   package -Dmaven.javadoc.skip=true

cd   target/

jansi-native-1.5-1.PNG

3)将编译后的jansi-native-1.5.jarjansi-native-1.5-linux64.jar拷贝到本地maven仓对应路径

cp   jansi-native-1.5.jar   /root/.m2/repository/org/fusesource/jansi/jansi-native/1.5/

cp   jansi-native-1.5-linux64.jar   /root/.m2/repository/org/fusesource/jansi/jansi-native/1.5/

4)将编译后的libjansi.so拷贝到maven安装包解压对应路径

mkdir -p   /home/zdk/others/apache-maven-3.5.4/lib/jansi-native/aarch64-Linux

cp ./native-build/target/lib/libjansi.so   /home/zdk/others/apache-maven-3.5.4/lib/jansi-native/aarch64-Linux/

cd /home/zdk/others/apache-maven-3.5.4/lib/jansi-native/aarch64-Linux/

jansi-native-1.5-2.PNG

5)下载jansi-1.11源码并解压

wget   https://github.com/fusesource/jansi/archive/jansi-project-1.11.tar.gz

tar   zxvf jansi-project-1.11.tar.gz

6)进入jansi-1.11解压目录

cd   jansi-jansi-project-1.11/jansi/

        7)修改pom.xml

vi pom.xml

 

注释如下红框内容

jansi-1.11-1.PNG

8)使用maven编译并查看编译结果

mvn   clean package -Dmaven.javadoc.skip=true

cd   target/

jansi-1.11-2.PNG

9)将编译后的jansi-1.11.jar拷贝到本地maven仓对应路径

cp   jansi-1.11.jar /root/.m2/repository/org/fusesource/jansi/jansi/1.11/

jansi-1.11-3.PNG

10)下载jline-2.11源码,并解压

wget   https://github.com/jline/jline2/archive/jline-2.11.tar.gz

tar   zxvf jline-2.11.tar.gz

cd   jline2-jline-2.11/

        11)执行maven编译并查看编译结果

mvn   package

cd   target/

jline-2.11-1.PNG

12)将编译后的jline-2.11.jar拷贝到本地maven仓对应路径

cp   jline-2.11.jar /root/.m2/repository/jline/jline/2.11/

jline-2.11-2.PNG

 

6 Hadoop-2.6.0-CDH5.15.1编译

6.1 下载源码

下载代码并解压:

wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.15.1-src.tar.gz

tar -zxvf hadoop-2.6.0-cdh5.15.1-src.tar.gz

6.2 patch补丁

进入hadoop源码解压目录

cd hadoop-2.6.0-cdh5.15.1/

在解压路径执行如下命令打如下附件patch补丁:

export   MAVEN_OPTS="-Xms1024m -Xmx10G -XX:PermSize=4096m"

yum install patch

patch -p0 <   HADOOP-11484.001.patch

注:附件patch补丁名为HADOOP-11484.001.patch.rar

6.3 执行编译

执行编译并查看编译后的结果:

mvn clean package -DskipTests   -Pdist,native -Dtar -Dsnappy.lib=/home/hadoop-snappy-master/target/hadoop-snappy-0.0.1-SNAPSHOT-tar/hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-aarch64-64/   -Dbundle.snappy

cd hadoop-dist/target/

注:标红部分为3.7章节编译安装hadoop-snappy后产生的目录

hadoop-cdh-1.PNG

6.4 注意

    1)编译过程中遇到问题可以参考9 FAQ

    2)第一次编译的时候会从远程maven仓库下载jar包到本地仓库,但是有几个jar包是X86的,所以在hadoop编译完成及第5章的jar包编译完成后,需要将第5章编译的jar包替换掉本地仓库中相应路径的jar包,然后重新编译一次hadoop。第二次编译会很快,所以不用担心。

 

7 验证

1、编译验证

使用checkSo工具(获取地址:https://bbs.huaweicloud.com/forum/thread-22679-1-1.html)

检查编译后的hadoop-dist/target/hadoop-2.6.0-cdh5.15.1.tar.gz中是否不再含有依赖的x86架构的so文件,检查方法参考工具中的 《CheckSo使用说明.docx》,如果还有依赖的x86架构的so文件,则需要继续完成对应jar包的编译,直到无依赖的x86架构的so文件后,再次编译该组件并通过checkSo工具检查确认,编译后的组件包不再有依赖的x86架构的so文件则表明编译成功。

通过checkSo工具检查hadoop-dist/target/路径下编译后的hadoop-2.6.0-cdh5.15.1.tar.gz发现存在如下依赖的so文件:

hadoop-cdh-2.PNG

上图依赖库的编译见 5 依赖库编译 章节(需要编译jline-2.11.jar、leveldbjni-all-1.8.jar、snappy-java-1.0.4.1.jar),完成依赖库编译后需要重新编译前面编译包含依赖依赖库的hadoop-2.6.0-cdh5.15.1.tar.gz,直到编译后的hadoop-2.6.0-cdh5.15.1.tar.gz通过checkSo工具检查不再有依赖so等文件

2、功能验证

暂无。

 

8 参考信息

  1. http://archive.cloudera.com/cdh5/cdh/5/hadoop/

  2. http://hadoop.apache.org/

     

9 FAQ

9.1 git clone报证书错误

9.1.1 问题现象

git-clone-1.PNG

9.1.2 解决方法

git config --global http."sslVerify" false

9.2 wget下载https链接报证书错误

9.2.1 问题现象

wget-1.PNG

9.2.2 解决方法

在下载命令后面跟参数--no-check-certificate

9.3 hadoop编译过程下载apache-tomcat-6.0.44.tar.gz失败

9.3.1 问题现象

hadoop-cdh-error-tomcat-1.PNG

9.3.2 解决方法

在服务器下载apache-tomcat-6.0.44.tar.gz失败,报这个错误时手动下载“http://archive.cloudera.com/tarballs/apache-tomcat-6.0.53.tar.gz”并上传到“hadoop-2.6.0-cdh5.15.1/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads”路径下。

9.4 编译leveldbjniautomake命令找不到

9.4.1 问题现象

leveldbjni-all-1.8-error-2.PNG

9.4.2 解决方法

没有安装automake-1.14,可以使用yum install automake安装。如果yum源上找的没有1.14的版本,则需要修改leveldbjni-linux64/target/native-build下的配置文件。修改leveldbjni/src/main/native-package/configureleveldbjni/src/main/native-package/aclocal.m4,将里面的1.14改成服务器上安装的automake版本,比如1.13

9.5 编译leveldbjnierror: required file 'autotools/compile' not found

9.5.1 问题现象

leveldbjni-all-1.8-error-1.PNG

9.5.2 解决方法

根据问题信息,需要手动进入相应目录,手动执行相应命令安装。

cd leveldbjni-linux64/target/native-build

automake   --add-missing

 

leveldbpatch.zip 34.44 KB,下载次数:18

HADOOP-11484.001.patch.rar 789 Bytes,下载次数:11

protoc.patch.rar 1.04 KB,下载次数:20

举报
分享

分享文章到朋友圈

分享文章到微博

天天向上123

发帖: 0粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020年03月26日 15:41:47
直达本楼层的链接
沙发
显示全部楼层

hadoop-2.6.0-cdh5.15.1 源码编译报:


Detected JDK Version: 1.8.0-191 is not in the allowed range [1.7.0,1.7.1000}].


这个该如何解决呢?

点赞 评论 引用 举报

五湖四海@银河护卫队

发帖: 118粉丝: 43

级别 : 版主

发消息 + 关注

发表于2020年03月26日 19:28:12
直达本楼层的链接
板凳
显示全部楼层

回复:天天向上123 发表于 2020-3-26 15:41 hadoop-2.6.0-cdh5.15.1 源码编译报:Detected JDK Version: 1.8.0-191 is not in the allow

这个是因为jdk版本不在pom.xml定义的jdk范围,改下pom.xml中的javaversion范围就可以了,即把如下几个参数中的1.7都替换成1.8:


<javaVersion>1.7</javaVersion>

<targetJavaVersion>1.7</targetJavaVersion>


<requireJavaVersion>

<version>[1.7,)</version>

</requireJavaVersion>




点赞 评论 引用 举报

五湖四海@银河护卫队

发帖: 118粉丝: 43

级别 : 版主

发消息 + 关注

发表于2020年03月27日 15:54:05
直达本楼层的链接
地板
显示全部楼层

如果涉及libnetty的so依赖,编译下netty-all-4.0.23.Final.jar即可


编译下netty-all-4.0.23.Final.jar参考https://bbs.huaweicloud.com/forum/thread-42037-1-1.html

点赞 评论 引用 举报

陈小哥cw

发帖: 0粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020年04月21日 21:07:17
直达本楼层的链接
5#
显示全部楼层

请问一下,我编译hadoop源码时报以下错,应该如何解决,谢谢!

[INFO] Apache Hadoop Annotations .......................... FAILURE [  0.854 s]


[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project hadoop-annotations: Compilation failure: Compilation failure:

[ERROR] /root/software/hadoop-2.6.0-cdh5.15.1/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/IncludePublicAnnotationsStandardDoclet.java:[20,22] error: package com.sun.javadoc does not exist

[ERROR] /root/software/hadoop-2.6.0-cdh5.15.1/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/IncludePublicAnnotationsStandardDoclet.java:[21,22] error: package com.sun.javadoc does not exist

[ERROR] /root/software/hadoop-2.6.0-cdh5.15.1/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/IncludePublicAnnotationsStandardDoclet.java:[22,22] error: package com.sun.javadoc does not exist

[ERROR] /root/software/hadoop-2.6.0-cdh5.15.1/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/IncludePublicAnnotationsStandardDoclet.java:[23,37] error: package com.sun.tools.doclets.standard does not exist

[ERROR] /root/software/hadoop-2.6.0-cdh5.15.1/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/IncludePublicAnnotationsStandardDoclet.java:[38,16] error: cannot find symbol

[ERROR]   symbol:   class LanguageVersion

[ERROR]   location: class IncludePublicAnnotationsStandardDoclet

[ERROR] /root/software/hadoop-2.6.0-cdh5.15.1/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/IncludePublicAnnotationsStandardDoclet.java:[42,30] error: cannot find symbol

[ERROR]   symbol:   class RootDoc

[ERROR]   location: class IncludePublicAnnotationsStandardDoclet

[ERROR] /root/software/hadoop-2.6.0-cdh5.15.1/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/IncludePublicAnnotationsStandardDoclet.java:[58,6] error: cannot find symbol


评论

openjdk安装是完整的吗,执行yum -y install java-1.8* 安装完整jdk再编译试下

... 查看全部
点赞 评论 引用 举报

五湖四海@银河护卫队

发帖: 118粉丝: 43

级别 : 版主

发消息 + 关注

发表于2020年04月22日 09:08:04
直达本楼层的链接
6#
显示全部楼层

回复:陈小哥cw 发表于 2020-4-21 21:07 请问一下,我编译hadoop源码时报以下错,应该如何解决,谢谢! Apache Hadoop Annotations .....................

openjdk安装是完整的吗,执行yum -y install java-1.8* 安装完整jdk再编译试下

点赞 评论 引用 举报

五湖四海@银河护卫队

发帖: 118粉丝: 43

级别 : 版主

发消息 + 关注

发表于2020年07月31日 12:01:23
直达本楼层的链接
7#
显示全部楼层

编译过程报“package com.sun.javadoc does not exist”和“cannot find symbol”时,使用openjdk 1.7并配置到环境变量(/etc/profile)中,然后使用openjdk 1.7编译即可解决该问题:

image.png

点赞 评论 引用 举报

90kk

发帖: 0粉丝: 0

级别 : 新手上路

发消息 + 关注

更新于2020年08月28日 11:23:29
直达本楼层的链接
8#
显示全部楼层

请问一下,cloudera manager 部署的时候很多 so 文件不支持,有解决方案吗 

"path": "/cloudera-manager-centos7-cm5.8.3_x86_64.tar.gz/cm-5.8.3/lib64/cmf/agent/build/env/lib/libtorrent-rasterbar.so.8.0.0",

"path": "/cloudera-manager-centos7-cm5.8.3_x86_64.tar.gz/cm-5.8.3/lib64/cmf/agent/build/env/lib/python2.7/site-packages/Thrift-0.7.0-py2.7-linux-x86_64.egg/thrift/protocol/fastbinary.so",

"path": "/cloudera-manager-centos7-cm5.8.3_x86_64.tar.gz/cm-5.8.3/lib64/cmf/agent/build/env/lib/python2.7/site-packages/diewithparent-1.0-py2.7-linux-x86_64.egg/diewithparent.so",

"path": "/cloudera-manager-centos7-cm5.8.3_x86_64.tar.gz/cm-5.8.3/lib64/cmf/agent/build/env/lib/python2.7/site-packages/guppy-0.1.10-py2.7-linux-x86_64.egg/guppy/heapy/heapyc.so",

"path": "/cloudera-manager-centos7-cm5.8.3_x86_64.tar.gz/cm-5.8.3/lib64/cmf/agent/build/env/lib/python2.7/site-packages/guppy-0.1.10-py2.7-linux-x86_64.egg/guppy/sets/setsc.so",

"path": "/cloudera-manager-centos7-cm5.8.3_x86_64.tar.gz/cm-5.8.3/lib64/cmf/agent/build/env/lib/python2.7/site-packages/libtorrent.so"

点赞 评论 引用 举报

lw2019

发帖: 118粉丝: 43

级别 : 版主

发消息 + 关注

发表于2020年08月28日 14:05:30
直达本楼层的链接
9#
显示全部楼层

回复:90kk 发表于 2020-8-28 11:17 请问一下,cloudera manager 部署的时候很多 so 文件不支持,有解决方案吗&amp;quot;path&amp;quot;: &amp;quot;/clou

cloudera manager是商用版本,不一定能支持arm

点赞 评论 引用 举报

goodMoodStudy

发帖: 3粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020年09月03日 11:57:36
直达本楼层的链接
10#
显示全部楼层

编译leveldbjni报错

错误信息:

[ERROR] Bundle org.fusesource.leveldbjni:leveldbjni-all:bundle:1.8 : Native library not found in JAR: META-INF/native/linux64/aarch64/libleveldbjni.so

[ERROR] Error(s) found in bundle configuration

[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary:

[INFO]

[INFO] leveldbjni-project 1.8 ............................. SUCCESS [  0.179 s]

[INFO] leveldbjni ......................................... SUCCESS [  3.445 s]

[INFO] leveldbjni-linux64 ................................. SUCCESS [ 13.634 s]

[INFO] leveldbjni-linux64-aarch64 ......................... SUCCESS [  6.281 s]

[INFO] leveldbjni-all 1.8 ................................. FAILURE [  0.542 s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD FAILURE

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 24.666 s

[INFO] Finished at: 2020-09-03T11:30:11+08:00

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal org.apache.felix:maven-bundle-plugin:2.3.7:bundle (default-bundle) on project leveldbjni-all: Error(s) found in bundle configuration -> [Help 1]

[ERROR]

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR]

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

[ERROR]

[ERROR] After correcting the problems, you can resume the build with the command

[ERROR]   mvn <goals> -rf :leveldbjni-all

image.png


解决方法:

leveldbjni-all/pom.xml多了一个linux64,要删掉

image.png

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册