Linux部署Kettle(pentaho-server-ce-9.4.0.0-343)记录/配置MySQL存储

下载地址

Kettle 是一个开源的数据集成工具,它是 Pentaho Data Integration(PDI)项目的一部分。要访问 Kettle 的官方网站,可以通过访问其母公司 Hitachi Vantara 的网站来找到相关信息
官方网站:https://www.hitachivantara.com/en-us/products/data-management-analytics.html
下载地址:https://www.hitachivantara.com/en-us/products/pentaho-plus-platform/data-integration-analytics/pentaho-community-edition.html
在这里插入图片描述
在这里插入图片描述

安装

解压

windowsLinux安装包是一样的,解压命令: unzip pentaho-server-ce-9.4.0.0-343.zip
在这里插入图片描述

数据库初始化

  • 选择mysql作为存储库,找到对应的sql初始化文件,自行初始化(数据库安装略)
    在这里插入图片描述
  • 提供的脚本编码和密码按需要进行修改
    在这里插入图片描述
  • SQL附件参考
    -- jcr
    CREATE DATABASE IF NOT EXISTS `jackrabbit` DEFAULT CHARACTER SET utf8;
    CREATE USER 'jcr_user'@'%' identified by '!QAZ2wsx';
    GRANT ALL PRIVILEGES ON jackrabbit.* TO 'jcr_user'@'%' WITH GRANT OPTION;-- quartz
    CREATE DATABASE IF NOT EXISTS `quartz` DEFAULT CHARACTER SET utf8;
    CREATE USER 'pentaho_user'@'%' identified by '!QAZ2wsx';
    GRANT ALL PRIVILEGES ON quartz.* to 'pentaho_user'@'%' WITH GRANT OPTION;
    USE `quartz`;
    DROP TABLE IF EXISTS QRTZ5_JOB_LISTENERS;
    DROP TABLE IF EXISTS QRTZ5_TRIGGER_LISTENERS;
    DROP TABLE IF EXISTS QRTZ5_FIRED_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ5_PAUSED_TRIGGER_GRPS;
    DROP TABLE IF EXISTS QRTZ5_SCHEDULER_STATE;
    DROP TABLE IF EXISTS QRTZ5_LOCKS;
    DROP TABLE IF EXISTS QRTZ5_SIMPLE_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ5_CRON_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ5_BLOB_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ5_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ5_JOB_DETAILS;
    DROP TABLE IF EXISTS QRTZ5_CALENDARS;
    CREATE TABLE QRTZ5_JOB_DETAILS(JOB_NAME  VARCHAR(200) NOT NULL,JOB_GROUP VARCHAR(200) NOT NULL,DESCRIPTION VARCHAR(250) NULL,JOB_CLASS_NAME   VARCHAR(250) NOT NULL,IS_DURABLE VARCHAR(1) NOT NULL,IS_VOLATILE VARCHAR(1) NOT NULL,IS_STATEFUL VARCHAR(1) NOT NULL,REQUESTS_RECOVERY VARCHAR(1) NOT NULL,JOB_DATA BLOB NULL,PRIMARY KEY (JOB_NAME,JOB_GROUP)
    );
    CREATE TABLE QRTZ5_JOB_LISTENERS(JOB_NAME  VARCHAR(200) NOT NULL,JOB_GROUP VARCHAR(200) NOT NULL,JOB_LISTENER VARCHAR(200) NOT NULL,PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),FOREIGN KEY (JOB_NAME,JOB_GROUP)REFERENCES QRTZ5_JOB_DETAILS(JOB_NAME,JOB_GROUP)
    );
    CREATE TABLE QRTZ5_TRIGGERS(TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,JOB_NAME  VARCHAR(200) NOT NULL,JOB_GROUP VARCHAR(200) NOT NULL,IS_VOLATILE VARCHAR(1) NOT NULL,DESCRIPTION VARCHAR(250) NULL,NEXT_FIRE_TIME BIGINT(13) NULL,PREV_FIRE_TIME BIGINT(13) NULL,PRIORITY INTEGER NULL,TRIGGER_STATE VARCHAR(16) NOT NULL,TRIGGER_TYPE VARCHAR(8) NOT NULL,START_TIME BIGINT(13) NOT NULL,END_TIME BIGINT(13) NULL,CALENDAR_NAME VARCHAR(200) NULL,MISFIRE_INSTR SMALLINT(2) NULL,JOB_DATA BLOB NULL,PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (JOB_NAME,JOB_GROUP)REFERENCES QRTZ5_JOB_DETAILS(JOB_NAME,JOB_GROUP)
    );
    CREATE TABLE QRTZ5_SIMPLE_TRIGGERS(TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,REPEAT_COUNT BIGINT(7) NOT NULL,REPEAT_INTERVAL BIGINT(12) NOT NULL,TIMES_TRIGGERED BIGINT(10) NOT NULL,PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );
    CREATE TABLE QRTZ5_CRON_TRIGGERS(TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,CRON_EXPRESSION VARCHAR(200) NOT NULL,TIME_ZONE_ID VARCHAR(80),PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );
    CREATE TABLE QRTZ5_BLOB_TRIGGERS(TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,BLOB_DATA BLOB NULL,PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );
    CREATE TABLE QRTZ5_TRIGGER_LISTENERS(TRIGGER_NAME  VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,TRIGGER_LISTENER VARCHAR(200) NOT NULL,PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER),FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );
    CREATE TABLE QRTZ5_CALENDARS(CALENDAR_NAME  VARCHAR(200) NOT NULL,CALENDAR BLOB NOT NULL,PRIMARY KEY (CALENDAR_NAME)
    );
    CREATE TABLE QRTZ5_PAUSED_TRIGGER_GRPS(TRIGGER_GROUP  VARCHAR(200) NOT NULL,PRIMARY KEY (TRIGGER_GROUP)
    );
    CREATE TABLE QRTZ5_FIRED_TRIGGERS(ENTRY_ID VARCHAR(95) NOT NULL,TRIGGER_NAME VARCHAR(200) NOT NULL,TRIGGER_GROUP VARCHAR(200) NOT NULL,IS_VOLATILE VARCHAR(1) NOT NULL,INSTANCE_NAME VARCHAR(200) NOT NULL,FIRED_TIME BIGINT(13) NOT NULL,PRIORITY INTEGER NOT NULL,STATE VARCHAR(16) NOT NULL,JOB_NAME VARCHAR(200) NULL,JOB_GROUP VARCHAR(200) NULL,IS_STATEFUL VARCHAR(1) NULL,REQUESTS_RECOVERY VARCHAR(1) NULL,PRIMARY KEY (ENTRY_ID)
    );
    CREATE TABLE QRTZ5_SCHEDULER_STATE(INSTANCE_NAME VARCHAR(200) NOT NULL,LAST_CHECKIN_TIME BIGINT(13) NOT NULL,CHECKIN_INTERVAL BIGINT(13) NOT NULL,PRIMARY KEY (INSTANCE_NAME)
    );
    CREATE TABLE QRTZ5_LOCKS(LOCK_NAME  VARCHAR(40) NOT NULL,PRIMARY KEY (LOCK_NAME)
    );
    INSERT INTO QRTZ5_LOCKS values('TRIGGER_ACCESS');
    INSERT INTO QRTZ5_LOCKS values('JOB_ACCESS');
    INSERT INTO QRTZ5_LOCKS values('CALENDAR_ACCESS');
    INSERT INTO QRTZ5_LOCKS values('STATE_ACCESS');
    INSERT INTO QRTZ5_LOCKS values('MISFIRE_ACCESS');
    CREATE DATABASE IF NOT EXISTS `hibernate` DEFAULT CHARACTER SET utf8;
    -- repository
    USE hibernate;
    CREATE USER 'hibuser'@'%' identified by '!QAZ2wsx';
    GRANT ALL PRIVILEGES ON hibernate.* TO 'hibuser'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

