HIVE迁移教程X86架构到ARM架构(CPU:鲲鹏920)

2023-05-16

centos8的hive迁移教程

1安装新的centos8环境

2.安装实验所需软件
2.1.安装OpenJDK

yum install java-1.8.0-openjdk

配置JAVA环境变量
执行如下命令设置JAVA环境变量:

echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-1.el8_3.aarch64' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile

根据服务器环境调整自己的环境变量

执行如下命令导入配置的JAVA环境变量:

source /etc/profile

执行如下命令验证配置是否生效:

java -version

正确输出如下图所示:

在这里插入图片描述

2.2.安装Maven

yum install maven

.配置Maven环境变量
执行如下命令配置Maven环境变量

根据服务器环境调整自己的环境变量

echo 'export MAVEN_HOME=/usr/share/maven' >> /etc/profile
echo 'export PATH=$PATH:$MAVEN_HOME/bin' >> /etc/profile

执行如下命令导入Maven环境变量:

source /etc/profile

执行如下命令验证Maven是否安装成功:

mvn -v

看到如下图所示输出则说明Maven已经安装成功:

在这里插入图片描述

配置鲲鹏Maven仓库
执行如下命令添加鲲鹏Maven仓库:

sed  -i '246a <profile><id>securecentral</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>kunpeng</id><url>https://mirrors.huaweicloud.com/kunpeng/maven/</url><releases><enabled>true</enabled></releases></repository><repository><id>huaweicloud</id><url>https://mirrors.huaweicloud.com/repository/maven/</url><releases><enabled>true</enabled></releases></repository></repositories></profile>' /usr/share/maven/conf/settings.xml

sed -i '158a <mirror><id>huaweicloud</id><mirrorOf>!kunpeng,!huaweicloud,*</mirrorOf><url>https://mirrors.huaweicloud.com/repository/maven/</url></mirror>'  /usr/share/maven/conf/settings.xml

如果添加失败, 通过find / -name settings.xml寻找位置
如果maven仓库的settings.xml中已有其他配置,也可通过在profile节点配置鲲鹏maven仓库。
添加如下配置优先使用鲲鹏maven仓库:
注:鲲鹏maven仓库只有arm的相关jar包,所以需要配置第二个maven仓库,当鲲鹏maven仓搜索不到时,自动搜索下一个maven仓

<profile>
   <id>securecentral</id>
   <activation>
       <activeByDefault>true</activeByDefault>
   </activation>
   <repositories>
       <repository>
           <id>kunpeng</id>
           <url>https://mirrors.huaweicloud.com/kunpeng/maven/</url>
           <releases>
               <enabled>true</enabled>
           </releases>
       </repository>
       <repository>
           <id>huaweicloud</id>
           <url>https://mirrors.huaweicloud.com/repository/maven/</url>
           <releases>
               <enabled>true</enabled>
           </releases>
       </repository>
   </repositories>
 </profile>

2.3.安装 Dependency Advisor
2.3.1.下载并解压Dependency Advisor软件包
执行如下命令下载Dependency Advisor安装包,待安装包下载成功后即可进行下一个步骤的操作:

cd
wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/Dependency-advisor-Kunpeng-linux-1.1.3.tar.gz

执行如下命令解压安装包:

tar -zxvf Dependency-advisor-Kunpeng-linux-1.1.3.tar.gz

2.3.2.安装软件包
执行如下命令进入到安装脚本执行目录:

cd Dependency-advisor-Kunpeng-linux-1.1.3

进入脚本执行目录后,执行如下安装命令:

./install.sh web

命令执行后会有三次交互式输入,直接回车即可

安装过程大约持续【5分钟】,终端显示如下图所示字样后,表示软件安装已经成功:
在这里插入图片描述

2.4.安装CheckSo工具
2.4.1.下载CheckSo安装包
执行如下命令下载安装包,待安装包下载成功后即可进行下一个步骤的操作:

cd
wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/checkSo.zip

