1 简介
OrientDB是兼具文档数据库的灵活性和图形数据库管理链接能力的可深层次扩展的文档-图形数据库管理系统。可选无模式、全模式或混合模式下。支持许 多高级特性,诸如ACID事务、快速索引,原生和SQL查询功能。可以JSON格式导入、导出文档。若不执行昂贵的JOIN操作的话,如同关系数据库可在几毫秒内可检索数以百记的链接文档图。
官方链接:https://orientdb.com/
类别:数据库
2 环境
3 依赖安装
3.1 安装OpenJDK
下载并安装到指定目录(如/opt/tools/installed):
配置java环境变量,在/etc/profile文件末尾处增加下面的代码:
运行下面命令,使修改的环境变量生效:
3.2 安装GCC等依赖项
挂载OS镜像:
修改/etc/yum.repos.d/ns7-adv.repo文件,配置yum本地源:
运行下面的命令,使yum源配置生效:
yum安装GCC等相关依赖:
3.3 安装Maven
下载并安装到指定目录(如/opt/tools/installed):
修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:
运行下面的命令,是修改的环境变量生效:
修改maven配置文件中的:本地仓路径、远程仓等:
3.4 对gcc、g++和c++增加-fsigned-char选项
1、对gcc增加-fsigned-char选项
1)使用which gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)
2)、更改gcc的名字(比如改成gcc-arm)
3)、进入gcc所在目录执行vi gcc,并填入如下内容保存:
#! /bin/sh
/usr/bin/gcc-arm -fsigned-char "$@"
4)、执行chmod +x gcc给脚本添加执行权限
2、对g++增加-fsigned-char选项
1)使用which g++命令寻找g++所在路径(一般位于/usr/bin/g++)
2)、更改g++的名字(比如改成g++-arm)
3)、进入g++所在目录执行vi g++,并填入如下内容保存:
#! /bin/sh
/usr/bin/g++-arm -fsigned-char "$@"
4)、执行chmod +x g++给脚本添加执行权限
3、对c++增加-fsigned-char选项
1)使用which c++命令寻找g++所在路径(一般位于/usr/bin/c++)
2)、更改c++的名字(比如改成c++-arm)
3)、进入c++所在目录执行vi c++,并填入如下内容保存:
#! /bin/sh
/usr/bin/c++-arm -fsigned-char "$@"
4)、执行chmod +x c++给脚本添加执行权限
4 移植分析
使用鲲鹏DevKit工具检查OrientDB-3.0.19对应x86的安装包或源码包是否有依赖x86的so文件,通过检查OrientDB-3.0.19的源码发现有依赖的“libicmp_helper.so,hazelcast-3.10.4.jar”:

需要先编译hazelcast-3.10.4.jar使其中包含的libicmp_helper.so使能arm,编译过程见 “5 依赖库编译”。
5 依赖库编译
1、编译hazelcast-3.10.4.jar
1)从github网站下载源码并解压
2)、进入解压目录
3)、编译libicmp_helper.so
4)、创建lib/aarch64-linux并将编译的libicmp_helper.so拷贝该路径
5)、删除lib路径下所有linux-x86的文件目录
6)、返回hazelcast-3.10.4编译路径并执行mvn编译

7)、编译后的hazelcast-3.10.4.jar存放在hazelcast/target/路径下

【注】:通过mvn install命令编译已经将编译后的hazelcast-3.10.4.jar同步到本地maven仓,使用mvn package命令编译则需要将hazelcast/target/路径下编译的hazelcast-3.10.4.jar手动拷贝到本地maven仓对应路径中;
6编译安装
1、从github网站下载源码并解压
2、进入解压目录
3、执行mvn编译命令进行编译

4、编译后的orientdb-community-3.0.19.tar.gz存放在distribution/target/路径下