配置文件修改

基本上都是配置Mysql数据库信息

pentaho-server/pentaho-solutions/system/quartz/quartz.properties

#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 

在这里插入图片描述

pentaho-server/pentaho-solutions/system/applicationContext-spring-security-jdbc.properties

datasource.driver.classname=com.mysql.jdbc.Driver
datasource.url=jdbc:mysql://xxxx:3306/hibernate
datasource.username=hibuser
datasource.password=!QAZ2wsx
datasource.validation.query=SELECT 1
datasource.pool.max.wait=-1
datasource.pool.max.active=8

在这里插入图片描述

pentaho-server/pentaho-solutions/system/simple-jndi/jdbc.properties

SampleData/type=javax.sql.DataSource
SampleData/driver=com.mysql.cj.jdbc.Driver
SampleData/url.cj.jdbc:mysql://xxxx:3306/hibernate
SampleData/user=hibuser
SampleData/password=!QAZ2wsx
Hibernate/type=javax.sql.DataSource
Hibernate/driver=com.mysql.cj.jdbc.Driver
Hibernate/url.cj.jdbc:mysql://xxxx:3306/hibernate
Hibernate/user=hibuser
Hibernate/password=!QAZ2wsx
Quartz/type=javax.sql.DataSource
Quartz/driver=com.mysql.cj.jdbc.Driver
Quartz/url.cj.jdbc:mysql://xxxx:3306/quartz
Quartz/user=pentaho_user
Quartz/password=!QAZ2wsx
Shark/type=javax.sql.DataSource
Shark/driver=com.mysql.cj.jdbc.Driver
Shark/url.cj.jdbc:mysql://xxxx:3306/hbibernate
Shark/user=hibuser
Shark/password=!QAZ2wsx
SampleDataAdmin/type=javax.sql.DataSource
SampleDataAdmin/driver=com.mysql.cj.jdbc.Driver
SampleDataAdmin/url.cj.jdbc:mysql://xxxx:3306/hibernate
SampleDataAdmin/user=hibuser
SampleDataAdmin/password=!QAZ2wsx

