• [热门活动] 【最新有奖活动速递】码道× CodeArts 案例共创活动,参与领取好礼!(活动截至到2026年10月15日)
    【AI 造物实战派】码道智编 × CodeArts 全流程联合实战案例共创活动,从零到一,用 AI 智能体 + DevOps 工具链造出完整应用,共建官方软文案例库!一、活动速览📌 活动主题:AI 造物实战派 —— 码道智编 × CodeArts 全流程联合实战📅 投稿时间:2026 年 8 月 26 日 — 2026 年 10 月 15 日🏆 奖项公示:2026 年 10 月 20 日(本帖公示)🎁 奖励发放:获奖名单公布后 15 个工作日内发放🎯 活动形式:基于码道 + CodeArts 联合实战,撰写案例文章并投稿至华为云论坛二、活动背景与内容华为云码道(代码智能体)支持项目级代码生成、单元测试、代码优化等 AI Coding 能力;CodeArts 提供需求管理、代码托管、流水线、代码检查、测试管理等 DevOps 全生命周期服务;两者融合,实现"AI 智能编码"与"工程化交付"的端到端闭环。诚邀开发者基于真实业务场景,使用码道 + CodeArts 完成联合实战开发,撰写并投稿案例文章。活动方向任选其一(详见第三章"活动方向")。⚠️ 核心要求:案例必须体现码道与 CodeArts 的联合使用,且至少涉及 CodeArts 一项 DevOps 服务(需求管理 / 代码托管 / 代码检查 / 流水线 / 测试管理)。仅使用码道单一产品、未联动 DevOps 服务的案例不符合主题。三、活动方向以下四个方向任选其一,也可自主命题(方向 D):方向场景说明产品联动A 智能需求到代码需求管理下发需求 → 码道解析生成代码 → 代码托管提交码道 + 需求管理 + 代码托管B AI 编码 + 质量门禁码道生成代码 → 代码检查静态扫描 → 码道自动修复 → 流水线构建码道 + 代码检查 + 流水线C 全流程智能测试码道生成单元测试 → 测试管理编排 → 流水线执行 → 自动修复码道 + 测试管理 + 流水线D 自主命题结合自身业务场景,自主设计码道 + CodeArts 联合方案(须满足核心要求)自主选择(须至少含 1 项 CodeArts DevOps 服务)四、参与方式完整流程共三步:报名开通 → 实战发帖 → 提交投稿。▶ 第 1 步:报名与开通① 注册/登录华为云,填写 报名问卷(用于奖品发放,10 月 24 日前完成填写,逾期视为放弃奖励)。 注意:报名账号须与发帖账号及开通套餐账号保持一致,否则不予发放奖品。② 免费一键开通华为云码道(CodeArts)代码智能体体验版套餐:③ 按 Case 需要开通/使用 CodeArts 相关 DevOps 服务(需求管理、代码托管、代码检查、流水线、测试管理等可按需使用)。 免费一键开通 CodeArts 体验版套餐。 注:CodeArts 基础功能免费,各 DevOps 服务可按需开通使用,部分服务有免费额度,具体以官网说明为准。▶ 第 2 步:实战与发帖① 使用码道 + CodeArts 完成联合实战开发,撰写案例文章,点击发帖 参考模板:【案例共创】华为云码道 + MaaS:AI智能小助手的双擎驱动② 在华为云论坛"CodeArts 码道代码智能体"版块发帖,具体要求如下: • 版块:选择"CodeArts 码道代码智能体"版块 • 标题:以【案例共创】开头,并包含"码道"关键词(示例:【案例共创】基于码道 + CodeArts 的 XX 实战)③ 文末须添加以下引用文案及活动链接(请复制使用): "本文参与【AI 造物实战派】码道 × CodeArts 全流程联合实战案例共创活动,本活动帖链接:cid:link_2"▶ 第 3 步:提交投稿将您的发帖链接回复到本活动帖评论区,即完成投稿。注意:请直接回复帖子链接,以便工作人员统计。五、评选标准专家评审团对案例文章进行评审,采纳条件(须同时满足):✅ 主题合规:体现码道 + CodeArts 至少一项 DevOps 服务的联合使用。✅ 可复现性:操作步骤完整可复现,内容含实际操作截图(不得使用示意图代替)。✅ 内容完整:涵盖背景介绍、环境准备、实现步骤、效果展示。✅ 安全合规:不包含真实生产敏感数据,已做脱敏处理。六、奖项设置奖项不叠加,按高价值发放。发放对象为已完成实名认证的华为云用户,须填写报名问卷中的账号地址相关信息。🥇 优质案例一等奖(3 名) 获得条件:案例经评审团采纳评审,纳入官方软文案例库 奖品:苏泊尔保温杯 + 华为文创键盘垫     / 华为智选智能跳绳🥈 优质案例二等奖(5 名) 获得条件:案例质量优良但未达一等奖标准,经评审团评定入选评审 奖品:马克杯 / 熊猫小夜灯 / 便携式 U 型枕🥉 首篇投稿奖(10 名) 获得条件:前 10 名有效投稿者(按提交回复时间排序,每人限 1 次) 奖品:华为文创键盘垫 + 手持电风扇💬 盖楼互动奖(不限,奖品送完为止) 获得条件:使用渠道码注册并截图(包含用户名)在评论区参与互动盖楼,楼层为 9(重复盖楼不算,奖品送完为止) 奖品:冰箱贴 / 小风扇 / 手机支架──────────────────📌 补充说明:• 同一作者可投稿多篇,每篇须为不同场景方向,不得重复内容。• 同一作者多篇投稿被采纳时,按最高奖项发放,奖项不叠加;若对应奖品已发完,则按等值高价值商品替代发放。• 案例须原创,未在其他平台发布过。抄袭、洗稿一经发现,立即取消资格。• 优质案例将被正式收录至官方案例库,供广大开发者学习,并注明创作者署名,实现与开发者共创官方文档。• 优质案例将选送至华为云站内外技术社区进行推荐。• 本活动最终解释权归"AI 造物实战派 —— 码道智编 × CodeArts 全流程联合实战"活动所有。七、联系方式如有疑问,可在本帖留言或私信版主幼儿园地头蛇 / 小助手-yao,也可添加 CodeArts 代码智能体案例活动交流群进行交流。👇 参与活动请直接在本帖下方回复案例链接哦!(盖楼奖提供包含用户名的套餐链接开通截图即可——华为云码道 CodeArts 代码智能体体验版套餐)
  • [问题求助] 关于输出速度慢和重复输出的问题。
    具体场景:我是一个项目开发了大概3天,目标是实现一个几何的算法。现阶段问题:只有前2次对话是流畅的,后面所有的对话(GLM-5和GLM-5.1)基本是1-5tokens/秒,解决一个类似于开发文档撰写/实现四面体、六面体的体积计算函数,均要等待近1小时。复杂问题基本是按照半天至一天来计算。今天早上遇到一个几何一致性的问题,我提供了解决方案后,在执行过程中它提供了一个选项给我,选择后大概1小时内反复了3次,每次都是从我选择的开始理解,3次以后报错如下,换成glm-5.1一样具有下述报错:The tool call was not parsed correctly. Retry the current request.Trace_id: bfb64cc3b2f14e2fb9658f51cc76b97b
  • [技术干货] 华为云CodeArts:一站式云端DevOps平台,赋能企业高效研发
    一、CodeArts平台全景解读华为云CodeArts是华为公司推出的全流程云端DevOps平台,集成了华为30年研发实践和先进工具链,为企业提供从需求规划到部署运维的完整研发工具链。该平台基于云原生架构设计,支持Web和移动端访问,帮助企业实现研发效能的全面提升。核心价值主张:全流程覆盖:需求→开发→测试→发布→运维的全生命周期管理开箱即用:预置华为最佳实践模板,降低使用门槛安全可信:通过ISO 27001等多项安全认证,满足企业级安全要求智能高效:集成AI能力,实现代码检查、测试用例生成等智能化场景二、核心功能模块解析1. 需求与项目管理(CodeArts Req)敏捷Scrum看板:可视化任务流转,支持冲刺规划、每日站会等敏捷实践需求跟踪矩阵:实现需求-任务-代码-用例的多维关联甘特图视图:为传统项目管理提供关键路径分析华为特色模板:预置IPD、DevSecOps等行业领先流程模板2. 代码托管与协作(CodeArts Repo)企业级Git服务:支持百万级代码库管理多仓库协同:子模块、跨仓库引用等高级功能代码智能检索:基于语义的全局搜索能力安全管控:细粒度的权限控制+代码水印防护3. 持续集成与交付(CodeArts Build/Pipeline)可视化流水线:拖拉拽方式编排构建部署流程多环境支持:开发→测试→预发→生产的全环境贯通构建加速:分布式缓存技术使构建速度提升50%+内置模板:支持Java、Python、Go等主流技术栈4. 代码检查(CodeArts Check)多维度检查:静态检查、安全检查、架构检查AI辅助:基于机器学习的坏味道检测华为规范内置:集成华为内部多年积累的编码规范增量检查:仅分析变更代码,提升检查效率5. 测试管理(CodeArts TestPlan)用例管理:树形结构组织测试用例自动化测试:与主流测试框架无缝集成缺陷跟踪:与需求管理双向追溯AI测试:自动生成边界测试用例三、技术架构与创新亮点1. 云原生技术栈微服务架构:基于华为云CCE容器引擎部署分布式存储:使用华为云OBS实现海量数据存储高可用设计:多可用区部署保障99.95% SLA2. 安全体系四层防护:网络隔离+数据加密+访问控制+操作审计合规认证:通过等保2.0三级、ISO 27001等认证安全沙箱:构建环境完全隔离,防止代码泄露3. 智能化能力代码补全:基于深度学习的上下文感知补全缺陷预测:通过历史数据分析风险代码段测试生成:根据代码变更自动生成测试用例日志分析:异常模式自动识别与告警四、典型应用场景1. 金融行业合规开发某银行采用CodeArts实现:需求与监管要求双向追溯自动化的安全扫描(涵盖OWASP Top 10)审计日志全程留痕开发周期缩短30%,合规检查效率提升5倍2. 互联网企业敏捷交付某电商平台应用效果:每日构建次数从200+提升至1000+部署频率从每周1次提高到每日多次故障恢复时间从小时级降至分钟级3. 大型企业协同研发某制造企业实现:跨地域2000+研发人员协同代码统一管控与知识沉淀工具链统一降低培训成本五、竞争优势对比维度华为云CodeArts主流竞品A主流竞品B全流程覆盖★★★★★★★★☆★★★★本地化服务★★★★★★★☆★★★☆安全合规★★★★★★★★★★★★☆华为生态集成★★★★★☆★☆AI能力★★★★☆★★★★★★☆六、最佳实践指南1. 流水线配置示例# codearts-pipeline.ymlstages: - name: BUILD jobs: - name: maven_build type: build properties: build_tool: maven goals: clean package -DskipTests - name: TEST jobs: - name: unittest type: test properties: framework: junit5 test_report: target/surefire-reports - name: DEPLOY jobs: - name: k8s_deploy type: deploy properties: cluster: production namespace: default2. 安全防护配置建议权限管理:基于RBAC模型设置最小权限代码扫描:在流水线中配置门禁检查访问控制:IP白名单+双因素认证数据加密:启用传输加密和存储加密七、未来演进方向深度AI集成:需求自动拆分、智能代码评审多云支持:对接AWS、Azure等公有云资源边缘场景:支持边缘计算设备的CI/CD元宇宙协作:3D虚拟空间中的远程结对编程华为云CodeArts正通过持续创新,助力企业构建更智能、更安全、更高效的软件研发体系。对于寻求数字化转型的企业而言,CodeArts不仅提供了工具链支持,更带来了华为全球领先的研发方法论和实践经验,是提升组织级研发能力的战略选择。
  • [互动交流] CodeArtsCheck idea 导入规则不生效
    1.从华为云CodeArts上启用的规则导出的excel模版和CodeArtsCheck idea插件导入的模版不一致,导不进去;2.先从CodeArtsCheck idea插件导出个模版,然后把线上的规则按照这个模版填入数据,能导入成功,但是CodeArtsCheck idea插件规则配置面板中找不到新导入的规则。
  • [交流吐槽] 为什么代码规则集不能取消?误触之后几百个问题?烦死了
    为什么代码规则集不能取消?误触之后几百个问题?烦死了
  • [技术干货] FastDB
    简要介绍FastDB是一个内存数据库,通过把数据加载到内存中实现对数据的操作,相比于传统数据库,操作的速度更快,但是FastDB不支持client-server架构,所以使用FastDB数据库的应用程序必须运行在同一主机上。开发语言:C++一句话描述:高效的内存数据库建议的版本建议使用版本为“FastDB 3.76”。硬件要求硬件要求如表1所示。表1 硬件要求项目说明机型TaiShan 200服务器(型号2280)处理器2*鲲鹏920 5250处理器内存大小16*32GB 2666MHz网卡1*10Gb/s硬盘系统盘:2*900GB SAS HDD数据盘:1*3.2TB ES3000 V3展开表操作系统和软件要求FastDB安装所需操作系统、软件获取方式如表2所示。表2 操作系统和软件要求项目版本说明下载地址CentOSOS:CentOS 7.6Kernel:4.14.0待安装软件兼容的操作系统操作系统:官方网站Kernel:系统自带openEulerOS:openEuler 20.03 LTS-SP3Kernel:4.19.90待安装软件兼容的操作系统操作系统:官方网站Kernel:系统自带KylinOS:Kylin V10Kernel:4.19.90待安装软件兼容的操作系统操作系统:官方网站Kernel:系统自带gccgcc-c++-基础依赖项通过Yum安装FastDB3.76待安装的软件cid:link_6操作系统安装后默认已配置Yum源。可以使用yum list查询Yum源。yum list 安装基础依赖包。yum install -y gcc gcc-c++测试环境下通常需要关闭防火墙以避免部分网络因素影响,请根据实际需求做配置。停止防火墙。systemctl stop firewalld.service关闭防火墙。systemctl disable firewalld.service说明关闭防火墙的同时,也取消了防火墙开机自启动功能。查看防火墙状态。systemctl status firewalld.service显示Active: inactive (dead)即表示防火墙服务已关闭。将RPM包上传至“/home”目录下。下载链接:CentOS 7.6:cid:link_3openEuler 20.03 LTS-SP3:cid:link_5Kylin V10:cid:link_4说明若服务器可以访问网络,则可以直接在服务器上使用wget命令下载RPM包。CentOS 7.6:cd /home wget cid:link_3 --no-check-certificateopenEuler 20.03 LTS-SP3:cd /home wget cid:link_5 --no-check-certificateKylin v10:cd /home wget cid:link_4 --no-check-certificate进入“/hom”目录。cd /home安装FastDB。rpm -ivh fastdb-3.76-1.aarch64.rpm 查看FastDB包的详细信息。rpm -qi fastdb-3.76-1.aarch64查看安装目录。ll /usr/local/fastdb ll /usr/local/fastdb/bin 验证FastDB更新时间:2024/06/27说明此处只展示登录、查询、退出,其它具体操作参考验证FastDB。初始化数据库并登录。cd /usr/local/fastdb/bin ./subsql 查看数据库常用操作。help 退出数据库。exit RPM包安装方式卸载更新时间:2024/06/27卸载FastDB。CentOS 7.6:cd /home rpm -qa | grep fastdb rpm -e fastdb-3.76-1.el7.aarch64 openEuler 20.03 LTS-SP3:cd /home rpm -qa | grep fastdb rpm -e fastdb-3.76-1.aarch64 Kylin v10:cd /home rpm -qa | grep fastdb rpm -e fastdb-3.76-1.ky10.ky10.aarch64查询是否卸载成功,查询不到包和安装路径说明已经卸载。rpm -qa | grep fastdb ll /usr/local/fastdb
  • [技术干货] Fink
    Flink是一个分布式、高性能、高可用的开源大数据处理框架,具有基于内存计算,流式处理等特点,用于对无边界和有边界数据流进行有状态的计算硬件要求项目说明服务器TaiShan服务器CPU鲲鹏920处理器或鲲鹏916处理器磁盘分区对磁盘分区无要求网络可访问外网软件要求项目版本OpenJDK1.8.0_252Maven3.5.4Flink1.9.1CentOS系统项目版本CentOS7.6OS Kernel4.14.0GCC4.8.5openEuler系统项目版本openEuler20.03 LTS SP122.03 LTSOS Kernel4.19.90GCC7.3.0安装GCC挂载OS镜像。mount YOUR_OS.iso /media -o loop说明YOUR_OS.iso用实际的iso包名代替。备份repo文件,清空“/etc/yum.repos.d/”目录文件。cp -r /etc/yum.repos.d /etc/yum.repos.d-bak rm /etc/yum.repos.d/*须知请确认已经备份所有repo文件后,在rm删除界面输入“y”表示同意删除。配置Yum本地源。打开“/etc/yum.repos.d/Local.repo”文件。vi /etc/yum.repos.d/Local.repo按“i”进入编辑模式,在文件中添加以下内容。[Local] name=Local baseurl=file:///media/ enabled=1 gpgcheck=0按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使Yum源配置生效。yum clean all yum makecache通过Yum源安装GCC相关软件。yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64安装依赖通过Yum源安装依赖的相关软件。yum install -y wget openssl-devel zlib-devel automake libtool make libstdc++-static glibc-static git snappy snappy-de下载并安装到指定目录(此处以指定“/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”文件。vi /etc/profile按“i”进入编辑模式,在文件末尾增加下面代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4 export PATH=$MAVEN_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使修改的环境变量生效。source /etc/profile检查Maven是否安装成功。mvn -v修改Maven配置文件中的本地仓路径、远程仓等。打开配置文件。vi /opt/tools/installed/apache-maven-3.5.4/conf/settings.xml按“i”进入编辑模式,远程仓库配置(修改成自己搭建的Maven仓库,如果没有,可以按照下面示例配置),在<mirrors>标签内添加以下内容:<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf> </mirror>说明本地仓库地址默认在“~/.m2/”目录下,如果想修改成指定目录,则修改<localRepository>标签,没有特殊需求,可不必修改该参数。可选:当编译环境不能访问外网,需要在“settings.xml”配置文件中添加代理配置,具体内容如下:<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>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。下载并解压安装到指定目录(此处以指定“/opt/tools/installed/”目录为例)。wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz mkdir -p /opt/tools/installed/ mv jdk8u252-b09 /opt/tools/installed/配置Java环境变量。打开“/etc/profile”文件。vi /etc/profile按“i”进入编辑模式,在文件末尾添加如下代码。export JAVA_HOME=/opt/tools/installed/jdk8u252-b09 export PATH=$JAVA_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使修改的环境变量生效。source /etc/profile检查OpenJDK是否安装成功。java -version请参见《使用鲲鹏应用迁移工具案例》扫描Flink安装包,分析得出需要移植的第三方依赖包如表1所示。表1 软件移植分析结果原始jarso文件scala-compiler-2.11.12.jarlibjansi.soflink-shaded-netty-4.1.32.Final-7.0.jarliborg_apache_flink_shaded_netty4_netty_transport_native_epoll_x86_64.sofrocksdbjni-5.17.2-artisans-1.0.jarlibrocksdbjni32.so,librocksdbjni64.so,librocksdbjnile.soflink-shaded-netty-tcnative-dynamic-2.0.25.Final-7.0. jarliborg_apache_flink_shaded_netty4_netty_tcnative_linux_x86_64.so,liborg_apache_flink_shaded_netty4_netty_tcnative_linux_x86_64_fedora.so下载flink-release-1.9.1源码并解压。wget https://github.com/apache/flink/archive/release-1.9.1.tar.gz tar -zxf release-1.9.1.tar.gz进入解压后的目录。cd flink-release-1.9.1在“flink-release-1.9.1/pom.xml”文件中添加鲲鹏仓的引用。打开文件。vi pom.xml按“i”进入编辑模式,在<repositories>标签的第一位添加鲲鹏Maven仓库源。<repository> <id>kunpengmaven</id> <name>kunpeng maven</name> <url>https://mirrors.huaweicloud.com/kunpeng/maven</url> </repository>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。在“flink-release-1.9.1/flink-dist/pom.xml”添加鲲鹏仓的引用。打开文件。vi flink-dist/pom.xml按“i”进入编辑模式,在<repositories>标签的第一位添加鲲鹏Maven仓库源。<repositories> <repository> <id>kunpengmaven</id> <name>kunpeng maven</name> <url>https://mirrors.huaweicloud.com/kunpeng/maven</url> </repository> </repositories>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。在“flink-release-1.9.1/flink-state-backends/flink-statebackend-rocksdb/pom.xml”添加鲲鹏仓的引用。打开文件。vi flink-state-backends/flink-statebackend-rocksdb/pom.xml按“i”进入编辑模式,在<repositories>标签的第一位添加鲲鹏Maven仓库源。<repositories> <repository> <id>kunpengmaven</id> <name>kunpeng maven</name> <url>https://mirrors.huaweicloud.com/kunpeng/maven</url> </repository> </repositories>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。在“flink-runtime/pom.xml”添加鲲鹏仓的引用。打开文件。vi flink-runtime/pom.xml按“i”进入编辑模式,在<repositories>标签的第一位添加鲲鹏Maven仓库源。<repositories> <repository> <id>kunpengmaven</id> <name>kunpeng maven</name> <url>https://mirrors.huaweicloud.com/kunpeng/maven</url> </repository> </repositories>编译完成后在“flink-release-1.9.1/flink-dist/target/flink-1.9.1-bin/”生成目标目录“flink-1.9.1”。使用鲲鹏应用迁移工具扫描编译生成的tar包,确保没有包含有x86的so和jar包。
  • [技术干货] ELK调优指南
    Elasticsearch是开源的实时分布式搜索分析引擎,内部使用Lucene做索引与搜索。本章将从基本概念、流程分析等方面对Elasticsearch组件做简单的介绍。集群结构Elasticsearch集群方案由EsMaster、EsClient、EsNode1、EsNode2、EsNode3进程组成。各模块说明如表1所示。表1 Elasticsearch集群方案组成名称说明ClientClient使用HTTP或HTTPS协议同Elasticsearch集群中的EsMaster以及各EsNode实例进程进行通信,进行分布式索引和分布式搜索操作。EsMasterEsMaster为Elasticsearch的主节点,负责集群的管理,主要是集群相关的操作,如决定分片的分配、采集集群节点等。EsNode1-3EsNode1-3为Elasticsearch的数据节点,主要是存储索引数据,对文档进行增删改查、聚合等操作。EsClientEsClient为Elasticsearch的协调节点,只处理路由请求、搜索及分发索引等操作。自身不存储数据,也不管理集群。ZooKeeper集群ZooKeeper为Elasticsearch集群中各进程提供心跳感应机制。展开表基本概念Index:即索引,是Elasticsearch中一个逻辑命名空间,指向一个或多个分片,内部Apache Lucene实现索引中数据的读写。索引与关系数据库实例Database相当。一个Elasticsearch实例可以包含多个索引。Type:文档类型,文档类型使得同一个索引中在存储结构不同的文档时,只需要依据文档类型就可以找到对应的参数映射信息,方便文档的存储。相当于数据库中的Table(数据表)。一个索引对应一个文档类型。Document:文档,是可以被索引的基本单位,特指最顶层结构或根对象序列化成的JSON数据。相当于数据库中的行。一个类型包含多个文档。Mapping:映射,用来约束字段的类型,可以根据数据自动创建。相当于数据库中的Shema。Field:字段,组成文档的最小单位。相当于数据库中的Column。每个文档包含多个字段。EsMaster:主节点,可以临时管理集群级别的一些变更,例如新建或删除索引、增加或移除节点等。主节点不参与文档级别的变更或搜索,也不接收请求。在流量增长时,该主节点不会成为集群的瓶颈。EsNode:Elasticsearch节点,一个节点就是一个Elasticsearch实例。EsClient:Elasticsearch节点,该节点只能路由请求,处理搜索减少阶段和分发批量索引。其自身不进行数据存储,也没有管理集群的能力。Shard:分片,Elasticsearch中最小级别的工作单元,文档存储在分片中,并且在分片中被索引。Primary Shard:主分片,索引中的每个文档属于一个单独的主分片,主分片的数量决定了索引最多能存储多少数据。Replica Shard:复制分片,它是主分片的一个副本,可以防止硬件故障导致的数据丢失,同时可以提供读请求,比如搜索或者从别的Shard取回文档。基本原理内部架构Elasticsearch通过RESTful API或者其他语言(比如Java)API提供丰富访问接口,使用集群发现机制,支持脚本语言,支持丰富的插件。底层基于Lucene,保持Lucene绝对的独立性,通过本地文件、共享文件、HDFS完成索引存储。实验环境:软件版本OSCentOS 7.6openEuler 20.03JDKOpenJDK version 1.8.0_262Elasticsearch6.7.1调优原则:性能调优就是对计算机硬件、操作系统和应用有相当深入的了解,调节三者之间的关系,实现整个系统(包括硬件、操作系统、应用)的性能最大化,并能不断的满足现有的业务需求。在性能优化时,我们必须遵循一定的原则,否则,有可能得不到正确的调优结果。主要有以下几个方面:对性能进行分析时,要多方面分析系统的资源瓶颈所在,因为系统某一方面性能低,也许并不是它自己造成的,而是其他方面造成的。如CPU利用率是100%时,很可能是内存容量太小,因为CPU忙于处理内存调度。一次只对影响性能的某方面的一个参数进行调整,多个参数同时调整的话,很难界定性能的影响是由哪个参数造成的。在进行系统性能分析时,性能分析工具本身会占用一定的系统资源,如CPU资源、内存资源等等。我们必须注意到这点,即分析工具本身运行可能会导致系统某方面的资源瓶颈情况更加严重。调优思路更新时间:2024/07/22修改脏页刷新参数(dirty_background_ratio:10->5,dirty_expire_centisecs:3000->2000),提高脏页后台刷新的频率,对入库速率有一定的提升。echo 5 > /proc/sys/vm/dirty_background_ratio echo 2000 > /proc/sys/vm/dirty_expire_centisecs或者sysctl -w vm.dirty_background_ratio = 5 sysctl -w vm.dirty_expire_centisecs=2000创建RAID 5,使得磁盘IO并不是入库和搜索的瓶颈点,让业务模型的多线程特点在TaiShan服务器上完全发挥。目的对于不同的硬件设备,通过在BIOS中设置一些高级选项,可以有效提升服务器性能。服务器上的SMMU一般用来完成设备的地址转换,并且可以实现设备隔离,在虚拟化中很实用,但是在物理机测试场景下,SMMU可能会导致性能下降,尤其对于小包网络场景,因此建议关闭该功能提升服务器性能。在虚拟机场景需要打开此配置来使用PCI直通功能。在本测试场景中,预取会导致Cache污染,Cache miss增加,因此建议关闭预取功能。方法关闭SMMU。重启服务器,进入BIOS设置界面。具体操作请参见《TaiShan 服务器 BIOS 参数参考(鲲鹏920处理器)》中“进入BIOS界面”的相关内容。依次进入“Advanced > MISC Config > Support Stmmu”将“Support Smmu”设置为“Disabled”,按“F10”保存退出(永久有效)。关闭预取。进入BIOS设置界面。依次进入“Advanced > MISC Config > CPU Prefetching Configuration”。将“CPU Prefetching Configuration”设置为“Disabled”,按“F10”保存退出(永久有效)。目的1822网卡默认的rx_buff配置为2KB,在聚合64KB报文的时候需要多片不连续的内存,使用率较低;该参数可以配置为2/4/8/16KB,修改后可以减少不连续的内存,提高内存使用率。方法查看rx_buff参数值,默认为2。cat /sys/bus/pci/drivers/hinic/module/parameters/rx_buff在目录“/etc/modprobe.d/”中增加文件hinic.conf,修改rx_buff值为8。options hinic rx_buff=8重新挂载hinic驱动,使得新参数生效。rmmod hinic modprobe hinic查看rx_buff参数是否更新成功。cat /sys/bus/pci/drivers/hinic/module/parameters/rx_buff目的1822网卡Ring Buffer最大支持4096,默认配置为1024,可以增大Buffer大小用于提高网卡Ring大小。方法查看Ring Buffer默认大小,假设当前网卡名为enp131s0。ethtool -g enp131s0 修改Ring Buffer值为4096。ethtool -G enp131s0 rx 4096 tx 4096查看Ring Buffer值是否更新成功。ethtool -g enp131s0目的1822网卡支持LRO(Large Receive Offload),可以打开该选项,并合理配置1822 LRO参数。方法查看LRO参数是否开启,默认为off,假设当前网卡名为enp131s0。ethtool -k enp131s0打开LRO。ethtool -K enp131s0 lro on查看LRO参数是否开启。ethtool -k enp131s0 目的相比使用内核的irqbalance使网卡中断在所有核上进行调度,使用手动绑核将中断固定住能有效提高业务网络收发包的能力。方法关闭irqbalance。若要对网卡进行绑核操作,则需要关闭irqbalance。停止irqbalance服务,重启失效。systemctl stop irqbalance.service关闭irqbalance服务,永久有效。systemctl disable irqbalance.service查看irqbalance服务状态是否已关闭。如果服务已关闭,状态将显示为“inactive”。systemctl status irqbalance.service查看网卡PCI设备号,假设当前网卡名为enp131s0。ethtool -i enp131s0查看PCIe网卡所属NUMA node。lspci -vvvs <bus-info>查看NUMA node对应的core的区间,例如此处就可以绑到48~63。lscpu 进行中断绑核,1822网卡共有16个队列,将这些中断逐个绑至所在NumaNode的16个Core上(例如此处就是绑到NUMA node1对应的48~63上面)。创建脚本。vi smartIrq.sh按“i”进入编辑模式,在文件中添加以下内容。#!/bin/bash irq_list=(`cat /proc/interrupts | grep enp131s0 | awk -F: '{print $1}'`) cpunum=48 # 修改为所在node的第一个Core for irq in ${irq_list[@]} do echo $cpunum > /proc/irq/$irq/smp_affinity_list echo `cat /proc/irq/$irq/smp_affinity_list` (( cpunum+=1 )) done按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。进行中断绑核。bash smartIrq.sh利用脚本查看是否绑核成功。创建脚本。vi irqCheck.sh按“i”进入编辑模式,在文件中添加以下内容。#!/bin/bash # 网卡名 intf=$1 log=irqSet-`date "+%Y%m%d-%H%M%S"`.log # 可用的CPU数 cpuNum=$(cat /proc/cpuinfo |grep processor -c) # RX TX中断列表 irqListRx=$(cat /proc/interrupts | grep ${intf} | awk -F':' '{print $1}') irqListTx=$(cat /proc/interrupts | grep ${intf} | awk -F':' '{print $1}') # 绑定接收中断rx irq for irqRX in ${irqListRx[@]} do cat /proc/irq/${irqRX}/smp_affinity_list done # 绑定发送中断tx irq for irqTX in ${irqListTx[@]} do cat /proc/irq/${irqTX}/smp_affinity_list done按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。查看是否绑核成功。当显示中断请求(IRQ)时,表示绑定核心成功。sh irqCheck.sh enp131s0目的磁盘创建RAID可以提高磁盘的整体存取性能,环境上若使用的是LSI 3108/3408/3508系列RAID控制卡,推荐创建单盘RAID 0/RAID 5,充分利用RAID控制卡的Cache(LSI 3508卡为2GB),提高读写速率。方法使用storcli64_arm文件检查RAID组情况。./storcli64_arm /c0 show创建RAID 5。./storcli64_arm /c0 add vd r5 drives=65:1-3 ./storcli64_arm /c0 add vd r5 drives=65:4-6 ./storcli64_arm /c0 add vd r5 drives=65:7-9 ./storcli64_arm /c0 add vd r5 drives=65:10-12说明65:x指的是1查询到的EID,请根据实际情况调整。目的使用RAID控制卡的RAWBC(Redundant Array of Wimpy Blocks with Correction Codes)/RWBC(Rechargeable Wireless Batteryless Capacitive Sensor)性能更佳。使用storcli工具修改RAID组的Cache设置。Read Policy设置为Read ahead,使用RAID控制卡的Cache做预读。Write Policy设置为Write back,使用RAID控制卡的Cache做回写,而不是Write through透写。方法配置RAID控制卡的Cache。./storcli64_arm /c0/vx set rdcache=RA ./storcli64_arm /c0/vx set wrcache=WB/AWB ./storcli64_arm /c0/vx set iopolicy=Cached说明./storcli64_arm /c0/vx set wrcache=WB/AWB命令中的WB/AWB取决于RAID控制卡是否有超级电容,无超级电容使用AWB。检查配置是否生效。显示有关控制器和逻辑驱动器的详细信息即配置生效。./storcli64_arm /c0 showIO policy设置为Cached IO,使用RAID控制卡的Cache缓存IO。
  • [技术干货] Elk部署指南
    简要介绍本文档重点介绍Elasticsearch软件部署步骤,不涉及软件源码编译步骤。文档中使用的软件都是从官网下载获取,这类软件多基于x86环境编译得到,软件内如果包含非跨平台语言(如C/C++)实现的模块,直接在TaiShan服务器上使用会出现不兼容的问题,需下载对应软件源码包进行编译,然后部署。但无论软件包是在哪种环境下编译得到,部署步骤都是一致的。建议的版本软件版本获取方法OpenJDKjdk8u252-b09ARM: cid:link_2x86: cid:link_3Elasticsearch6.7.1在Elasticsearch官网下载所需版本的软件包。下载地址:cid:link_5硬件要求最低配置:任意CPU、一根内存(大小不限)、一块硬盘(大小不限)。具体配置视实际应用场景而定。操作系统要求适用于CentOS 7.4~7.6、openEuler 20.03~22.03操作系统。说明本文以CentOS 7.6为例,介绍Elasticsearch集群部署。集群环境规划集群环境规划以四台机器分别作为集群的节点1、节点2、节点3和节点4。各个节点数据规格如表1所示。表1 集群环境规划机器名称IP地址硬盘数OS & JDK节点1IPaddress1系统盘:1 * 4TB HDD数据盘:12 * 4TB HDDCentOS 7.6&OpenJDK jdk8u252-b09节点2IPaddress2节点3IPaddress3节点4IPaddress4集群各节点的软件规划如表2所示。表2 软件规划机器名称服务名称节点1-节点2Elasticsearch*2节点3Elasticsearch*2节点4Elasticsearch*2依次登录所有节点,将节点的主机名分别修改为server1、agent1、agent2、agent3。hostnamectl set-hostname 主机名 --static登录所有节点,添加集群所有节点的“地址-主机名”映射关系。打开“/etc/hosts”文件。vi /etc/hosts按“i”进入编辑模式,在hosts文件中添加以下内容。IPaddress1 server1 IPaddress2 agent1 IPaddress3 agent2 IPaddress4 agent3按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。登录所有节点,关闭防火墙。systemctl stop firewalld.service systemctl disable firewalld.service登录所有节点,配置SSH免密登录。生成密钥,遇到提示时,按“Enter”。ssh-keygen -t rsa在每台机器上配置SSH免密登录(包括配置自身节点的免密)。ssh-copy-id -i ~/.ssh/id_rsa.pub root@节点IP登录所有节点,安装OpenJDK。下载OpenJDK并解压到“/usr/local”目录。ARM:wget cid:link_2 tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz -C /usr/localx86:wget cid:link_3 tar -zxf OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar.gz -C /usr/local将解压后的JDK目录的所属用户、所属用户组变更为“root”。chown -R root /usr/local/jdk8u252-b09 chgrp -R root /usr/local/jdk8u252-b09配置环境变量。打开“/etc/profile”文件。vi /etc/profile按“i”进入编辑模式,添加以下内容。export JAVA_HOME=/usr/local/jdk8u252-b09 export PATH=$JAVA_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使环境变量生效。source /etc/profile检查OpenJDK是否安装成功。java -version回显如下所示即为安装成功。编译Elasticsearch并解压参考《Elasticsearch 移植指南(CentOS&openEuler)》编译出Elasticsearch软件部署包。将Elasticsearch软件部署包放置于agent1节点的“/usr/local”目录,并解压。mv elasticsearch-6.7.1.tar.gz /usr/local tar -zxvf elasticsearch-6.7.1.tar.gz说明若Elasticsearch软件部署包名称不是elasticsearch-6.7.1.tar.gz,请根据实际情况修改命令。建立软链接,便于后期版本更换。ln -s elasticsearch-6.7.1 elasticsearch说明若Elasticsearch软件目录名称不是“elasticsearch-6.7.1”,请根据实际情况修改命令。添加Elasticsearch到环境变量编辑“/etc/profile”文件。vi /etc/profile按“i”进入编辑模式,在文件底部添加环境变量。export ES_HOME=/usr/local/elasticsearch export PATH=$ES_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。环境变量生效。source /etc/profile拷贝配置目录进入目录“/usr/local/elasticsearch”,拷贝“config”目录到ESMaster和ESNode1实例对应的配置目录。cd /usr/local/elasticsearch cp -r config config0 cp -r config config1说明config0:ESMaster实例对应配置目录。config1:ESNode1实例对应配置目录。Elasticsearch所有的配置文件都在“$ES_HOME/config{0,1}”目录下。修改“config0/elasticsearch.yml”文件。cluster.name: my-application # 集群名,可变 node.name: node-{ip}-9200 # 实例名,需保证同集群内实例名不同 path.data: /data/data1/elastic,/data/data2/elastic,/data/data3/elastic,/data/data4/elastic,/data/data5/elastic,/data/data6 # ESMaster实例的数据目录 path.logs: /var/log/elastic-9200 # ESMaster实例的日志目录 bootstrap.memory_lock: false network.host: $agent1 # 可填agent1节点的IP地址 http.port: 9200 # ESMaster实例端口号 transport.tcp.port: 9300 discovery.zen.ping.unicast.hosts: ["agent1:9300","agent1:9301","agent2:9300","agent2:9301", "agent3:9300","agent3:9301"] discovery.zen.minimum_master_nodes: 1 node.max_local_storage_nodes: 5 node.master: true node.data: true xpack.ml.enabled: false修改“config1/elasticsearch.yml”文件。cluster.name: my-application # 集群名,可变 node.name: node-{ip}-9201 # 实例名,需保证同集群内实例名不同 path.data: /data/data7/elastic,/data/data8/elastic,/data/data9/elastic,/data/data10/elastic,/data/data11/elastic,/data/data12/elastic # ESMaster实例的数据目录 path.logs: /var/log/elastic-9201 # ESMaster实例的日志目录 bootstrap.memory_lock: false network.host: agent1 # 可填agent1节点的IP地址 http.port: 9201 # ESMaster实例端口号 transport.tcp.port: 9301 discovery.zen.ping.unicast.hosts: ["agent1:9300","agent1:9301","agent2:9300","agent2:9301", "agent3:9300","agent3:9301"] discovery.zen.minimum_master_nodes: 1 node.max_local_storage_nodes: 5 node.master: true node.data: true xpack.ml.enabled: false修改“config{0,1}/jvm.options”文件,ESMaster实例内存不需要太大,根据实际情况而定。-Xms31g -Xmx31g修改“bin/elasticsearch-env”文件,在脚本的开头增加以下配置。export JAVA_HOME=/usr/local/jdk8u252-b09 export PATH=${JAVA_HOME}/bin:${PATH}同步配置到其它节点同步配置。拷贝elasticsearch-6.7.1到agent2、3的“/usr/local”。scp -r /usr/local/elasticsearch-6.7.1 root@agent2:/usr/local scp -r /usr/local/elasticsearch-6.7.1 root@agent3:/usr/local登录到agent2、3节点,为elasticsearch-6.7.1建立软链接。cd /usr/local ln -s elasticsearch-6.7.1 elasticsearch创建数据和日志目录。在agent1~3上创建ESMaster的数据目录。mkdir -p /usr/local/elasticsearch/esmaster在agent1~3上创建ESNode1的数据目录。mkdir -p /data/data{1,2,3,4,5,6,7,8,9,10,11,12}/elastic在agent1~3上创建ESMaster、ESNode1的日志目录。mkdir -p /var/log/elastic-{9200,9201}修改节点相关参数。登录agent2,修改“config0/elasticsearch.yml”。node.name: node-{ip}-9200 # 实例名,需保证同集群内实例名不同 network.host: agent2# 可填agent2节点的IP地址修改“config1/elasticsearch.yml”。node.name: node-{ip}-9201 # 实例名,需保证同集群内实例名不同 network.host: agent2# 可填agent2节点的IP地址登录agent3,修改“config0/elasticsearch.yml”。node.name: node-{ip}-9200 # 实例名,需保证同集群内实例名不同 network.host: agent3# 可填agent3节点的IP地址修改“config1/elasticsearch.yml”。node.name: node-{ip}-9201 # 实例名,需保证同集群内实例名不同 network.host: agent3# 可填agent3节点的IP地址启动和停止创建elasticsearch用户。登录agent1~3,创建elasticsearch用户,该用户默认不允许以root用户启动。useradd elasticsearch修改elasticsearch相关目录所有者。chown -R elasticsearch:elasticsearch /usr/local/elasticsearch chown -R elasticsearch:elasticsearch /data/data{1,2,3,4,5,6,7,8,9,10,11,12}/elastic chown -R elasticsearch:elasticsearch /var/log/elastic-{9200,9201}登录agent1~3,修改“/etc/security/limits.conf”。elasticsearch soft nofile 190000 elasticsearch hard nofile 190000 elasticsearch soft nproc 190000 elasticsearch hard nproc 190000登录agent1~3,在${ES_HOME}目录通过elasticsearch用户启动Elasticsearch集群。sysctl -w vm.max_map_count=655360 sudo -u elasticsearch ES_PATH_CONF=/usr/local/elasticsearch/config0/ bin/elasticsearch -p /usr/local/elasticsearch/es-{ip}-9200.pid -d sudo -u elasticsearch ES_PATH_CONF=/usr/local/elasticsearch/config1/ bin/elasticsearch -p /usr/local/elasticsearch/es-{ip}-9201.pid -d说明如果碰到权限不足问题,可以加上权限。chmod -R 777 /usr/local/elasticsearch chmod -R 777 /data/data{1,2,3,4,5,6,7,8,9,10,11,12}/elastic查看Elasticsearch启动状态。ps aux | grep Elasticsearch终止Elasticsearch进程,停止服务,停止Elasticsearch集群。kill -9 $(ps aux | grep Elasticsearch | grep -v 'grep --color=auto Elasticsearch' | awk '{print \\\$2})修改Elasticsearch配置文件说明
  • [技术干货] Elk移植指南
    介绍ELK并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch、Logstash和Kibana。硬件要求项目说明服务器TaiShan服务器CPU鲲鹏920处理器或鲲鹏916处理器磁盘分区对磁盘分区无要求网络可访问外网展开表软件要求项目版本Elasticsearch5.5.0Logstash5.5.0Kibana5.5.0展开表CentOS系统项目版本CentOS7.6OS Kernel4.14.0GCC4.8.5展开表openEuler系统项目版本openEuler20.03 LTS SP122.03 LTSOS Kernel4.19.90GCC7.3.0下载Elasticsearch 5.5.0安装包。wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.tar.gz使用鲲鹏应用迁移工具扫描Elasticsearch 5.5.0安装包。说明关于如何使用鲲鹏应用迁移工具进行扫描的详细信息,请参见《使用鲲鹏应用迁移工具案例》。鲲鹏镜像站中提供的二进制包是基于开源代码直接编译打包而成的,不含漏洞及BUG修复。使用开源软件时需遵守开源软件的许可协议。扫描结果获取地址jna-4.4.0.jarcid:link_12libjnidispatch.so展开表将下述路径中的JAR包替换为2中下载获取的JAR包。 JAR包路径jna-4.4.0.jarelasticsearch-5.5.0/lib/下载Logstash 5.5.0安装包。wget https://artifacts.elastic.co/downloads/logstash/logstash-5.5.0.tar.gz使用鲲鹏应用迁移工具扫描Logstash 5.5.0安装包。说明扫描结果编译指导参考获取地址jline-2.11.jar《Jline 移植指南(CentOS&openEuler)》cid:link_14libjansi.sojruby.jar《 JRuby 移植指南(CentOS 7.6)》jruby-1.7.27.jar包无获取路径,可参考《 JRuby 移植指南(CentOS 7.6)》编译适配。libjffi-1.2.solz4-1.3.0.jar《LZ4-java 移植指南(CentOS&openEuler)》cid:link_13liblz4-java.sonetty-all-4.1.3.Final.jar《netty-all 移植指南(CentOS&openEuler)》cid:link_11libnetty-transport-native-epoll.sonetty-tcnative-boringssl-static-1.1.33.Fork23.jar《netty-tcnative-boringssl-static-1.1.33.Fork23.jar 移植指南》cid:link_0libnetty-tcnative_64.sosnappy-java-1.1.0.1.jar《snappy-java 移植指南(CentOS&openEuler)》cid:link_7libsnappyjava.so展开表使用开源软件时需遵守开源软件的许可协议。将下述路径中的JAR包替换为2中编译或下载的JAR包。 JAR包路径jline-2.11.jarlogstash-5.5.0/vendor/jruby/lib/ruby/shared/readline/jruby.jarlogstash-5.5.0/vendor/jruby/lib/lz4-1.3.0.jarlogstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-input-kafka-5.1.8/vendor/jar-dependencies/runtime-jars/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-output-kafka-5.1.7/vendor/jar-dependencies/runtime-jars/netty-all-4.1.3.Final.jarlogstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-input-beats-3.1.21-java/vendor/jar-dependencies/io/netty/netty-all/4.1.3.Final/netty-tcnative-boringssl-static-1.1.33.Fork23.jarlogstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-input-beats-3.1.21-java/vendor/jar-dependencies/io/netty/netty-tcnative-boringssl-static/1.1.33.Fork23/snappy-java-1.1.0.1.jarlogstash-5.5.0/vendor/bundle/jruby/1.9/gems/snappy-jars-1.1.0.1.2-java/lib/下载并解压Kibana5.5.0安装包。wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-linux-x86_64.tar.gz tar -zxf kibana-5.5.0-linux-x86_64.tar.gz使用鲲鹏应用迁移工具扫描Kibana5.5.0安装包。扫描结果显示无需替换任何JAR包。替换ARM版本node.js。删除“kibana-5.5.0-linux-x86_64/node/”路径下的文件。rm -rf ./kibana-5.5.0-linux-x86_64/node/*下载ARM版本node.js。wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-arm64.tar.gz解压node-v6.10.2-linux-arm64.tar.gz。tar -zxvf node-v6.10.2-linux-arm64.tar.gz将“node-v6.10.2-linux-arm64/”下的内容复制到“kibana-5.5.0-linux-x86_64/node/”。cp -r node-v6.10.2-linux-arm64/* ./kibana-5.5.0-linux-x86_64/node/
  • [技术干货] solr
    简要介绍本文档重点介绍软件部署步骤,并不涉及软件源码编译步骤。文档中使用的软件都是从官网下载获取,这类软件多基于x86环境编译得到,软件内如果包含非跨平台语言(如C/C++)实现的模块,直接在TaiShan服务器上使用会出现不兼容的问题,需下载对应软件源码包进行编译,然后部署。但不管软件包是在哪种环境下编译得到,部署步骤都是一致的。硬件要求最低配置:任意CPU、一根内存(大小不限)、一块硬盘(大小不限)。具体配置视实际应用场景而定。操作系统要求适用于CentOS 7.4~7.6、openEuler 20.03~22.03操作系统。集群环境规划本章节规划以四台机器分别作为集群的sever1、agent1、agent2、agent3。各个节点数据规格如表1所示。表1 集群环境规划机器名称IP地址硬盘数OS & JDKJDKserver1IPaddress1系统盘:1 * 4TB HDD数据盘:12 * 4TB HDDCentOS 7.6OpenJDK jdk8u252-b09agent2IPaddress2agent3IPaddress3agent4IPaddress4展开表软件规划集群各节点的软件规划如表2所示。表2 软件规划机器名称服务名称server1-agent2QuorumPeerMain、Bootstrap(Solr)agent3QuorumPeerMain、Bootstrap(Solr)agent4QuorumPeerMain、Bootstrap(Solr)展开表依次登录所有节点,将节点的主机名分别修改为server1、agent1、agent2、agent3。hostnamectl set-hostname 主机名 --static登录所有节点,添加集群所有节点的“地址-主机名”映射关系。打开“/etc/hosts”文件。vi /etc/hosts按“i”进入编辑模式,在hosts文件中添加以下内容。IPaddress1 server1 IPaddress2 agent1 IPaddress3 agent2 IPaddress4 agent3按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。登录所有节点,关闭防火墙。systemctl stop firewalld.service systemctl disable firewalld.service登录所有节点,配置SSH免密登录。生成密钥,遇到提示时,按“Enter”。ssh-keygen -t rsa在每台机器上配置SSH免密登录(包括配置自身节点的免密)。ssh-copy-id -i ~/.ssh/id_rsa.pub root@节点IP登录所有节点,安装OpenJDK。下载OpenJDK并解压到“/usr/local”目录。ARM:wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz -C /usr/localx86:wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar.gz tar -zxf OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar.gz -C /usr/local将解压后的JDK目录的所属用户、所属用户组变更为“root”。chown -R root /usr/local/jdk8u252-b09 chgrp -R root /usr/local/jdk8u252-b09配置环境变量。打开“/etc/profile”文件。vi /etc/profile按“i”进入编辑模式,添加以下内容。export JAVA_HOME=/usr/local/jdk8u252-b09 export PATH=$JAVA_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使环境变量生效。source /etc/profile检查OpenJDK是否安装成功。java -version下载并解压ZooKeeper登录agent1节点,进入“/usr/local”目录,下载zookeeper-3.4.6.tar.gz,并解压。cd /usr/local wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz tar -zxvf zookeeper-3.4.6.tar.gz建立软链接,便于后期版本更换。ln -s zookeeper-3.4.6 zookeeper添加ZooKeeper到环境变量登录agent1节点,打开配置文件。vi /etc/profile按“i”进入编辑模式,添加ZooKeeper到环境变量。export ZOOKEEPER_HOME=/usr/local/zookeeper export PATH=$ZOOKEEPER_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使环境变量生效。source /etc/profile在agent2和agent3节点重复执行1~4,配置ZooKeeper的环境变量。修改ZooKeeper配置文件登录agent1节点,进入ZooKeeper所在目录。cd /usr/local/zookeeper/conf拷贝配置文件。cp zoo_sample.cfg zoo.cfg修改通用配置。打开文件。vi zoo.cfg按“i”进入编辑模式,修改数据目录。dataDir=/usr/local/zookeeper/tmp可选:添加AdminServer配置。(此配置项于ZooKeeper 3.5.0版本引入,低于此版本可跳过此步骤)admin.enableServer=false在文件末尾添加如下代码,其中server.1~server.3是部署ZooKeeper的节点。server.1=agent1:2888:3888 server.2=agent2:2888:3888 server.3=agent3:2888:3888按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。添加JMX配置。编辑文件zkServer.sh。vi /usr/local/zookeeper/bin/zkServer.sh按“i”进入编辑模式,添加JMX配置至图示位置。JMXDISABLE=true按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。可选:添加JVM配置。说明若使用ZooKeeper 3.6及以上版本,相关配置已预先设置完毕,可跳过此步骤。编辑文件zkEnv.sh。vi /usr/local/zookeeper/bin/zkEnv.sh按“i”进入编辑模式,添加如下配置至文件末尾。# default heap for zookeeper server ZK_SERVER_HEAP="${ZK_SERVER_HEAP:-10000}" export SERVER_JVMFLAGS="-Xmx${ZK_SERVER_HEAP}m $SERVER_JVMFLAGS" # default heap for zookeeper client ZK_CLIENT_HEAP="${ZK_CLIENT_HEAP:-256}" export CLIENT_JVMFLAGS="-Xmx${ZK_CLIENT_HEAP}m $CLIENT_JVMFLAGS"按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。创建“tmp”目录作数据目录。mkdir /usr/local/zookeeper/tmp在“tmp”目录中创建一个空文件,并向该文件写入myid内容。touch /usr/local/zookeeper/tmp/myid echo 1 > /usr/local/zookeeper/tmp/myid配置文件权限。chmod 750 /usr/local/zookeeper find /usr/local/zookeeper/bin -name "*.sh" | xargs -i chmod 500 {} find /usr/local/zookeeper/conf -name "*" -type f | xargs -i chmod 600 {} chown -R root /usr/local/zookeeper-3.4.6 chgrp -R root /usr/local/zookeeper-3.4.6同步配置到其它节点登录agent1节点,将配置好的ZooKeeper拷贝到其它节点。scp -r /usr/local/zookeeper-3.4.6 root@agent2:/usr/local scp -r /usr/local/zookeeper-3.4.6 root@agent3:/usr/local登录agent2、agent3,创建软链接并修改myid内容。agent2:cd /usr/local ln -s zookeeper-3.4.6 zookeeper echo 2 > /usr/local/zookeeper/tmp/myidagent3:cd /usr/local ln -s zookeeper-3.4.6 zookeeper echo 3 > /usr/local/zookeeper/tmp/myidsolr-6.2.0.tgz、apache-tomcat-8.5.28.tar.gz放置于agent1的“/usr/local/solrCloud”目录下。说明“/usr/local/solrCloud”目录需提前创建。解压Solr软件包。tar -zxvf solr-6.2.0.tgz建立软链接,便于后期版本更换。ln -s solr-6.2.0 solr解压Tomcat软件包。tar -zxvf apache-tomcat-8.5.28.tar.gz建立软链接,便于后期版本更换。ln -s apache-tomcat-8.5.28 tomcat打开配置文件。vi /etc/profile按“i”进入编辑模式,添加Solr到环境变量。export SOLR_HOME=/usr/local/solrCloud export PATH=$SOLR_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使环境变量生效。source /etc/profile创建Solr配置文件、数据文件目录。mkdir -p /usr/local/solrCloud/{solrConfig,solrCores}拷贝solr-webapps。cp -r /usr/local/solrCloud/solr/server/solr-webapp/webapp /usr/local/solrCloud/tomcat/webapps/solr将“solr/server/lib/ext”目录下的jar文件拷贝到“tomcat/webapps/solr/WEB-INF/lib”目录。cp -r /usr/local/solrCloud/solr/server/lib/ext/*.jar /usr/local/solrCloud/tomcat/webapps/solr/WEB-INF/lib/拷贝配置文件。cp -r /usr/local/solrCloud/solr/server/solr/configsets/basic_configs/conf/* /usr/local/solrCloud/solrConfig cp -r /usr/local/solrCloud/solr/example/files/conf/velocity /usr/local/solrCloud/solrConfig cp /usr/local/solrCloud/solr/server/solr/solr.xml /usr/local/solrCloud/solrCores修改“solrCores/solr.xml”文件。打开文件。vi solrCores/solr.xml按“i”进入编辑模式,修改hostPort,保持和Tomcat端口一致,本文使用Tomcat默认端口8080。<int name="hostPort">8080</int>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。创建目录。mkdir -p /usr/local/solrCloud/tomcat/conf/Catalina/localhost在“/usr/local/solrCloud/tomcat/conf/Catalina/localhost/”目录下创建solr.xml文件。新建solr.xml文件。vi /usr/local/solrCloud/tomcat/conf/Catalina/localhost/solr.xml按“i”进入编辑模式,添加以下内容。<?xml version="1.0" encoding="UTF-8"?> <Context docBase="/usr/local/solrCloud/tomcat/webapps/solr" debug="0" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="/usr/local/solrCloud/solrCores" override="true"/> </Context>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。修改“/usr/local/solrCloud/tomcat/bin/catalina.sh”文件。打开文件。vi /usr/local/solrCloud/tomcat/bin/catalina.sh按“i”进入编辑模式,添加如下内容。JAVA_OPTS="-DzkHost=Datanode1:2181,Datanode2:2181,Datanode3:2181"按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。拷贝solrCloud到agent2、agent3的“/usr/local”目录下。scp -r /usr/local/solrCloud root@agent2:/usr/local scp -r /usr/local/solrCloud root@agent3:/usr/local可选:登录到agent2、agent3节点,为Solr和Tomcat建立软链接。说明可选择不执行这个步骤,因为在scp的时候,软链接后的Solr和Tomcat都变成了真实目录。cd /usr/local/solrCloud rm -rf solr tomcat ln -s solr-6.2.0 solr ln -s apache-tomcat-8.5.28 tomcat请提前启动ZooKeeper集群。在Datanode1上传。java -classpath .:/usr/local/solrCloud/tomcat/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost agent1:2181,agent2:2181,agent3:2181 -confdir /usr/local/solrCloud/solrConfig/ -confname solrconfig查看配置是否成功上传至ZooKeeper。cd /usr/local/zookeeper/bin ./zkCli.sh -server agent1:2181 ls /configs/solrconfigquit分别在agent1~3节点启动Tomcat即启动Solr。/usr/local/solrCloud/tomcat/bin/startup.sh在浏览器地址栏输入http://agent1:8080/solr/index.html,按“Enter”,访问Solr。其中地址栏中,“agent1”填写agnet1进程所在节点的IP地址。
  • Druid
    Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。安装GCC挂载OS镜像。mount YOUR_OS.iso /media -o loop说明YOUR_OS.iso用实际的iso包名代替。备份repo文件,清空“/etc/yum.repos.d/”目录文件。cp -r /etc/yum.repos.d /etc/yum.repos.d-bak rm /etc/yum.repos.d/*须知请确认已经备份所有repo文件后,在rm删除界面输入“y”表示同意删除。配置Yum本地源。打开“/etc/yum.repos.d/Local.repo”文件。vi /etc/yum.repos.d/Local.repo按“i”进入编辑模式,在文件中添加以下内容。[Local] name=Local baseurl=file:///media/ enabled=1 gpgcheck=0按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使Yum源配置生效。yum clean all yum makecache通过Yum源安装GCC相关软件。yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64修改GCC(解决-fsigned-char问题)寻找GCC所在路径(一般位于“/usr/bin/gcc”)。command -v gcc更改原GCC文件的名字(例如改成gcc-impl)。mv /usr/bin/gcc /usr/bin/gcc-impl配置GCC文件。新建GCC文件。vi /usr/bin/gcc按“i”进入编辑模式,填入如下内容。#! /bin/sh /usr/bin/gcc-impl -fsigned-char "$@"按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。给GCC文件添加可执行权限。chmod +x /usr/bin/gcc确认GCC是否可用。gcc --versionCentOS:回显如下所示即为安装成功。openEuler:回显如下所示即为安装成功。修改G++(解决-fsigned-char问题)寻找G++所在路径(一般位于“/usr/bin/g++”)。command -v g++更改原G++文件的名字(例如改成g++-impl)。mv /usr/bin/g++ /usr/bin/g++-impl配置G++文件。新建G++文件。vi /usr/bin/g++按“i”进入编辑模式,填入如下内容。#! /bin/sh /usr/bin/g++-impl -fsigned-char "$@"按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。给G++文件添加可执行权限。chmod +x /usr/bin/g++确认G++是否可用。g++ --versionCentOS:回显如下所示即为安装成功。openEuler:回显如下所示即为安装成功。安装依赖通过Yum源安装依赖的相关软件。yum install -y wget unzip vim下载并解压安装到指定目录(此处以指定“/opt/tools/installed/”目录为例)。wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz mkdir -p /opt/tools/installed/ mv jdk8u252-b09 /opt/tools/installed/配置Java环境变量。打开“/etc/profile”文件。vi /etc/profile按“i”进入编辑模式,在文件末尾添加如下代码。export JAVA_HOME=/opt/tools/installed/jdk8u252-b09 export PATH=$JAVA_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使修改的环境变量生效。source /etc/profile检查OpenJDK是否安装成功。java -version下载并安装到指定目录(此处以指定“/opt/tools/installed/”目录为例)。wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz --no-check-certificate tar -zxf apache-maven-3.5.4-bin.tar.gz mkdir -p /opt/tools/installed mv apache-maven-3.5.4 /opt/tools/installed/修改Maven环境变量。打开“/etc/profile”文件。vi /etc/profile按“i”进入编辑模式,在末尾增加如下代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4 export PATH=$MAVEN_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使修改的环境变量生效。source /etc/profile检查Maven是否安装成功。mvn -v回显如下所示即为安装成功。修改Maven配置文件中的本地仓路径、远程仓。打开配置文件。vi /opt/tools/installed/apache-maven-3.5.4/conf/settings.xml说明本地仓库地址默认在“~/.m2/”目录下,如果想修改成指定目录,则修改<localRepository>标签,没有特殊需求,无需修改该参数。按“i”进入编辑模式,远程仓库配置(修改成自己搭建的Maven仓库,如果没有,可以按照下面示例配置),在<mirrors>标签内添加以下内容。<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf> </mirror>可选:当编译环境不能访问外网,需要在settings.xml配置文件中添加代理配置,具体内容如下。<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>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。CentOS操作系统安装Protobuf。yum install -y protobuf protobuf-devel验证Protobuf是否安装成功。protoc --version回显如下所示即为安装成功。openEuler操作系统下载并解压源码。wget https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz tar -zxf protobuf-2.5.0.tar.gz将解压后的目录移至“/opt/tools/installed/”目录。mv protobuf-2.5.0 /opt/tools/installed/进入“/opt/tools/installed/”目录。cd /opt/tools/installed下载protoc.zip并解压得到protoc.patch文件,其中protoc.patch存放的路径可自己指定。wget cid:link_0 unzip protoc.zip cp ./protoc/protoc.patch ./protobuf-2.5.0/src/google/protobuf/stubs/进入“protobuf-2.5.0/src/google/protobuf/stubs/”目录安装补丁。cd protobuf-2.5.0/src/google/protobuf/stubs/ patch -p1 < protoc.patch回到protobuf-2.5.0根目录,编译并安装到系统默认目录。cd /opt/tools/installed/protobuf-2.5.0 ./autogen.sh && ./configure CFLAGS='-fsigned-char' && make -j8 && make install将Protoc部署在本地Maven仓库中。mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/usr/local/bin/protoc将Protoc部署在本地Maven仓库中。mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/usr/bin/protoc下载源码并解压。wget https://github.com/apache/druid/archive/druid-0.12.1.tar.gz tar -xvf druid-0.12.1.tar.gz mv druid-druid-0.12.1 druid-0.12.1进入Druid源码解压目录。cd druid-0.12.1修改“pom.xml”文件。打开文件。vi pom.xml按“i”进入编辑模式,在文件第1295行开始,添加鲲鹏Maven仓库源。<repositories> <repository> <id>kunpengmaven</id> <name>kunpeng maven</name> <url>https://mirrors.huaweicloud.com/kunpeng/maven</url> </repository> </repositories>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。修改“java-util/pom.xml”文件。打开文件。vi java-util/pom.xml按“i”进入编辑模式,在文件第271行开始,修改sigar-dist-1.6.5.132.zip的下载路径。<!--<url>https://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/</url>--> <url>http://porting-dependence.obs.cn-north-4.myhuaweicloud.com/ARTIFACTS/</url>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。执行编译。mvn package -DskipTests编译完成后在distribution/target/目录下生成tar.gz包。使用鲲鹏应用迁移工具扫描编译生成的tar包,确保没有包含有x86的so和JAR包。
  • Phoenix
       Phoenix是构建在HBase上的一个SQL层,作为HBase内嵌的JDBC驱动,能让我们用标准的JDBC APIs来创建表、插入数据和对HBase数据进行查询,底层使用Java编写。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,执行之后以生成标准的JDBC结果集,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。安装GCC  挂载OS镜像。mount YOUR_OS.iso /media -o loop说明YOUR_OS.iso用实际的iso包名代替。备份repo文件,清空“/etc/yum.repos.d/”目录文件。cp -r /etc/yum.repos.d /etc/yum.repos.d-bak rm /etc/yum.repos.d/*须知请确认已经备份所有repo文件后,在rm删除界面输入“y”表示同意删除。配置Yum本地源。打开“/etc/yum.repos.d/Local.repo”文件。vi /etc/yum.repos.d/Local.repo按“i”进入编辑模式,在文件中添加以下内容。[Local] name=Local baseurl=file:///media/ enabled=1 gpgcheck=0按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使Yum源配置生效。yum clean all yum makecache通过Yum源安装GCC相关软件。yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64修改GCC(解决-fsigned-char问题)寻找GCC所在路径(一般位于“/usr/bin/gcc”)。command -v gcc更改原GCC文件的名字(例如改成gcc-impl)。mv /usr/bin/gcc /usr/bin/gcc-impl配置GCC文件。新建GCC文件。vi /usr/bin/gcc按“i”进入编辑模式,填入如下内容。#! /bin/sh /usr/bin/gcc-impl -fsigned-char "$@"按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。给GCC文件添加可执行权限。chmod +x /usr/bin/gcc确认GCC是否可用。gcc --versionCentOS:回显如下所示即为安装成功。openEuler:回显如下所示即为安装成功。修改G++(解决-fsigned-char问题)寻找G++所在路径(一般位于“/usr/bin/g++”)。command -v g++更改原G++文件的名字(例如改成g++-impl)。mv /usr/bin/g++ /usr/bin/g++-impl配置G++文件。新建G++文件。vi /usr/bin/g++按“i”进入编辑模式,填入如下内容。#! /bin/sh /usr/bin/g++-impl -fsigned-char "$@"按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。给G++文件添加可执行权限。chmod +x /usr/bin/g++确认G++是否可用。g++ --versionCentOS:回显如下所示即为安装成功。openEuler:回显如下所示即为安装成功。安装依赖通过Yum源安装依赖的相关软件。yum install -y wget vim openssl-devel zlib-devel automake libtool make libstdc++-static glibc-static git snappy snapp下载并安装到指定目录(此处以指定“/opt/tools/installed/”目录为例)。wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz --no-check-certificate tar -zxf apache-maven-3.5.4-bin.tar.gz mkdir -p /opt/tools/installed mv apache-maven-3.5.4 /opt/tools/installed/修改Maven环境变量。打开“/etc/profile”文件。vi /etc/profile按“i”进入编辑模式,在末尾增加如下代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4 export PATH=$MAVEN_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使修改的环境变量生效。source /etc/profile检查Maven是否安装成功。mvn -v回显如下所示即为安装成功。修改Maven配置文件中的本地仓路径、远程仓。打开配置文件。vi /opt/tools/installed/apache-maven-3.5.4/conf/settings.xml说明本地仓库地址默认在“~/.m2/”目录下,如果想修改成指定目录,则修改<localRepository>标签,没有特殊需求,无需修改该参数。按“i”进入编辑模式,远程仓库配置(修改成自己搭建的Maven仓库,如果没有,可以按照下面示例配置),在<mirrors>标签内添加以下内容。<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf> </mirror>可选:当编译环境不能访问外网,需要在settings.xml配置文件中添加代理配置,具体内容如下。<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>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。下载并解压安装到指定目录(此处以指定“/opt/tools/installed/”目录为例)。wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz mkdir -p /opt/tools/installed/ mv jdk8u252-b09 /opt/tools/installed/配置Java环境变量。打开“/etc/profile”文件。vi /etc/profile按“i”进入编辑模式,在文件末尾添加如下代码。export JAVA_HOME=/opt/tools/installed/jdk8u252-b09 export PATH=$JAVA_HOME/bin:$PATH按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。使修改的环境变量生效。source /etc/profile检查OpenJDK是否安装成功。载Phoenix-5.0.0-HBase-2.0源码并解压。wget https://github.com/apache/phoenix/archive/v5.0.0-HBase-2.0.tar.gz mv v5.0.0-HBase-2.0.tar.gz phoenix-5.0.0-HBase-2.0.tar.gz tar -zxf phoenix-5.0.0-HBase-2.0.tar.gz cd phoenix-5.0.0-HBase-2.0修改“pom.xml”文件。打开文件。vi pom.xml按“i”进入编辑模式,在<repositories>标签的第一位添加鲲鹏Maven仓库源:<repository> <id>kunpengmaven</id> <name>kunpeng maven</name> <url>https://mirrors.huaweicloud.com/kunpeng/maven</url> </repository>按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。编译。mvn clean package -DskipTests -Dmaven.javadoc.skip=true编译成功后将在源码“/phoenix-assembly/target/”目录下生成phoenix-5.0.0-HBase-2.0.tar.gz包。使用鲲鹏代码迁移工具扫描编译生成的tar包,确保没有包含有x86的so和JAR包。java -version回显如下所示即为安装成功。
  • [互动交流] CodeArts Check
    安装的CodeArts Check代码检查规则只有100条,请问下,CodeArts IDE能支持更通用的检查规则集吗,比如华为云流水线中默认的“通用检查规则集”这种?
  • [技术干货] FAQ—CodeArts&AstroZero社区(问题求助)总结-2024.08
    首次使用华为云CodeArts时,开发者们总会遇到一些问题,小编针对大家遇到的问题做了分类总结,比如标准页面的表格数据问题、标准页面的表格数据问题、如何在标准页面的事件里面通过JS代码,获得下拉框选择的值?、标准页面的表格数据问题。憋着急!下面小编就来为大家一一解答遇到这几类问题时该如何快速解决,一步解决大家的困扰。 华为云CodeArts系列产品参考手册:1、CodeArts:软件开发平台(CodeArts)官方手册:https://support.huaweicloud.com/devcloud/index.html软件开发平台(CodeArts)相关文章:https://bbs.huaweicloud.com/forum/thread-59032-1-1.html产品官方页面:https://devcloud.cn-north-4.huaweicloud.com/home2、CodeArts项目管理:项目管理(ProjectMan)官方手册:https://support.huaweicloud.com/projectman/index.html项目管理(ProjectMan)更新预览:https://support.huaweicloud.com/wtsnew-projectman/index.html产品官方页面:https://www.huaweicloud.com/product/projectman.html3、低代码平台Astro:应用魔方官方手册:https://support.huaweicloud.com/qs-appcube/appcube_02_0110.html操作指导:https://support.huaweicloud.com/appcube_video/index.html产品官方页面:https://appcube.cn-north-4.huaweicloud.com/studio/index.html#/projects/零代码官方手册:https://support.huaweicloud.com/usermanual-appcube/appcube_05_1404.html问题汇总:(以↓问题都是由官方人员解答后的文章链接)7月:高级页面如何实现数据实时更新 https://bbs.huaweicloud.com/forum/thread-02127156068292491055-1-1.html终端打开后,如何缩放,我看其他ssh工具都有自动缩放功能https://bbs.huaweicloud.com/forum/thread-02127155363552050024-1-1.htmlCodeArts IDE 怎么安装python支持?https://bbs.huaweicloud.com/forum/thread-02127155382761967021-1-1.html希望文件自动自动追踪终端所在目录 https://bbs.huaweicloud.com/forum/thread-02127155476600512035-1-1.html 怎么运行调试https://bbs.huaweicloud.com/forum/thread-0201155524286312029-1-1.html希望后续版本能够支持ruffhttps://bbs.huaweicloud.com/forum/thread-02127155568161998037-1-1.html为什么不能创建新工程,网络也没有问题https://bbs.huaweicloud.com/forum/thread-0217155900141351039-1-1.htmlcodearts Ide 同一目录下多模块启动问题https://bbs.huaweicloud.com/forum/thread-02127155917751440040-1-1.html制品仓上传提示“当前用户可用容量小于文件大小”cid:link_48月:自定义规则语言何时支持鸿蒙开发语言,有没有这块的计划 cid:link_5查询路由器中的各种表cid:link_0建议增加scratch镜像cid:link_1Astro低码是否可以实现以下功能???cid:link_2"405234216","resMsg":"请求资源项: RequestDMLStatementsAmount-每次请求执行数据库DML操作最大次数, 使用量已经达到上限值: 150"cid:link_3匿名登录申请cid:link_6--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------补充:https://bbs.huaweicloud.com/forum/thread-0244154257656850036-1-1.html(1-6月FAQ解答)
总条数:115 到第
上滑加载中