10 Star 42 Fork 9

Boundivore/boundivore-datalight

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

Boundivore-DataLight

一、简介

DataLight 是一个开源的大数据运维管理平台,用于简化和自动化大数据服务的部署、管理和监控。它提供了一套全面的工具来管理您的大数据生态系统,旨在帮助企业实现简洁、快速地构建 OLAP 与 OLTP 统一的业务平台。用户可以通过 plugin 插件,以插拔式的方式快速集成自己的业务服务或其他大数据组件,从而在平台中进行统一管理。

资源汇总如下:

二、软件架构

这个软件架构通过Master-Worker主从模式实现了高可用、可扩展的分布式计算与大数据处理平台。

arch
  • UI 层:用户通过 UI 层进行操作和管理。UI 层与 Master Restful API 进行交互,发送用户操作请求;
  • Master 层:Master 层是整个系统的核心,负责管理和协调 Worker 层的操作。它包含多个节点,每个节点负责不同的功能模块;
  • MemoryMeta:内存元数据缓存层;
  • MasterService:主服务业务逻辑管理;
  • ServicePlugin:服务插件管理;
  • Reporter:Master/Worker 双向交互服务;
  • Master 层:通过 Restful API 接收 UI 层的请求,并协调 Worker 层的操作。未来,如有必要,Master 层与 Zookeeper 集群保持心跳连接,以确保分布式锁的管理和 Master 的故障切换。Master 层还通过 MySQL 数据库进行元数据的读写操作。
  • WorkerService :从节点业务逻辑管理;
  • Components:各类集成在平台中的组件;
  • KubeAPI:与 Kubernetes/KubeSphere API 交互的服务管理;

三、概念与定义

  • 服务:HDFS、YARN、HIVE 等称之为服务,其名称在本项目中的标准命名为全大写,且服务名称全局唯一。
  • 组件:HDFS 中的独立进程,例如:NameNode、DataNode 等称之为组件,在本项目中的标准命名方式为帕斯卡命名法,且组件名称全局唯一。
  • 主进程:DataLight Master 进程称之为主进程,其所在节点称之为平台主节点。
  • 从进程:DataLight Worker 进程称之为从进程,其所在节点称之为平台从节点。

四、主要功能

下表列出了 DataLight 平台当前一级功能及其受支持状态:

序号 一级功能 是否已支持
1 节点初始化助手
2 主从进程维护
3 集群管理
4 节点初始化
5 节点操作与管理
6 服务组件装配信息管理
7 服务操作与管理
8 组件操作与管理
9 服务组件预配置项管理
10 服务组件配置文件管理
11 分布式日志全局管理
12 监控管理
13 告警管理
14 用户管理
15 权限管理

五、编译环境

本项目编译需要满足如下需要:

  • JDK 8
  • Gradle 7.4+

六、部署说明

部署本项目前,请确保你已经准备好了必要的物理资源、操作系统并且理解了本项目的部署流程。

6.1 准备物理资源

确保您有足够的硬件资源来部署和运行本项目。推荐的最小配置包括:

  • CPU:4 Cores +
  • 内存:8 GB +
  • 硬盘:100 GB +
  • 网络:1 Gbps +
  • 节点数:>= 3

6.2 准备操作系统

本项目目前仅支持(其他系统未测试):

  • CentOS 7.x (推荐:CentOS-7-x86_64-DVD-2009.iso)

6.3 准备部署资源