在这里插入图片描述

pentaho-server/pentaho-solutions/system/applicationContext-spring-security-hibernate.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://xxx:3306/hibernate
jdbc.username=hibuser
jdbc.password=!QAZ2wsx
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

在这里插入图片描述

还有一处需要修改dialects/mysql5/applicationContext-spring-security-hibernate.properties
在这里插入图片描述

pentaho-server/pentaho-solutions/system/hibernate/hibernate-settings.xml

<config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>

在这里插入图片描述

pentaho-server/pentaho-solutions/system/hibernate/mysql5.hibernate.cfg.xml

<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://xxxx:3306/hibernate</property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="connection.username">hibuser</property>
<property name="connection.password">!QAZ2wsx</property>
<property name="connection.pool_size">10</property>
<property name="show_sql">false</property>
<property name="hibernate.jdbc.use_streams_for_binary">true</property>

在这里插入图片描述

替换audit_sql.xml
在这里插入图片描述

pentaho-server/pentaho-solutions/system/jackrabbit/repository.xml

要改的地方有点多
在这里插入图片描述

<!--<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"><param name="path" value="${rep.home}/repository"/></FileSystem>
--><FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem"><param name="driver" value="com.mysql.cj.jdbc.Driver"/><param name="url" value="jdbc:mysql://xxxx:3306/jackrabbit"/><param name="user" value="jcr_user"/><param name="password" value="!QAZ2wsx"/><param name="schema" value="mysql"/><param name="schemaObjectPrefix" value="fs_repos_"/>
</FileSystem>

在这里插入图片描述

<!--  <DataStore class="org.apache.jackrabbit.core.data.FileDataStore"/>-->
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore"><param name="url" value="jdbc:mysql://xxxx:3306/jackrabbit"/><param name="user" value="jcr_user"/><param name="password" value="!QAZ2wsx"/><param name="databaseType" value="mysql"/><param name="driver" value="com.mysql.cj.jdbc.Driver"/><param name="minRecordLength" value="1024"/><param name="maxConnections" value="3"/><param name="copyWhenReading" value="true"/><param name="tablePrefix" value=""/><param name="schemaObjectPrefix" value="ds_repos_"/>
</DataStore>

在这里插入图片描述

  <!--  <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"><param name="path" value="${rep.home}/version" /> -->
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem"><param name="driver" value="com.mysql.cj.jdbc.Driver"/><param name="url" value="jdbc:mysql://xxxx:3306/jackrabbit"/><param name="user" value="jcr_user"/><param name="password" value="!QAZ2wsx"/><param name="schema" value="mysql"/><param name="schemaObjectPrefix" value="fs_ws_"/>
</FileSystem>

在这里插入图片描述

    <!--<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager"><param name="url" value="jdbc:h2:${wsp.home}/db"/><param name="schemaObjectPrefix" value="${wsp.name}_"/></PersistenceManager>-->
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager"><param name="driver" value="com.mysql.cj.jdbc.Driver"/><param name="url" value="jdbc:mysql://221.221.221.7:3306/jackrabbit"/><param name="user" value="jcr_user" /><param name="password" value="!QAZ2wsx" /><param name="schema" value="mysql"/><param name="schemaObjectPrefix" value="${wsp.name}_pm_ws_"/>
</PersistenceManager>

