企业生产环境中的麒麟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(消息处理 ...
随机推荐
- HarmonyOS SDK开放能力,服务鸿蒙生态建设,打造优质应用体验
华为开发者大会2023(HDC.Together)于8月4日至6日在东莞松山湖举行,在HarmonyOS端云开放能力技术分论坛上,华为为广大开发者们介绍了HarmonyOS SDK开放能力在基础开发架 ...
- Qt Create开发,修改 .Pro 文件改变 exe 的名称
// .pro // 修改 TARGET 就可以改变生成的exe的名称 TARGET = Test // 要是生成的exe名称中需要带有空格,需要用到$$quote TARGET = $$quote( ...
- 双向链表的基本实现【数据结构与算法—TypeScript 实现】
笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 双向链表:拥有两个指针方向的链表 DoublyNode 结构: prev:指向上一个节点 value:节点值 next: ...
- 基于openstack安装部署私有云详细图文教程
本文主要分享的是云计算.openstack的使用.私有云平台建设.云服务器云硬盘的构建和使用.从基本概念入手到私有云建设,信息量非常大.对于openstack的安装部署都是从官方文档中一步步的介绍,内 ...
- background-blend-mode
由于 mix-blend-mode 这个属性的强大,很多应用场景和动效的制作不断完善和被发掘出来,遂另起一文继续介绍一些使用 mix-blend-mode 制作的酷炫动画. CSS3 新增了一个很有意 ...
- Java使用ganymed工具包执行LINUX命令教程
了解更多开发技巧,请访问,架构师小跟班官网:https://www.jiagou1216.compackage com.jiagou;import ch.ethz.ssh2.Connection;im ...
- 嘉楠k210 kd233官方demo板gpio点灯实验
使用maixpy micropython开发 import utime from Maix import GPIO from board import board_info from fpioa_m ...
- byte[]类型与datetime日期转换
在C#中,Timestamp通常表示为一个长整型(long)变量.这是因为它表示自1970年1月1日00:00:00 UTC以来的毫秒数.然而,在某些情况下,例如在处理数据库中的Timestamp时, ...
- 开篇:Mirth Connect系统集成与数据交换引擎
Mirth最初的目的是作为HL7接口引擎('引擎'释意:IT方面的术语,指经包装过的函数库,方便别人调用:如搜索引擎.图形引擎.物理引擎等),HL7 v2.x和HL7 v3标准通常在医疗系统间用于系统 ...
- 力扣162(java&python)-寻找峰值(中等)
题目: 峰值元素是指其值严格大于左右相邻值的元素. 给你一个整数数组 nums,找到峰值元素并返回其索引.数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可. 你可以假设 nums[ ...