clone 本项目,并下载所以来的服务组件包和依赖库库,包括:

  • clone 当前仓库,并编译;

  • 下载服务组件包,并放置于 plugins 目录下;

  • 构建 Linux 本地目录如下,并包含各目录中对应的文件(可直接网盘下载,或从项目的 .document 目录中拷贝):

    目录 说明 是否必要
    /opt/datalight/app 主从进程包目录
    /opt/datalight/app/config 主从进程包启动配置目录
    /opt/datalight/assistant 初始化节点助手目录
    /opt/datalight/assistant/conf 初始化节点助手配置文件
    /opt/datalight/assistant/main 初始化节点助手执行总入口
    /opt/datalight/assistant/repo 初始化节点助手依赖资源
    /opt/datalight/assistant/scripts 初始化节点助手相关子脚本
    /opt/datalight/bin 主从进程启停管理脚本
    /opt/datalight/conf 环境与服务配置文件目录
    /opt/datalight/conf/env 环境配置文件与脚本目录
    /opt/datalight/conf/service 服务部署维护配置文件目录
    /opt/datalight/conf/permission 权限生命与备注文件(暂无用)
    /opt/datalight/conf/web 服务组件 WebUI 配置文件目录
    /opt/datalight/docs 项目文档目录
    /opt/datalight/docs/api 三方 API 目录
    /opt/datalight/docs/asserts 文档资源目录
    /opt/datalight/docs/package 服务组件打包步骤文档记录目录
    /opt/datalight/docs/maven Maven 配置目录
    /opt/datalight/docs/src-[大写服务名称]-版本号 服务组件源码文件修改记录目录
    /opt/datalight/exporter JMX Eeporter 目录
    /opt/datalight/exporter/bin Exporter 运行脚本示例目录
    /opt/datalight/exporter/conf Exporter 配置文件模板目录
    /opt/datalight/exporter/jar Exporter 插件 Jar 包所在目录
    /opt/datalight/node 节点操作相关配置与脚本目录
    /opt/datalight/node/conf 节点操作相关配置文件目录
    /opt/datalight/node/scripts 节点操作相关操作的脚本文件所在目录
    /opt/datalight/orm 数据库相关资料目录
    /opt/datalight/orm/dmj 数据库模型设计目录
    /opt/datalight/orm/query 项目中可能用到的 SQL 查询示例目录
    /opt/datalight/orm/sql Master 元数据库 Schema 初始化文件所在目录
    /opt/datalight/plugins 服务组件对应的插件目录
    /opt/datalight/plugins/[大写服务名称]/dashboard 仅 MONITOR 中存在,各个服务组件的监控模板
    /opt/datalight/plugins/[大写服务名称]/dlc 服务组件资源包(.tar.gz)
    /opt/datalight/plugins/[大写服务名称]/jars 服务组件对应的插件编译后的 Jar 包所在目录
    /opt/datalight/plugins/[大写服务名称]/placeholder 服务组件预配置项配置文件所在目录
    /opt/datalight/plugins/[大写服务名称]/scripts 服务组件聚合操作脚本所在目录
    /opt/datalight/plugins/[大写服务名称]/templated 服务组件配置文件模板所在目录
    /opt/datalight/scripts 公共脚本目录
    /opt/datalight/scripts/tools 通用工具脚本目录

6.3.1 创建对应目录

在开始前,首先确认已在主节点中存在上述对应目录。

6.3.2 准备前端页面

前往 DataLight 前端开源项目,按照对应文档执行编译操作,编译后,将编译文件解压后,拷贝至后端源码项目 boundivore-datalight\datalight-services\services-master\src\main\resources\public 目录中。

DataLight 前端开源项目:

https://gitee.com/boundivore/boundivore-datalight-web

6.3.3 准备 Master/Worker

将项目克隆后,使用代码编辑器打开后,执行 datalight-services 模块的编译操作(执行 boot-jar, 或从网盘中下载编译好的 jar 包),在 services-master 与 services-worker 项目的 build/libs 目录下,可以分别看到 services-master-[版本号].jar、services-worker-[版本号].jar 两个进程文件,拷贝至 app/ 目录下即可。

6.3.4 准备服务组件插件 Plugins

将项目克隆后,使用代码编辑器打开后,执行 datalight-plugins 模块的编译操作,将该模块下对应服务的插件 jar 包拷贝至指定目录(plugins/[服务名称]/jar)中,例如:/opt/datalight/plugins/[大写服务名称]/jars。

6.3.5 拷贝其他文件目录

在主项目目录中,找到 .documents 文件夹,其下对应内容,拷贝至上述表格中对应的目录中即可。

6.3.6 准备 DLC 服务包

前往如下地址下载 DLC 服务包:

链接:https://pan.baidu.com/s/1342bIcEBDQHdFA35KUTjbQ 
提取码:data 