在这里插入图片描述

    <!--<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"><param name="path" value="${wsp.home}"/></FileSystem>-->
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem"><param name="driver" value="com.mysql.cj.jdbc.Driver"/><param name="url" value="jdbc:mysql://xxxx:3306/jackrabbit"/><param name="user" value="jcr_user"/><param name="password" value="!QAZ2wsx"/><param name="schema" value="mysql"/><param name="schemaObjectPrefix" value="fs_ver_"/>
</FileSystem>

在这里插入图片描述

    <!--<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager"><param name="url" value="jdbc:h2:${rep.home}/version/db"/><param name="schemaObjectPrefix" value="version_"/></PersistenceManager>-->
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager"><param name="driver" value="com.mysql.cj.jdbc.Driver"/><param name="url" value="jdbc:mysql://221.221.221.7:3306/jackrabbit"/><param name="user" value="jcr_user" /><param name="password" value="!QAZ2wsx" /><param name="schema" value="mysql"/><param name="schemaObjectPrefix" value="pm_ver_"/>
</PersistenceManager>

在这里插入图片描述

<!--    <Journal class="org.apache.jackrabbit.core.journal.MemoryJournal"/> -->
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal"><param name="revision" value="${rep.home}/revision.log"/><param name="url" value="jdbc:mysql://221.221.221.7:3306/jackrabbit"/><param name="driver" value="com.mysql.cj.jdbc.Driver"/><param name="user" value="jcr_user"/><param name="password" value="!QAZ2wsx"/><param name="schema" value="mysql"/><param name="databaseType" value="mysql"/><param name="janitorEnabled" value="true"/><param name="janitorSleep" value="86400"/><param name="janitorFirstRunHourOfDay" value="3"/>
</Journal>

tomcat

  • 替换pentaho-server/tomcat/lib下面的mysql驱动包
    在这里插入图片描述

  • 修改配置文件pentaho-server/tomcat/webapps/pentaho/META-INF/context.xml
    在这里插入图片描述

    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/pentaho" docbase="webapps/pentaho/"><Resource validationQuery="select 1" url="jdbc:mysql://xxxx:3306/hibernate" driverClassName="com.mysql.cj.jdbc.Driver" password="!QAZ2wsx" username="hibuser" initialSize="0" maxActive="20" maxIdle="10" maxWait="10000" factory="org.apache.commons.dbcp.BasicDataSourceFactory" type="javax.sql.DataSource" auth="Container" name="jdbc/Hibernate"/><Resource validationQuery="select 1" url="jdbc:mysql://xxxx:3306/quartz" driverClassName="com.mysql.cj.jdbc.Driver" password="!QAZ2wsx" username="pentaho_user" testOnBorrow="true" initialSize="0" maxActive="20" maxIdle="10" maxWait="10000" factory="org.apache.commons.dbcp.BasicDataSourceFactory" type="javax.sql.DataSource" auth="Container" name="jdbc/Quartz"/><Resource name="jdbc/jackrabbit" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" minIdle="0" maxIdle="5" initialSize="0" maxWait="10000" username="jcr_user" password="!QAZ2wsx" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://xxxx:3306/jackrabbit" validationQuery="select 1"/>
    </Context>
    
  • 注释pentaho-server/tomcat/webapps/pentaho/WEB-INF/web.xml相关配置
    搜索关键字BEGIN HSQLDB DATABASES
    在这里插入图片描述
    搜索关键字BEGIN HSQLDB STARTER
    在这里插入图片描述

pentaho-server/pentaho-solutions/system/systemListeners.xml

在这里插入图片描述

启动服务

./start-pentaho.sh

image.png

登录控制台

在这里插入图片描述

在这里插入图片描述

客户端连接

  • 本地直接解压上面下载的客户端安装包,启动spoon
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题排查

遇到的问题就两种,一是端口冲突,二是文件配置不对(少个标签呀、密码不对呀),根据日志直接排查即可
查看日志:pentaho-server/tomcat/logs
在这里插入图片描述

禁用H2

启动报H2端口冲突错,即使你已经指定了 MySQL 数据库作为 Pentaho BI Server 的数据源,H2 数据库服务器仍然会尝试启动。这是因为 H2 数据库用于存储 Pentaho 系统的一些内部信息和配置。
要解决这个问题,你可以选择以下两种方法之一:

  1. 更改 H2 数据库服务器的端口
    如上一个回答所述,你可以修改 GettingStartedDB-spring.xml 文件中的端口号,将 H2 数据库服务器绑定到一个新的、未被使用的端口。
  2. 禁用 H2 数据库服务器
    如果你确定不需要使用 H2 数据库服务器,可以将其完全禁用。为此,请在 GettingStartedDB-spring.xml 文件中找到 h2Server bean 的定义,并将 <bean> 标签的 init-method="start" 属性更改为 init-method=""。这将阻止 Spring 在初始化上下文时启动 H2 数据库服务器。

