企业生产环境中的麒麟V10(ARM架构)操作系统部署jdk和redis三主三从交叉版集群
前言:麒麟ARM操作系统是国企和政务机关推行信创化选择率比较高的一款操作系统,然而ARM操作系统非主流的X86系统,除了命令一样,在架构方面差别极大,初次接触多多少少会踩坑,下面我将在公司中部署的实例列举出来,供大家参考,ip和设计机密信息不方便展示,统用虚拟信息代替。
经过多次验证,用了多种通用版本JDK版本,发现都不行,只有两个办法可以适配麒麟ARM操作系统。
方法一:Oracle官网以下的版本:jdk-8u411-linux-aarch64.tar.gz
第一步:上次安装包
第二步:解压 tar -zxvf jdk-8u411-linux-aarch64.tar.gz
第三步:
创建目录mkdir -p /usr/local/java
移动安装包mv jdk1.8.0_341/ /usr/local/java/
设置所有者chown -R root:root /usr/local/java/
配置环境变量vim /etc/profile
第四步:添加以下内容
export JAVA_HOME=/usr/local/java/jdk1.8.0_411
export JRE_HOME=/usr/local/java/jdk1.8.0_411/jre
export CLASSPATH=.{JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
第五步:使用命令让环境变量生效source /etc/profile
第六步:测试是否安装成功java -version

方法二:使用麒麟系统指定的openjdk
安装命令:yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel后执行Y
注意:为什么要加java-1.8.0-openjdk-devel,这个是我在公司用Maven命令编译nacos源码,进行打包成适配国产达梦数据库时因报错信息,得出的经验。说个题外话,如果有网友需要支持ARM操作系统并适配达梦数据库的nacos安装包的话,可以评论找我要。
1.找到jdk位置 ,输入命令:which java
2.继续查看,输入命令:ll /usr/bin/java
3.继续查看java信息,输入命令:ll /etc/alternatives/java
4.继续查看,输入命令:
ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-0.p01.ky10.p01.aarch64/
*此时如果环境变量未配置的话则返回空
5.进行配置,输入命令:vim /etc/profile
在最后增加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-0.p01.ky10.p01.aarch64/jre
export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-0.p01.ky10.p01.aarch64/jre
export CLASSPATH=.{JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

6.保存退出,输入命令:source /etc/profile
安装redis:
先查看是否安装c++的编译器; 执行 yum -y install gcc-c++(否则直接安装redis没依赖环境)
第一步:上传安装包,并将安装包用scp传输给需要的节点服务器;
第二步:在/usr/local/redis/路径下解压tar -zxvf redis-6.2.0.tar;
第三步:进入redis-6.2.0路径;
第四步:配置依赖库
latomic 代表的是 libatomic.so,麒麟ARM架构系统在编译的过程中,需要 libatomic.so 库,而系统又找不到这个库;
解决方法是手动找到这个库,可能存在如下几种情况:
1、通过执行下列命令安装相关依赖。
yum -y install libatomic libatomic_ops-devel
2、使用软链接的方法将依赖库libatomic.so链接到正确路径,执行如下命令:
ln -s /usr/lib64/libatomic.so.1.2.0 /usr/lib/libatomic.so
再执行 make 编译,问题解决,编译通过。
第五步:make
第六步:安装
输入命令:make PREFIX=/usr/local/redis install

七步:移动redis.conf文件到redis用户的home目录
mv redis.conf /home/redis/
第八步:更改配置文件/home/redis/redis.conf
命令:vim redis.conf
bind到本机地址:
bind IP号
设置redis访问密码(要设置为强密码,可更改):
requirepass **********
设置log文件,pid文件,数据文件目录:
pidfile /home/redis/run/redis.pid
logfile /home/redis/log/redis.log
dir /home/redis/data
第八步:启动redis
进入src目录下,输入命令启动redis
cd src
./redis-server

报错
处理方法:将“vm.overcommit_memory=1”添加到/etc/sysctl.conf,然后重新启动或运行命令“sudo sysctl -p”以使其生效。
Redis三主三从交叉集群部署:
第一步:创建节点配置文件路径:
创建目录:mkdir -p /home/redis/data
mkdir -p /home/redis/log
mkdir -p /home/redis/run
第二步:创建节点配置文件:
命令: cp redis.conf /home/redis/
cp -r redis.conf redis6379.conf
cp -r redis.conf redis6380.conf
每台服务器复制redis目录redis.conf为redis6379.conf和redis6380.conf为,按以下内容进行调整。
redis6379.conf:
pidfile /home/redis/run/redis6379.pid pid文件以端口来区分
port 6379 监听端口不同, 可以更改端口提高安全性
logfile "/home/redis/log/redis6379.log" logfile以端口来区分
dir /home/redis/data redis数据文件存放目录
dbfilename dump6379.rdb 数据文件dbfilename以端口来区分
masterauth *********** 主节点认证密码
requirepass *********** Redis连接密码,和requirepass设置成相同的值
appendfilename "appendonly_6379.aof" 追加文件名appendfilename以端口来区分
cluster-config-file nodes-6379.conf cluster-config-file以端口来区分
cluster-enabled yes 启用集群
bind 10.0.0.8 绑定IP保证集群时能正常连接
cluster-node-timeout 2000 集群节点超时时间
daemonize yes 开启守护进程
redis6380.conf:
pidfile /home/redis/run/redis6380.pid pid文件以端口来区分
port 6380 监听端口不同, 可以更改端口提高安全性
logfile "/home/redis/log/redis6380.log" logfile以端口来区分
dir /home/redis/data redis数据文件存放目录
dbfilename dump6380.rdb 数据文件dbfilename以端口来区分
masterauth *********** 主节点认证密码
requirepass *********** Redis连接密码,和requirepass设置成相同的值
appendfilename "appendonly_6380.aof" 追加文件名appendfilename以端口来区分
cluster-config-file nodes-6380.conf cluster-config-file以端口来区分
cluster-enabled yes 启用集群
bind 10.0.0.8 绑定IP保证集群时能正常连接
cluster-node-timeout 2000 集群节点超时时间
daemonize yes 开启守护进程
第三步:启动服务
进入路径:cd /usr/local/redis/bin/
./redis-server /home/redis/redis6379.conf &
./redis-server /home/redis/redis6380.conf &
.8(1节点)

.9(2节点)

.10(3节点)

第四步:启动redis集群
在服务器上使用以下命令启动redis集群
命令:./redis-cli --cluster create 10.0.0.8:6379 10.0.0.9:6379 10.0.0.10:6379 10.0.0.9:6380 10.0.0.10:6380 10.0.0.8:6380 --cluster-replicas 1 -a ***********(密码)

第五步:检查集群是否配置成功
命令:./redis-cli -h 10.0.0.8 -p 6379
输入密码:auth ***********(密码)
查看集群信息:cluster info

cluster_state:ok 代表集群可用
cluster_known_nodes:6 代表集群有6节点
第六步:放行端口
如集群配置完成后开启防火墙报节点无法连接,需做放行端口配置:
放行端口:
firewall-cmd --zone=public --add-port=6379/tcp --permanent 放行6379端口
firewall-cmd --zone=public --add-port=6380/tcp --permanent 放行6380端口
firewall-cmd --zone=public --add-port=16379/tcp --permanent 放行16379 redis内部通讯端口
firewall-cmd --zone=public --add-port=26379/tcp --permanent 放行26379 redis内部通讯端口
firewall-cmd --reload 重新载入 返回 success 代表成功
firewall-cmd --zone=public --query-port=6379/tcp 查看 返回 yes 代表开启成功
firewall-cmd --zone=public --query-port=6380/tcp 查看 返回 yes 代表开启成功
firewall-cmd --zone=public --query-port=16379/tcp 查看 返回 yes 代表开启成功
firewall-cmd --zone=public --query-port=26379/tcp 查看 返回 yes 代表开启成功
企业生产环境中的麒麟V10(ARM架构)操作系统部署jdk和redis三主三从交叉版集群的更多相关文章
- 理解Docker(6):若干企业生产环境中的容器网络方案
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- Kubernetes用户指南(三)--在生产环境中使用Pod来工作、管理部署
一.在生产环境中使用Pod来工作 本节将介绍一些在生产环境中运行应用非常有用的功能. 1.持久化存储 容器的文件系统只有当容器正常运行时有效,一旦容器奔溃或者重启,所有对文件系统的修改将会丢失,从一个 ...
- 企业生产环境中linux系统分区的几种方案
方案1:针对网站集群架构中的某个节点服务器分区 该服务器上的数据有多份(其他节点也有)且数据不太重要,建议分区方案如下: /boot: 200MB swap: 物理内存的1.5倍,当内存大于或等于8G ...
- Liu Junqiao:生产环境中shell脚本实例
在生产环境中,我们时常要注意主机的各种硬件状态,如果是规模较大的服务集群zabbix等健康工具当然好用,如果只是一些小规模的服务主机,shell就会表现的更灵活,也更适用,今天就和大家分享一个系统巡检 ...
- Kubernetes 在生产环境中常用架构
Kubernetes 在生产环境中常用架构 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境.如下图所示 在该架构中,我们可以将其分为四层,如下: Client层:即Kuber ...
- Flink 实战:如何解决生产环境中的技术难题?
大数据作为未来技术的基石已成为国家基础性战略资源,挖掘数据无穷潜力,将算力推至极致是整个社会面临的挑战与难题. Apache Flink 作为业界公认为最好的流计算引擎,不仅仅局限于做流处理,而是一套 ...
- JDK 9 发布仅数月,为何在生产环境中却频遭嫌弃?
千呼万唤始出来,在经历了整整一年的跳票之后,Java 9 终于在 9 月 21 日拨开云雾,露出真正的面目.对众多 Java 程序员来说,这一天无疑是一个重大的日子,首先 Java 开发者们再也不用羡 ...
- .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点
2016年7月10日,我们在生产环境中上线了第一个运行于Linux上的ASP.NET Core站点,这是一个简单的提供后端服务的ASP.NET Core Web API站点. 项目是在Windows上 ...
- .NET跨平台之旅:生产环境中第2个跑在Linux上的ASP.NET Core站点
今天我们在生产环境中上线了第2个跑在Linux上的ASP.NET Core站点.这是一个简单的Web API站点,通过命令行的方式调用安装在Linux服务器上的程序完成操作.之前用的是nodejs,现 ...
- 【原】Storm Local模式和生产环境中Topology运行配置
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
随机推荐
- Qt:MD5加密
#include <QCryptographicHash> QString source_value = "123456"; // 待加密原始数据 QCryptogra ...
- 将py文件编译成pyc
核心代码 import compileall compileall.compile_file("a.py", legacy=True, force=True) 演示步骤 1.新建 ...
- 如何在macOS上安装Python3并设置本地编程环境
介绍 Python是一种多功能编程语言,可用于许多不同的编程项目.1991年首次出版,其名称灵感来自英国喜剧组织Monty Python,开发团队希望使Python成为一种有趣的语言.易于设置,并以相 ...
- CentOS 6.4(64位)上安装错误libstdc++.so.6(GLIBCXX_3.4.14)解决办法
CentOS 6.4(64位)上安装错误libstdc++.so.6(GLIBCXX_3.4.14)解决办法 (2013-07-29 13:18:01) 转载▼ 分类:linux系统 引用地址: ht ...
- lin-view-ui Vue 2.0 组件库
lin-view-ui 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要集成了平时在开发中使用到的 UI 组件. 特性 基于 Vue 开发的 UI 组件 使用 npm + webpack ...
- HBase读链路分析
简介:HBase的存储引擎是基于LSM-Like树实现的,更新操作不会直接去更新数据,而是使用各种type字段(put,delete)来标记一个新的多版本数据,采用定期compaction的形式来归 ...
- 技术揭秘:从双11看实时数仓Hologres高可用设计与实践
简介:本文将会从阿里巴巴双11场景出发,分析实时数仓面临的高可用挑战以及针对性设计. 2021年阿里巴巴双11完美落下为帷幕,对消费者来说是一场购物盛宴,对背后的业务支撑技术人来说,更是一场年度大考 ...
- ICBU可控文本生成技术详解
简介: 文本生成(Text Generation)是自然语言处理(Natural Language Processing,NLP)领域的一项重要且具有挑战的任务.顾名思义,文本生成任务的目的是生成近 ...
- Serverless 工程实践 | 细数 Serverless 的配套服务
简介: 上文说到云计算的十余年发展让整个互联网行业发生了翻天覆地的变化,Serverless 作为云计算的产物,或者说是云计算在某个时代的表现,被很多人认为是真正意义上的云计算,关于"Se ...
- 通用的 AI prompt 实操技巧
1. 提供清晰.具体的目标在 Prompt 中明确指出你希望 AI 辅助完成的具体任务,包括要实现的功能.遵循的标准.适用的技术栈等. 2. 提供足够的上下文提供与任务相关的背景信息.现有代码片段.接 ...