下载后,解压,将对应服务的 .tar.gz 包放置于对应的 /opt/datalight/plugins/[大写服务名称]/dlc 的目录中即可。

6.4 初始化环境

在启动 Master 主程序之前,需要确认各个准备服役的节点已经完成相关初始化操作,DataLight 平台封装了相关工具,可帮助用户快速一次性初始化所有节点,用户也可手动进行初始化操作。

6.4.1 自动初始化

自动初始化工具位于部署目录下的 assistant 目录,其中涉及到修改的内容如下。

注意:MySQL 5.7 请自行手动安装,自动初始化工具将不包含这部分内容。

下面将对个配置文件进行举例说明。

  • init-main-cluster.properties

    # 准备初始化的节点列表配置信息,Key 前缀为序号,不可重复,需要初始化多少节点,则添加多少节点
    # 建议:1.node.ip 为当前执行脚本的节点 IP
    1.node.ip=192.168.137.10
    1.node.ssh.port=22
    1.node.hostname=node01
    1.node.user.root=root
    1.node.pwd.root=123456
    1.node.user.datalight=datalight
    1.node.pwd.datalight=12345678
    
    2.node.ip=192.168.137.11
    2.node.ssh.port=22
    2.node.hostname=node02
    2.node.user.root=root
    2.node.pwd.root=123456
    2.node.user.datalight=datalight
    2.node.pwd.datalight=12345678
    
    3.node.ip=192.168.137.12
    3.node.ssh.port=22
    3.node.hostname=node03
    3.node.user.root=root
    3.node.pwd.root=123456
    3.node.user.datalight=datalight
    3.node.pwd.datalight=12345678
  • init-main-single-settings.txt

    脚本将按照下面的内容依次在 “每个节点” 按脚本 “配置顺序” 执行,从而完成对各个节点的初始化操作。

    init-stop-firewall.sh
    init-ssh-remove-ask.sh
    init-close-swap.sh
    init-optimize-sysctl.sh
    init-systemd-conf.sh
    init-hostname.sh
    init-hosts.sh
    init-user-group.sh
    init-datalight-env.sh
    init-jdk.sh
    init-yum-install.sh
    init-chrony-server-config.sh
    init-chrony-client-config.sh

6.4.2 手动初始化

如果使用上述自动初始化操作,则无需再进行手动初始化操作。以下操作用于不想使用自动初始化工具的用户。