请注意,在进行任何更改后,都需要重新启动 Pentaho BI Server 以使更改生效。
在这里插入图片描述

<constructor-arg><array value-type="java.lang.String"><value>-tcp</value><value>-tcpAllowOthers</value><value>-tcpPort</value><value>9792</value></array>
</constructor-arg>

其它

  • 只是为了个人了解,直接本地解压启动即可,无需任何配置

    • 服务端
      在这里插入图片描述
    • 客户端
      在这里插入图片描述
      具体使用,正在研究中…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/201240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浪潮信息KeyarchOS EDR 安全防护测评

背景 近几年服务器安全防护越来越受到企业的重视&#xff0c;企业在选购时不再仅仅看重成本&#xff0c;还更看重安全性&#xff0c;因为一旦数据泄露&#xff0c;被暴力破解&#xff0c;将对公司业务造成毁灭性打击。鉴于人们对服务器安全性的看重&#xff0c;本篇文章就来测…

【ArcGIS Pro】探索性插值无法覆盖所需shp范围

做个小记录自用&#xff0c;实际不准。 1 看看就行 pro插值 看看过程就行。有详细过程&#xff0c;类似tutorial https://learn.arcgis.com/zh-cn/projects/interpolate-temperatures-using-the-geostatistical-wizard/ 2 注意用投影坐标系 wgs84转投影坐标系 https://blog…

OSG编程指南<十八>:OSG读写保存文件及对中文字符的支持

基本几何体的绘制只适用于简单的编程&#xff0c;当场景中需要加载一个很复杂的模型时&#xff0c;还是需要从外部导入。osgDB 库 提供了读取二维图像和三维模型的接口&#xff0c;同时&#xff0c;也管理着第三方插件系统&#xff0c;以实现对不同格式文件的读取。 1、OSG 支…

在耳机心率血氧健康检测中应用的穿戴心率血氧接收芯片

时代快速发展的今天&#xff0c;随着生活节奏的加快&#xff0c;工作压力的加大&#xff0c;越来越多的消费者开始关注到自身身体健康&#xff0c;加班熬夜生活不规律&#xff0c;很容易让我们的身体处于亚健康的状态&#xff0c;而心率和体温的变化&#xff0c;就能反应我们身…

报表多源关联

报表多源关联 需求背景 在项目中会遇到多种数据展现在一起的报表。例如部分指标在关系型数据库中&#xff0c;部分指标通过restful接口获得到json&#xff0c;然后根据共同的维度关联一起&#xff0c;形成新的数据集。 解决方案 在硕迪报表中有两种方式实现该多源报表&…

生产环境_从数据到层级结构JSON:使用Spark构建多层次树形数据_父子关系生成

代码补充了&#xff01;兄弟萌 造的样例数据 val data Seq(("USA", "Male", "Asian", "Chinese"),("USA", "Female", "Asian", "Chinese"),("USA", "Male", "Bl…

SSL证书续签指南

SSL证书的有效期通常为一年&#xff0c;过期后将无法提供有效的加密保护&#xff0c;使网站容易受到黑客攻击和数据泄露的风险。所以SSL证书定期要进行续签&#xff0c;好确保网站的持久安全性。 首先我们要检查当前证书的有效期&#xff0c;打开网站&#xff0c;点击浏览器地址…

网络安全等级保护V2.0测评指标

网络安全等级保护&#xff08;等保V2.0&#xff09;测评指标&#xff1a; 1、物理和环境安全 2、网络和通信安全 3、设备和计算安全 4、应用和数据安全 5、安全策略和管理制度 6、安全管理机构和人员 7、安全建设管理 8、安全运维管理 软件全文档获取&#xff1a;点我获取 1、物…

TinyMPC - CMU (卡耐基梅隆大学)开源的机器人 MPC 控制器

系列文章目录 CasADi - 最优控制开源 Python/MATLAB 库 文章目录 系列文章目录前言一、机器人硬件对比1.1 Teensy 上的微控制器基准测试1.2 机器人硬件1.3 BibTeX 二、求解器三、功能&#xff08;预期&#xff09;3.1 高效3.2 鲁棒3.3 可嵌入式3.4 最小依赖性3.5 高效热启动3.…