2.4.2.安装CheckSo工具
执行如下命令安装CheckSo工具:

 unzip checkSo.zip  && chmod +x checkSo/*.sh

3.软件依赖分析(Hive)
3.1下载Hive软件包
执行如下命令下载Hive软件包,待安装包下载成功后即可进行下一个步骤的操作:

cd
wget -P /opt/depadv/depadmin/ https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/hive_2_6_3_0_235-1.2.1000.2.6.3.0-235.noarch.rpm

3.2.使用CheckSo工具检查软件包依赖文件(方法一)
通过CheckSo工具检查当前rpm包是否包含X86依赖文件,以确定是否能在鲲鹏平台上直接运行。

执行如下命令即可对【3.1】步骤下载的软件包进行依赖文件检查:

cd checkSo && ./main.sh /opt/depadv/depadmin/hive_2_6_3_0_235-1.2.1000.2.6.3.0-235.noarch.rpm

依赖检查结果保存在main.sh脚本所在目录的JarResult.log文件以及NonJarResult.log文件中。JarResult.log 文件中保存的是Jar包中包含的不兼容鲲鹏处理器的so。格式为:组件包名,jar包名,缺乏arm版本的so库文件名。NonJarResult.log文件中保存的是非Jar包中不兼容鲲鹏处理器的so。分别执行如下命令可查看两个文件中的内容:

cat JarResult.log
cat NonJarResult.log

显示结果如下图所示:
在这里插入图片描述

3.3.使用Dependency Advisor检查软件包依赖文件(方法二)
3.3.1.通过浏览器登录Dependency Advisor
打开“实验操作桌面”的火狐浏览器,然后在浏览器中输入 https://EIP:8082并访问(注意,此处需要将EIP替换为系统为您预置的【ECS】的【EIP】)。第一次访问时,浏览器会有连接不安全提示,此时需要依次点击页面的 “高级” -> “添加例外” -> “确认安全例外“ ,如下图所示:
在这里插入图片描述

安全例外添加成功后会进入到登录页面,在登录框中输入用户名和密码即可登录。登录的默认用户名和密码分别是: depadmin , Admin@9000 如下图所示:
在这里插入图片描述

首次登录成功需要更改默认密码,在输入框中输入旧密码 Admin@9000 和新密码 ******* (新密码也可以是您能记住的其他字符串)然后点击“确认”即可,如下图所示:
在这里插入图片描述

当密码修改成功后,会自动跳转到登录页面,此时在登录框中输入用户名及您新修改的密码即可登录,登录成功后如下图所示:
在这里插入图片描述

3.3.2.依赖检查
登录到Dependency Advisor软件的操作界面,然后选中“分析软件安装包”,并在“软件安装包存放路径或安装包名称” 下面的输入框中输入需要分析的软件包hive_2_6_3_0_235-1.2.1000.2.6.3.0-235.noarch.rpm ,然后点击分析按钮即可,如下图所示:
在这里插入图片描述

分析过程大概持续【2分钟】,分析完成后如下图所示:

在这里插入图片描述
4.迁移软件包
在【3.2】和 【3.3】步骤使用了2种不同的方法对Hive的RPM安装包做了分析后发现当前的Hive RPM安装包中包含了x86依赖,因此不能直接在鲲鹏上运行,需要使用源码重新编译使之能够正常在鲲鹏上运行。

4.1.下载并解压Hive源码
回到终端,执行如下命令下载Hive源码,待源码下载成功后即可进行下一个步骤的操作:

cd
wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/hive-release-HDP-2.6.3.0-235-tag.tar.gz

tag.tar.gz
执行如下命令解压Hive源码包:

tar -zxvf hive-release-HDP-2.6.3.0-235-tag.tar.gz

4.2.编译源码
执行如下命令开始编译:

cd  hive-release-HDP-2.6.3.0-235-tag
mvn clean install -Phadoop-2 -DskipTests -Pdist -T 4C

编译时间大约【4分钟】,编译完成后如下图所示:
在这里插入图片描述

如果遇到编译通不过的情况,请根据编译报错进行相关的代码修改即可

4.3.使用CheckSo工具重新进行依赖检查
经过【4.2】步骤的重新编译,会在源码目录下的packaging/target目录下生成一个名为apache-hive-1.2.1000.2.6.3.0-235-bin.tar.gz 的新安装包,此安装包已经去除了x86依赖,可执行以下命令对新安装包做依赖检查:

cd /root/checkSo
rm -f JarResult.log NonJarResult.log
./main.sh /root/hive-release-HDP-2.6.3.0-235-tag/packaging/target/apache-hive-1.2.1000.2.6.3.0-235-bin.tar.gz

命令执行完毕后,可执行如下命令查看检查结果:

cat *.log

如下图所示,在输出中看不到任何有关于jar或so的信息,说明安装包已经成功去除了x86依赖,移植到了鲲鹏平台。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HIVE迁移教程X86架构到ARM架构(CPU:鲲鹏920) 的相关文章

  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • CPU 周期与总 CPU 时间

    在 Windows 上 GetProcessTimes 和 QueryProcessCycleTime 可用于获取应用程序所有线程的总计 我期望 显然是天真地 找到总周期数和总处理器时间 用户 内核 之间的比例关系 当转换为相同的单位 秒
  • 整数溢出问题

    我不断遇到整数溢出问题 我不知道如何解决它 有人可以帮忙吗 edx 包含 181 eax 包含 174 xor eax edx mov edx 2 div edx 假设你谈论的是x86 div edx这实际上没有意义 32位div将edx
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • 无法识别的仿真模式:MinGW32 上的 elf_i386

    我正在尝试制作内核 但无法链接C与程序集一起输出 这ld 我收到错误 无法识别的仿真模式 elf i386 我正在使用 Windows 10 专业版以及 MinGW32 和 MSYS 我正在使用的代码 link ld link ld OUT
  • Core i3/5/7 CPU 是否提供测量 IPC 的机制?

    至少 过去十年中的所有英特尔 CPU 都包含一组对各种事件进行计数的性能监视器 最新的 Intel CPU Core i3 i5 和 i7 又名 Nehalem 是否提供了计算每时钟指令 IPC 的机制 如果有 它们是如何使用的 如果可能的
  • 各种中断的区别:SCI、SMI、NMI、普通中断

    我正在学习英特尔架构 到目前为止我遇到过几种类型的中断 SCI 系统控制中断 硬件使用的系统中断 用于向操作系统通知 ACPI 事件 SCI 是一个有效 低电平 可共享的电平中断 SMI 系统管理中断 由遗留系统上的中断事件生成的操作系统透
  • 获取从开始日期到结束日期的活跃周数

    我的订阅数据如下所示 数据显示用户何时购买订阅 它有user id subscription id start date and end date 我已经得出wk start and wk end从中 user subscription i
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • long double(GCC 特定)和 __float128

    我正在寻找有关的详细信息long double and float128在 GCC x86 中 更多是出于好奇而不是因为实际问题 可能很少有人需要这些 我只是有史以来第一次 truly需要一个double 但我想知道你的工具箱里有什么以及它
  • hive 添加分区语句忽略前导零

    我在 hdfs 上有文件夹 user test year 2016 month 04 dt 25 000000 0 需要将上面的分区路径添加到test table 命令 ALTER TABLE test ADD IF NOT EXISTS
  • 使用 impala 按范围连接表的有效方法

    我第一个有下表 Range 包括值范围和附加列 row From To Country 1 1200 1500 2 2200 2700 3 1700 1900 4 2100 2150 The From and Toare bigint并且是
  • 使用字符串数组在 Hive 表上加载 CSV 文件

    我正在尝试将 CSV 文件插入 Hive 其中一个字段是 string 数组 这是 CSV 文件 48 Snacks that Power Up Weight Loss Aidan B Prince Health Fitness Trave
  • 在 x86 程序集中打印寄存器值的简单方法

    我需要在 8086 Assembly 中编写一个程序 接收来自用户的数据 进行一些数学计算并在屏幕上打印答案 我已经编写了程序的所有部分并且一切正常 但我不知道如何打印号码显示到屏幕上 在我所有计算结束时 答案是 AX 它被视为无符号 16
  • 从c调用汇编函数

    我试图从 c 调用汇编函数 但我不断收到错误 text globl integrate type integrate function integrate push ebp mov esp ebp mov 0 edi start loop
  • 难以理解汇编命令“加载有效地址”[重复]

    这个问题在这里已经有答案了 可能的重复 LEA 指令的目的是什么 https stackoverflow com questions 1658294 whats the purpose of the lea instruction LEA指
  • 可以对 Xcode 中的 Arm 架构设置进行一些澄清

    据我了解 iPhone 5将采用新的架构 armv7s 我的项目具有有效的架构armv7 并且有Build Active Architecture Only set to true 由于现在商店中的每个应用程序都是为armv6 and or
  • x86 程序集 Pushl/popl 不适用于“错误:后缀或操作数无效”

    我是汇编编程的新手 正在努力解决编程基础 http savannah nongnu org projects pgubook 在带有 GNU 汇编器 v2 20 1 的 Ubuntu x86 64 桌面上 我已经能够汇编 链接执行我的代码
  • movsbl指令的作用是什么? [复制]

    这个问题在这里已经有答案了 我在网上搜索过 但找不到明确的示例来理解该指令的作用 因此 如果有人可以举一个例子 这对我来说将会非常有帮助 用符号从字节扩展到长字移动 在Intel语法中 该指令的助记符是MOVSX 当变量类型为 C 时 C

随机推荐

  • 关于信号量的作用范围

    最近在搞信号量的时候产生了怀疑 xff0c 信号量的作用范围和信号量在任务的位置时候有关系呢 xff1f 答案是有的 xff0c 其实信号量的作用范围是指的从信号量开始到程序的跳转点为止 xff0c 比如一个任务中 xff0c 把信号量放在
  • UNIX 环境高级编程之我见

    UNIX环境高级编程 xff08 第二版 xff09 xff08 人民邮电出版社 xff09 美 W Richard Stevens amp Stephen A Rago 著 本书的主要结构分为以下几个部分 xff1a xff08 1 xf
  • xShell连接ubuntu不成功

    操作环境 xff1a xShell6 43 vm15 43 ubuntu18 04 xShell中以root身份连接虚拟机中的ubuntu时 xff0c 连接不上 xff0c 见下图 xff1a 密码输入的也是对的 xff0c 也能够双向p
  • mac brew install

    brew cask install myprogram base darren 64 Darren 2 project brew cask install docker Error Unknown command cask brew ins
  • mac/linux 系统批量计算文件md5命令

    find type f print0 xargs 0 md5
  • 链表-设计链表

    leetcode 707 设计链表 注意 xff1a 面向对象的思想 这是创建一个自己的链表 xff0c dummyhead和 size初始化都在构造函数中 xff0c 同时自己的链表类也需要定义自己的节点 struct LinkNode链
  • KVM虚拟机使用桥接方式时和宿主机无法通信的解决方案

    KVM虚拟机使用桥接方式时和宿主机无法通信的解决方案 应用场景 虚拟机客户机安装完成后 xff0c 需要为其设置网络接口 xff0c 以便和主机网络 xff0c 客户机之间的网络通信 事实上 xff0c 如果要在安装时使用网络通信 xff0
  • android 电池充电状态记录

    摘抄源码记录下 http androidxref com 9 0 0 r3 xref frameworks native include batteryservice BatteryServiceConstants h This file
  • python 输入三个变量,然后按小到大输出(解析)

    python 实例解析 xff08 1 xff09 vim 2 python py x 61 int input 39 please input x 39 y 61 int input 39 please input y 39 z 61 i
  • Linux系统调用Hook姿势总结

    http www cnblogs com LittleHann p 3854977 html 主题 Linux 相关学习资料 http xiaonieblog com post 61 121 http hbprotoss github io
  • 利用WireShark进行DNS协议分析

    一 准备工作 系统是Windows 8 1Pro 分析工具是WireShark1 10 8 Stable Version 使用系统Ping命令发送ICMP报文 二 开始工作 打开CMD exe键入 ping www oschina net
  • DNS协议详解及报文格式分析

    DNS协议详解及报文格式分析 Posted on 2017 06 18 by Jocent No Comments 目录 一 DNS协议理论知识 1 1 域名结构1 2 域名服务器1 3 域名解析过程 二 DNS协议报文格式 2 1 头部2
  • 解密微信数据库文件解析

    图解说明 xff1a 微信大量数据存储在本地比如 xff1a 联系人 xff08 包含好友地区 电话 通过那种方式添加 xff09 聊天内容 xff08 图片 文字 语音 视频 位置 名片 其他app分享链接 xff09 聊天室 收藏信息
  • qgroundcontrol二次开发环境搭建

    参考考qgroundcontrol官方文档 xff0c 做一些准备工作 xff1a https dev qgroundcontrol com master en getting started index html 1 按官方文档下载qgr
  • Android通过注解来初始化控件

    Android通过注解来初始化控件 对于Android大神的思想与能力我只能膜拜与学习了 xff0c 这里就从大神哪里学来的通过注解来初始化控件简单的概述一下 xff0c 省去了那么繁琐的findViewById步骤 xff08 找到了还要
  • KEIL MDK 工程中头文件包含的路径详解

    xff08 参考工程详见https download csdn net download tianzhijiaoxin 87464281 xff09 文章目录 前言一 include lt h gt 与include 34 h 34 的区别
  • 51-单片机---定时器0和定时器1---8位自动重装载(模式2)-16位定时计数(模式1)

    16位定时计数 xff08 工作方式1 xff09 初始化函数 void timer init TMOD 61 0x01 TH0 61 0x4C TL0 61 0x00 EA 61 1 ET0 61 1 TR0 61 1 初始化定时器运行
  • 算法基础21-图的最短路问题通解

    最短路问题通解 单源最短路所有边权都是正数朴素Dijkstra算法堆优化版Dijkstra算法 存在负权边bellman fordspfaspfa判断是否存在负权环路 单源最短路小结 多源汇最短路floyd 总结 想一想各种最短路算法模版和
  • Visual Studio 2008学习过程(之二)与MATLAB混合编程

    Visual Studio 2008学习过程 之二 MATLAB混合编程 上一篇我写的是我初识VisualStudio2008的过程 后来我又用它开发了几个小程序 至于怎么做的 过两天我再写 这篇文章我就写写VS和MATLAB联合开发程序的
  • HIVE迁移教程X86架构到ARM架构(CPU:鲲鹏920)

    centos8的hive迁移教程 1安装新的centos8环境 2 安装实验所需软件 2 1 安装OpenJDK yum span class token function install span java 1 8 0 openjdk 配