手动初始化涉及如下内容:

  • 关闭防火墙(或开放服务所需访问限制)

  • 关闭 SSH 访问确认

  • 关闭 Swap 内存交换

  • 优化内存管理和I/O性能

  • 设置一个进程可以拥有的最大内存映射区域数量为 655300

    vm.max_map_count=655300  # 设置一个进程可以拥有的最大内存映射区域数量为 655300。
    vm.dirty_ratio=10  # 指定系统中“脏”页占可用内存的最大百分比为 10%。
    vm.dirty_background_ratio=5  # 指定后台写脏页操作开始的内存占用百分比阈值为 5%。
    vm.dirty_writeback_centisecs=200  # 设置内核周期性地将脏页写回磁盘的时间间隔为 200 百分之一秒(即每 2 秒)。
    vm.vfs_cache_pressure=200  # 控制内核回收目录和 inode 缓存时的积极程度为 200。
    vm.dirty_expire_centisecs=6000  # 设置脏页在被强制写回磁盘前可以在内存中停留的最长时间为 6000 百分之一秒(即 60 秒)。
  • 优化内存管理、I/O性能和资源限制,以提高系统在处理大量数据和内存映射任务时的效率和稳定性

    vm.max_map_count=655300  # 设置一个进程可以拥有的最大内存映射区域数量为 655300。
    vm.dirty_ratio=10  # 指定系统中“脏”页占可用内存的最大百分比为 10%。
    vm.dirty_background_ratio=5  # 指定后台写脏页操作开始的内存占用百分比阈值为 5%。
    vm.dirty_writeback_centisecs=200  # 设置内核周期性地将脏页写回磁盘的时间间隔为 200 百分之一秒(即每 2 秒)。
    vm.vfs_cache_pressure=200  # 控制内核回收目录和 inode 缓存时的积极程度为 200。
    vm.dirty_expire_centisecs=6000  # 设置脏页在被强制写回磁盘前可以在内存中停留的最长时间为 6000 百分之一秒(即 60 秒)。
    
    sed -i '/^DefaultLimitNOFILE=/d' "$system_conf"  # 删除 system.conf 中现有的 DefaultLimitNOFILE 设置
    sed -i '/^DefaultLimitNPROC=/d' "$system_conf"  # 删除 system.conf 中现有的 DefaultLimitNPROC 设置
    echo "DefaultLimitNOFILE=131072" >> "$system_conf"  # 添加新的 DefaultLimitNOFILE 设置
    echo "DefaultLimitNPROC=131072" >> "$system_conf"  # 添加新的 DefaultLimitNPROC 设置
    
    cat > "/etc/security/limits.conf" << EOF
    root        soft    nproc   131072  # 设置 root 用户的软 nproc 限制为 131072
    root        hard    nproc   131072  # 设置 root 用户的硬 nproc 限制为 131072
    root        soft    nofile  131072  # 设置 root 用户的软 nofile 限制为 131072
    root        hard    nofile  131072  # 设置 root 用户的硬 nofile 限制为 131072
    *           soft    nproc   131072  # 设置所有用户的软 nproc 限制为 131072
    *           hard    nproc   131072  # 设置所有用户的硬 nproc 限制为 131072
    *           soft    nofile  131072  # 设置所有用户的软 nofile 限制为 131072
    *           hard    nofile  131072  # 设置所有用户的硬 nofile 限制为 131072
    *           hard    fsize   unlimited  # 设置所有用户的硬文件大小限制为无限
    *           soft    fsize   unlimited  # 设置所有用户的软文件大小限制为无限
    *           soft    cpu     unlimited  # 设置所有用户的软 CPU 时间限制为无限
    *           hard    cpu     unlimited  # 设置所有用户的硬 CPU 时间限制为无限
    *           soft    as      unlimited  # 设置所有用户的软地址空间限制为无限
    *           hard    as      unlimited  # 设置所有用户的硬地址空间限制为无限
    EOF
    • 修改所有节点主机名

    • 修改所有节点内网 IP 与主机名映射关系

    • 创建 Linux 中 DataLight 用户名与组

    • 设置系统、用户、伪终端环境变量

    • 安装 JDK 1.8

    • 安装 yum 依赖

      yum -y install epel-release  # 安装 EPEL 仓库,提供额外的软件包
      yum -y install jq  # 安装 jq,用于处理 JSON 数据
      yum -y install curl  # 安装 curl,用于命令行数据传输
      yum -y install chrony  # 安装 chrony,用于时间同步
      yum -y install expect  # 安装 expect,用于自动化交互式 shell 脚本
      yum -y install openssl openssl-devel patch  # 安装 OpenSSL 和开发包及 patch 工具
      yum -y install lrzsz  # 安装 lrzsz,用于 ZMODEM 文件传输
      yum -y install unzip zip  # 安装 unzip 和 zip,用于解压和压缩文件
      yum -y install yum-utils  # 安装 yum-utils,提供额外的 yum 命令
      yum -y install net-tools  # 安装 net-tools,提供网络工具如 ifconfig
      
      yum -y install gcc gcc-c++  # 安装 GCC 和 G++ 编译器
      yum -y install make  # 安装 make,构建自动化工具
      yum -y install autoconf automake libtool curl  # 安装 autoconf、automake、libtool 和 curl,用于构建和配置软件
      yum -y install zlib lzo-devel zlib-devel openssl openssl-devel ncurses-devel ruby  # 安装 zlib、lzo-devel、zlib-devel、openssl、openssl-devel、ncurses-devel 和 ruby,用于压缩、加密、终端控制和 Ruby 语言支持
      yum -y install snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop libXtst  # 安装 snappy、snappy-devel、bzip2、bzip2-devel、lzo、lzo-devel、lzop 和 libXtst,用于数据压缩和图形界面支持
    • 主节点安装并配置 chrony 时间管理服务器

    • 从节点安装并配置 chrony 时间同步客户端

    • 安装 MySQL 5.7(如需 MySQL 8+ 以上支持,可自行适配平台以及服务组件源码)

