前言:麒麟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三主三从交叉版集群的更多相关文章

  1. 理解Docker(6):若干企业生产环境中的容器网络方案

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  2. Kubernetes用户指南(三)--在生产环境中使用Pod来工作、管理部署

    一.在生产环境中使用Pod来工作 本节将介绍一些在生产环境中运行应用非常有用的功能. 1.持久化存储 容器的文件系统只有当容器正常运行时有效,一旦容器奔溃或者重启,所有对文件系统的修改将会丢失,从一个 ...

  3. 企业生产环境中linux系统分区的几种方案

    方案1:针对网站集群架构中的某个节点服务器分区 该服务器上的数据有多份(其他节点也有)且数据不太重要,建议分区方案如下: /boot: 200MB swap: 物理内存的1.5倍,当内存大于或等于8G ...

  4. Liu Junqiao:生产环境中shell脚本实例

    在生产环境中,我们时常要注意主机的各种硬件状态,如果是规模较大的服务集群zabbix等健康工具当然好用,如果只是一些小规模的服务主机,shell就会表现的更灵活,也更适用,今天就和大家分享一个系统巡检 ...

  5. Kubernetes 在生产环境中常用架构

    Kubernetes 在生产环境中常用架构 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境.如下图所示 在该架构中,我们可以将其分为四层,如下: Client层:即Kuber ...

  6. Flink 实战:如何解决生产环境中的技术难题?

    大数据作为未来技术的基石已成为国家基础性战略资源,挖掘数据无穷潜力,将算力推至极致是整个社会面临的挑战与难题. Apache Flink 作为业界公认为最好的流计算引擎,不仅仅局限于做流处理,而是一套 ...

  7. JDK 9 发布仅数月,为何在生产环境中却频遭嫌弃?

    千呼万唤始出来,在经历了整整一年的跳票之后,Java 9 终于在 9 月 21 日拨开云雾,露出真正的面目.对众多 Java 程序员来说,这一天无疑是一个重大的日子,首先 Java 开发者们再也不用羡 ...

  8. .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点

    2016年7月10日,我们在生产环境中上线了第一个运行于Linux上的ASP.NET Core站点,这是一个简单的提供后端服务的ASP.NET Core Web API站点. 项目是在Windows上 ...

  9. .NET跨平台之旅:生产环境中第2个跑在Linux上的ASP.NET Core站点

    今天我们在生产环境中上线了第2个跑在Linux上的ASP.NET Core站点.这是一个简单的Web API站点,通过命令行的方式调用安装在Linux服务器上的程序完成操作.之前用的是nodejs,现 ...

  10. 【原】Storm Local模式和生产环境中Topology运行配置

    Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...

随机推荐

  1. 第十六篇:jQuery基础

    一.jQuery和Dom的关系 http://jquery.cuishifeng.cn/ 模块,类库 DOM/BOM/JavaScript的类库: 二.jQuery选择器 1.查找元素 DOM: 10 ...

  2. k8s 深入篇———— 编排[八]

    前言 简单整理一下编排. 正文 一个deployment 例子: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployme ...

  3. VulnHub-Jangow-01-1.0.1打靶记录

    知识点 NMAP参数 -sV 获取系统信息 -sT TCP扫描可能会留下日志记录 -sC 使用默认脚本(在-A模式下不需要) -p1-xxx 扫描端口号 -p- ==>等价于 -p1-65535 ...

  4. szfpga 高云gowin国产开发板GW2AR-18核心板fpga cpld测试板

    1. 概述 国产FPGA是最近几年起来的产品,具有性价比高特点.而GOWIN属于国产FPGA成员,在服务和芯片都是比较大的优势,很多用户都用在LED控制,电机控制,PLC设备上,以及用于替换Latti ...

  5. Redis 的并发竞争问题是什么?如何解决这个问题?了解 redis 事务的 CAS 方案吗?

    面试官心理分析 这个也是线上非常常见的一个问题,就是多客户端同时并发写一个 key,可能本来应该先到的数据后到了,导致数据版本错了:或者是多客户端同时获取一个 key,修改值之后再写回去,只要顺序错了 ...

  6. 五分钟学会使用 go modules(含在家办公使用技巧)

    导读:go modules 是 golang 1.11 新加的特性.如今 1.13 都已经发布了第 7 个小版本了,几乎所有大项目均已开始使用,这自然也包括 Kubernetes 生态中的众多项目.笔 ...

  7. 问题排查不再愁,Nacos 上线推送轨迹功能

    简介: 微服务体系下,注册中心的调用和配置变更是家常便饭,例如阿里每天就有百万级变更.亿级推送.可是,一旦出现调用或配置异常,问题排查就成了用户最大的困惑:是注册和配置中心导致的,还是上下游业务自身的 ...

  8. Spring Cloud Bus 消息总线介绍

    简介: 本文配套可交互教程已登录阿里云知行动手实验室,PC 端登录 start.aliyun.com 在浏览器中立即体验. 作者 | 洛夜来源 | 阿里巴巴云原生公众号 本文配套可交互教程已登录阿里云 ...

  9. 实时数仓入门训练营:实时计算 Flink 版 SQL 实践

    ​简介: <实时数仓入门训练营>由阿里云研究员王峰.阿里云资深技术专家金晓军.阿里云高级产品专家刘一鸣等实时计算 Flink 版和 Hologres 的多名技术/产品一线专家齐上阵,合力搭 ...

  10. [Go] Golang并发控制: WaitGroup 含义和常规用法

    一个 WaitGroup 等待一个 goroutine 集合的结束. 主 goroutine 调用 Add 设置需要等待的 goroutine 数量. 接下来每个 goroutine 运行并在结束时调 ...