手机怎么录屏?实用技巧,轻松录制!

手机录屏功能在现代通信和创作中扮演着重要的角色。无论是分享游戏过程、演示手机操作&#xff0c;还是创作教程视频&#xff0c;手机录屏成为了用户不可或缺的工具。本文将深入研究手机怎么录屏的三种方法&#xff0c;通过详细的步骤介绍&#xff0c;帮助用户轻松掌握手机录屏…

【无标题】从0到1 搭建一个vue3+Django项目

目录 一、后端项目python django二、前端项目vitevue3三、后端配置3.1 将路由指向app3.2 app下创建urls.py&#xff0c; 写入路由3.3 views写入test函数3.4 启动服务&#xff0c;访问路由 四、前端配置4.1 安装一些工具库及创建文件4.1.1 安装需要用的三方库4.1.2 创建文件 4.2…

Nacos 服务注册与发现

一、Spring Cloud Commons 二、使用方法 &#xff08;1&#xff09;在cloud-demo父工程中添加spring-cloud-alilbaba的管理依赖 &#xff08;2&#xff09;注释掉order-service和user-service中原有的eureka依赖 &#xff08;3&#xff09;添加nacos的客户端依赖 &#xff08;4…

Mysql学习查缺补漏----02 mysql之DCL 数据控制语言

查看数据库里都有哪些用户。 使用root任何一个用户都可以登录。 本机登录。 也可以这样登录其他的机器。 、 修改user表。 刷新权限&#xff1a; 现在我们看到了只有本机才能登陆。 我们这样就可以限制这个mysql指定某台服务器登录。 详解忘记密码以及如何修改用户密码 我们…

华为全面对标iOS,“纯血鸿蒙”时代来了

原创 | 文 BFT机器人 就在今年的10月份&#xff0c;华为官方宣布&#xff0c;鸿蒙OS 4升级设备数量已经突破1亿&#xff0c;成为史上升级最快的鸿蒙OS版本。 伴随着“Harmony OS NEXT”的启动&#xff0c;鸿蒙系统开发者社区迎来了喜讯——新增注册开发者数量已过万&#xff0…

C++ 命名空间详解

目录 引入例子 命名空间的定义 命名空间的使用 命名空间使用注意事项 引入例子 #include <stdio.h> #include <stdlib.h>int rand 10;int main() {printf("%d\n", rand);return 0; } 当我们用C语言写下这样的代码&#xff0c;看着并没有什么语法问…

AI助力智慧农业,基于YOLOv5全系列模型【n/s/m/l/x】开发构建不同参数量级农田场景下庄稼作物、杂草智能检测识别系统

紧接前文&#xff0c;本文是农田场景下庄稼作物、杂草检测识别的第二篇文章&#xff0c;前文是基于YOLOv3这一网络模型实现的目标检测&#xff0c;v3相对来说比较早期的网络模型了&#xff0c;本文是基于最为经典的YOLOv5来开发不同参数量级的检测端模型。 首先看下实例效果&a…

介绍一款在线文件格式转换工具

原因: 今天要将一个pdf格式的文件转为docx格式,结果我用破解版的WPS无法再不登录的情况下转换,所以就搜索了一款在线工具实现功能。 网站地址: Convertio — 文件转换器 使用流程: 1)选择要转换的文件 2)选择要转换的格式 3)点击转换 4)等待上传 5)等待转换 6)下载到本地

Linux简单部署Yearning并结合内网穿透工具发布至公网可访问

目录 前言 1. Linux 部署Yearning 2. 本地访问Yearning 3. Linux 安装cpolar 4. 配置Yearning公网访问地址 5. 公网远程访问Yearning管理界面 6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具&#xff0c;为DBA与开发…

Vue混淆与还原

Vue混淆与还原 引言 Vue是一种流行的JavaScript框架&#xff0c;用于构建用户界面。它简单易用且功能强大&#xff0c;备受开发者喜爱。然而&#xff0c;在传输和存储过程中&#xff0c;我们需要保护Vue代码的安全性。混淆是一种有效的保护措施&#xff0c;可以加密和压缩代码…

Course2-Week1-神经网络

Course2-Week1-神经网络 文章目录 Course2-Week1-神经网络1. 神经网络概述1.1 欢迎来到Course21.2 神经元和大脑1.3 引入神经网络-需求预测1.4 神经网络的其他示例-图像感知 2. 神经网络的数学表达式2.1 单层的神经网络-需求预测2.3 前向传播的神经网络-手写数字识别 3. Tensor…