6.5 初始化 DataLight 数据库

上述环境初始化完毕后,需按照如下步骤初始化平台数据库;

  • 创建 db_datalight 数据库

    CREATE DATABASE db_datalight DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 执行初始化 SQL 文件

    USE db_datalight;
    SOURCE /opt/datalight/orm/sql/db_datalight.sql;

6.6 启动 Master 主程序

完成上述初始化操作后,各个节点已经准备好了工作所需的内容,此时可以通过如下方式启动 Master 进程,在主节点中执行:

/opt/datalight/bin/datalight.sh start master 8001

启动成功后,将看到如下日志内容:

No masterIp provided or masterIp is empty. Skipping IP validation.
master starting in 10263...
master started.
/opt/datalight/bin/datalight.sh done.

6.7 登录

启动 Master 主进程成功后,可访问如下页面进行登录:

http://<Master-IP>:8001

注:首次默认账号密码为:admin/admin

页面如下:

登录

七、产品手册

完成上述内容后,请查看 产品手册 继续页面部署操作。

八、计划支持的服务

服务 版本 是否已支持 完成日期
ZOOKEEPER 3.8.2 2023-07
HDFS 3.2.4 2023-07
YARN 3.2.4 2023-08
PROMETHEUS 2.46.0 2023-08
ALERTMANAGER 0.26.0 2023-08
GRAFANA 10.0.3 2023-08
HIVE 3.1.3 2024-04
TEZ 0.10.2 2024-04
HBASE 2.5.9 2024-04
SPARK 3.1.3 2024-05
FLINK 3.1.3 2024-05
HUDI 待定
KUBESPHERE 3.3.2 2023-09
SEATUNNEL 待定
DOPHINSCHDULER 待定
RANGER 待定
ATLAS 待定
HUE 待定
KAFKA 2.6.0 2024-05
ES 任意 因协议问题,用户自行集成即可
TRINO 待定
KYLIN 待定
KUDU 待定
IMPALA 待定
More....

参与开源

如果您对本项目感兴趣,欢迎提供积极的反馈,帮助该项目做的更好。

微信公众号:

QQ 交流群:

微信交流:

微信号二维码

开源协议

本项目采用 Apache 2.0 开源协议。有关详细内容,请查看 Apache 2.0 LICENSE

鸣谢

用户

感谢所有贡献者和提交者

贡献者(Contributors)

特别感谢以下人员对本项目的贡献:

提交者(Committers)

特别感谢以下人员为本项目提交代码:

我们非常感谢他们的支持和贡献!

项目

在此特别感谢所有在本项目研发过程中使用到的开源项目或代码库。

没有这些项目的支持,本项目无法顺利进行。

其中特别鸣谢以下开源项目:

  • Spring:一个轻量级的应用框架和控制反转容器。
  • Hutool:一个小而全的 Java 工具类库。
  • Sa-Token:一个轻量级的 Java 权限认证框架。
  • SshJ:一个用于 Java 的 SSH 库。

推荐

在此,我们推荐一些其他优秀的开源项目,希望对你有帮助:

  • Hutool:Hutool 是一个小而全的 Java 工具类库,通过简化代码和提供丰富的工具类,帮助开发者提高开发效率。它的功能涵盖了字符串操作、日期处理、文件操作、HTTP 请求等多个方面,是 Java 开发者的得力助手。
  • Sa-Token:Sa-Token 是一个轻量级的 Java 权限认证框架,提供了简单易用的登录认证、权限验证、Session 会话管理等功能。它支持多种登录方式和权限控制策略,适用于各种 Java Web 应用。

希望这些推荐的项目能够帮助你在开发过程中提高效率,解决常见问题。

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [2024] [Boundivore] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

大数据平台管理套件 展开 收起
Java 等 5 种语言
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/boundivore/boundivore-datalight.git
git@gitee.com:boundivore/boundivore-datalight.git
boundivore
boundivore-datalight
boundivore-datalight
master

搜索帮助

Cb406eda 1850385 E526c682 1850385