7 验证
1、编译验证
使用鲲鹏DevKit工具检查编译后的orientdb-community-3.0.19.tar.gz是否不再含有依赖的x86架构的so文件,如果还有依赖的x86架构的so文件,则需要继续完成对应jar包的编译,直到无依赖的x86架构的so文件后,再次编译该组件并通过鲲鹏DevKit工具检查确认,编译后的组件包不再有依赖的x86架构的so文件则表明编译成功。
2、功能验证
暂不涉及。
8 参考信息
-
1、https://orientdb.org/getting-started
2、http://orientdb.com/docs/3.0.x/
-
3、https://orientdb.com/download-2/
1 简介
OrientDB是兼具文档数据库的灵活性和图形数据库管理链接能力的可深层次扩展的文档-图形数据库管理系统。可选无模式、全模式或混合模式下。支持许 多高级特性,诸如ACID事务、快速索引,原生和SQL查询功能。可以JSON格式导入、导出文档。若不执行昂贵的JOIN操作的话,如同关系数据库可在几毫秒内可检索数以百记的链接文档图。
官方链接:https://orientdb.com/
类别:数据库
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
参考下面安装说明
OpenJDK
1.8.0_191
参考下面安装说明
OrientDB
3.0.19
参考下面安装说明
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/
配置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
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 对gcc、g++和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++
4 移植分析
使用鲲鹏DevKit工具检查OrientDB-3.0.19对应x86的安装包或源码包是否有依赖x86的so文件,通过检查OrientDB-3.0.19的源码发现有依赖的“libicmp_helper.so,hazelcast-3.10.4.jar”:
需要先编译hazelcast-3.10.4.jar使其中包含的libicmp_helper.so使能arm,编译过程见 “5 依赖库编译”。
5 依赖库编译
1、编译hazelcast-3.10.4.jar
1)从github网站下载源码并解压
wget https://github.com/hazelcast/hazelcast/archive/v3.10.4.tar.gz
tar zxvf v3.10.4.tar.gz
2)、进入解压目录
cd hazelcast-3.10.4/
3)、编译libicmp_helper.so
cd hazelcast/src/main/resources/
gcc -c -I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/linux -fPIC -o icmp_helper.o icmp_helper.c
gcc -shared -fPIC -Wl,-soname,libicmp_helper.so -o libicmp_helper.so icmp_helper.o -lc
4)、创建lib/aarch64-linux并将编译的libicmp_helper.so拷贝该路径
mkdir -p lib/aarch64-linux
cp libicmp_helper.so lib/aarch64-linux/
5)、删除lib路径下所有linux-x86的文件目录
cd lib
rm -rf linux-x86*
6)、返回hazelcast-3.10.4编译路径并执行mvn编译
cd /home/test/hazelcast-3.10.4/
mvn clean install -DskipTests
7)、编译后的hazelcast-3.10.4.jar存放在hazelcast/target/路径下
cd hazelcast/target/
【注】:通过mvn install命令编译已经将编译后的hazelcast-3.10.4.jar同步到本地maven仓,使用mvn package命令编译则需要将hazelcast/target/路径下编译的hazelcast-3.10.4.jar手动拷贝到本地maven仓对应路径中;
6编译安装
1、从github网站下载源码并解压
wget https://github.com/orientechnologies/orientdb/archive/3.0.19.tar.gz
tar zxvf 3.0.19.tar.gz
2、进入解压目录
cd orientdb-3.0.19/
3、执行mvn编译命令进行编译
mvn clean package -DskipTests
4、编译后的orientdb-community-3.0.19.tar.gz存放在distribution/target/路径下
cd distribution/target/
7 验证
1、编译验证
使用鲲鹏DevKit工具检查编译后的orientdb-community-3.0.19.tar.gz是否不再含有依赖的x86架构的so文件,如果还有依赖的x86架构的so文件,则需要继续完成对应jar包的编译,直到无依赖的x86架构的so文件后,再次编译该组件并通过鲲鹏DevKit工具检查确认,编译后的组件包不再有依赖的x86架构的so文件则表明编译成功。
2、功能验证
暂不涉及。
8 参考信息
1、https://orientdb.org/getting-started
2、http://orientdb.com/docs/3.0.x/
3、https://orientdb.com/download-2/