雷林 , DB2 售前工程师, IBM
雷林 2004 年加入 IBM 软件部信息管理部门,长期从事 DB2 数据库及相关软件的售前、售后技术支持工作;加入 IBM 之前有 10 年以上客户数据库应用软件设计和开发经验。
简介: 本文介绍了 DB2 pureScale 软件的安装配置方法及步骤、常见问题及解决方案,帮助读者快速有效地搭建 DB2 pureScale 环境;通过对客户实际生产中经常采用的 Websphere Application Server + DB2 方案、CICS + DB2 方案、多线程 DB2 CLI 应用程序 + DB2,着重介绍 DB2 pureScale 在这些典型应用场景中如何配置和优化,对于读者今后实战起到指导作用;通过客户实际生产系统等典型应用进行测试,验证 DB2 pureScale 的高可用性及负载均衡能力、高性能,以及高扩展性,增强读者对 DB2 pureScale 的信心。
DB2 pureScale 软件安装配置及常见问题解决
硬件环境要求
DB2 pureScale 采用了和业界联机事务处理“黄金”标准的 DB2/zOS 相同的共享存储体系架构、集中式缓存和锁管理,硬件配置上要求能够通过 SAN 网络访问数据库共享磁盘,需要高性能、低延迟的 InfiniBand 交换机和板卡。
DB2 pureScale 目前支持的服务器包括 IBM Power 6-550 和 595,IBM Power7 全系列服务器。由于 IBM Power6-570 服务器没有 GX+ 插槽,无法安装 Infiniband 网卡,因此不被 DB2 pureScale 支持,DB2 pureScale 后续版本将提供对 IBM PC 服务器的支持。
DB2 pureScale 支持的存储为所有 GPFS 文件系统支持的存储,具体参见:http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=/com.ibm.cluster.gpfs.doc/gpfs_faqs/gpfsclustersfaq.html
DB2 pureScale 强烈推荐使用支持 SCSI-3 协议的存储,尽管 DB2 pureScale 也可以支持非 SCSI-3 协议的存储,但是发生故障时,IO 屏蔽的时间将大为延长,这将严重影响宕机时数据库受影响数据的恢复时间。
我们在安装 DB2 pureScale 前,需要仔细检查硬件环境是否满足要求,否则后续的安装配置工作将无法顺利开展,在使用过程中也可能出现不确定的问题。
实验环境配置及规划
我们实验环境硬件环境的硬件配置和规划如下:
服务器配置
表 1. DB2 pureScale 实验环境服务器配置
服务器(主机名)
详细配置
IP 地址
InfiniBand 网络名
InfiniBand IP 地址
p5501
6CPU 48G 内存 1 块 8GB HBA 1 块 IB 卡
172.16.24.121
p5501ib
10.10.10.1
p5502
6CPU 48G 内存 1 块 8GB HBA 1 块 IB 卡
172.16.24.122
p5502ib
10.10.10.2
p5503
6CPU 48G 内存 1 块 8GB HBA 1 块 IB 卡
172.16.24.123
p5503ib
10.10.10.3
存储配置
IBM DS4800 48 块 146GB 光纤磁盘,划分成 6 个 RAID10 (4+4),具体 LUN 使用情况:
#mpio_get_config -A
Storage Subsystem worldwide name: 60ab8001132000004babff15
Storage Subsystem Name = 'DS4800-01-PureScal_ZSJ_D011231'
hdisk LUN # Ownership User Label
hdisk6 0 B (preferred) datagpfs1
hdisk7 1 B (non-preferred) votgpfs1
hdisk8 2 B (non-preferred) B1
hdisk9 3 B (preferred) B2
hdisk10 4 B (non-preferred) B3
hdisk11 5 B (preferred) B4
hdisk12 6 B (non-preferred) B5
hdisk13 7 B (preferred) B6
为简洁起见,我们这里仅列示了服务器 p5501 磁盘情况,实际上每台服务器均可看到相同的命令输出。
表 2. DB2 pureScale 实验环境物理卷规划
物理卷
User Label
用途
文件系统挂载点
hdisk6
datagpfs1
pureScale 实例共享 GPFS 文件系统
/db2sd_20100521145928
hdisk7
votegpfs1
GPFS 仲裁盘
hdisk8
B1
数据库数据 GPFS 文件系统
/db2data
hdisk9
B2
数据库数据 GPFS 文件系统
/db2data
hdisk10
B3
数据库数据 GPFS 文件系统
/db2data
hdisk11
B4
数据库数据 GPFS 文件系统
/db2data
hdisk12
B5
数据库数据 GPFS 文件系统
/db2data
hdisk13
B6
数据库日志 GPFS 文件系统
/db2log
InfiniBand 交换机配置
1 台 Qlogic 9024CU
InfiniBand 卡配置
如果在 1 台物理服务器划分多个 LPAR,分别运行 DB2 pureScale 成员服务器或 CF,有时候需要在 LPAR 间共享使用 Infiniband 卡,这时我们需要通过 HMC 对 LPAR 的 HCA 资源进行配置:
图 1. HCA 卡在 HMC 中的配置
建议 GUID 号和分区号保持一致,同时对 HCA 使用容量进行正确的设置。HCA 卡容量使用方式分为:
Dedicated( 专用 ) :分配 100% 的资源
High(高):分配 25% 的资源
Medium (中):分配 12.5% 的资源
Low (低):分配 6.25% 的资源
对于 p6-550 或 p750 服务器,如果 1 个成员服务器和 1 个 CF 服务器在 1 台物理服务器上,建议分配给 CF 服务器 75% 的 HCA 资源;对于 p6-595 或 p770, p780 服务器,建议成员服务器和 CF 服务器均使用专用的 HCA 资源。
pureScale 软件安装配置
硬件安装配置完毕后,我们就可以开始安装 DB2 pureScale 了,不过,我们还是有些安装前的配置工作需要完成:
安装操作系统和补丁
DB2 pureScale 建议安装 AIX 6.1.3 SP3,C++ runtime 最低级别要求 xlC.rte 9.0.0.8 ,IOCP 软件包级别要求 6.1.3.1 ,系统微码级别要求为 3.5 或以上。
配置 SSH 信任关系
在 3 个节点 p5501, p5502, p5503 上 root 用户登录,执行命令:
直接回车接受默认值,在 ~/.ssh 目录中将会产生 2 个文件:id_dsa, 和 id_dsa.pub
合并三个节点上的 id_dsa.pub 到一个文件 authorized_keys 中,然后把 authorized_keys 复制到各个节点的 ~/.ssh 目录,并更改权限:
#chmod 644 authorized_keys
检验 SSH 信任关系配置是否成功,需要从任何 1 个节点发起对其他节点的命令,如从 p5501 上发出命令:
如果不提示输入口令,则信任关系配置成功。
安装 InfiniBand 相关软件包
uDAPL base fileset 从 AIX 6.1 TL3 expansion pack 光盘可以获得。
uDAPL 升级包 udapl.rte.6.1.0.1.bff 可以从下载地址:
http://www-933.ibm.com/eserver/support/fixes/fixcentral/pseriespkgoptions/ptf?fixes=U825646
Infiniband ifix 下载地址:
ftp://public.dhe.ibm.com/aix/efixes/iz68803/iz68803.epkg.Z
使用 smit installp 安装 uDAPL 基础包后,使用 smit update_all 安装 uDAPL 升级包,使用如下命令来安装 Infiniband ifix:
配置 Infiniband Communication Manager
在 3 个节点上执行如下命令,创建 icm 设备:
#mkdev -c management -s infiniband -t icm
配置 Infiniband IP 地址
在 3 个节点上使用如下命令,并输入相关参数,如 p5501 上配置如下:
图 2. Infiniband IP 配置
需要注意的是,HCA Adapter 必须明确指定 Infiniband 适配器设备,如 iba0,否则服务器重启后 Infiniband 网卡 IP 将无法正常工作,另外 Adapter ’ s port number 需要指定到连接了 Infiniband 线缆的端口(Infiniband 网卡为双口,我们实验环境仅连接了 1 条线缆)。
需要说明的是,DB2 pureScale 工作时,成员服务器和 CF 服务器间通讯使用的是 RDMA(Remote Direct Memory Access) 协议,直接读写对方内存,大大减少通讯成本开销,是 DB2 pureScale 高扩展性的重要保证技术之一。DB2 pureScale 并不使用高成本的 TCPIP over Infiniband 的技术,之所以需要给 Infiniband 网卡配置 IP 地址,主要是配置和连通性测试需要。
配置域名解析
在 3 个节点上编辑 /etc/hosts 文件,增加如下条目:
172.16.24.121 p5501
172.16.24.122 p5502
172.16.24.123 p5503
10.10.10.1 p5501ib
10.10.10.2 p5502ib
10.10.10.3 p5503ib
共享磁盘赋予 PVID
在 3 个节点上分别对 hdisk6~hdisk13 执行如下命令,赋予 PVID:
#chdev -l hdisk6 -a pv="yes"
配置 IOCP
在 3 个节点上执行如下命令,配置 IOCP 设备:
当这些准备工作完成后,我们就可以启动 DB2 pureScale 的安装配置程序了。
安装配置 DB2 pureScale 软件
我们可以使用命令 db2_install 以字符终端方式安装来安装 DB2 pureScale,也可以通过命令 db2setup 以图形化方式来安装 DB2 pureScale。两者的区别是,使用 db2_intall 一次只能完成 1 台服务器且仅包含 DB2 pureScale 软件的安装,而使用 db2setup 图形安装工具,可以一次性完成集群中所有服务器 DB2 pureScale 的软件安装和实例配置。
在 3 个节点中任意 1 个节点启动 db2setup 程序,DB2 pureScale 图形界面中指定 3 个节点各自用途,如 p5501 为 Primary CF,p5502 和 p5503 两个节点为成员服务器的设置界面为:
图 3. DB2 pureScale 安装配置
DB2 pureScale 图形安装程序在 3 个节点上自动创建实例用户、fence 用户及相关组、自动安装 DB2 pureScale 软件,并且创建实例共享 GPFS 集群文件系统。安装提示中需要指定实例共享 GPFS 文件系统的共享磁盘(Shared disk partition device path)为 /dev/hdisk6、仲裁盘(DB2 Cluster Services Tiebreaker)为 /dev/hdisk7。
接下来的安装过程将非常简单,DB2 pureScale 安装配置将非常顺利的完成。安装完毕后,执行命令:
检查各成员服务器和 CF 服务器的状态。
图 4. DB2 pureScale 运行状态
如果安装的环境不干净,安装过程中可能出现一些问题。下面我们介绍安装在非干净环境下安装 DB2 pureScale 遇到的常见问题和解决方案。
pureScale 软件安装配置常见问题及解放方案
DB2 pureScale 安装过程中经常出现的问题是,目标服务器上曾经安装过 DB2 pureScale,当再次进行安装时,环境未清理干净,导致 DB2 pureScale 安装无法继续下去。下面我们就安装过程中的常见问题和解放方案进行分析:
问题 1 :安装程序检测到远程主机 RSCT 域存在,安装程序无法继续
图 5. DB2 pureScale 安装配置常见问题 1
这时,我们如下执行命令,屏幕输出如下:
#lsrpdomain
Name OpState RSCTActiveVersion MixedVersions TSPort GSPort
db2domain_20100408172908 Offline 2.5.3.6 No 12347 12347
域 db2domain_20100408172908 为以前安装时遗留,需要使用如下方式进行清理:
#rmrpdomain -f db2domain_20100408172908
问题 2 :安装程序检测到 GPFS 集群存在,安装程序无法继续
图 6. DB2 pureScale 安装配置常见问题 2
如上问题需要将服务器从 GPFS 集群中删除,执行如下命令进行清理:
#/usr/lpp/mmfs/bin/mmdelnode – f
问题 3 :DB2 注册项遗留,安装程序无法继续
图 7. DB2 pureScale 安装配置常见问题 3
如上问题需要手工清理 DB2 注册项,执行如下命令如下进行清理:
问题 4 :目标服务器产品级别不一致,安装无法继续
图 8. DB2 pureScale 安装配置常见问题 4
如上问题是由于在目标服务器上已经安装了 pureScale 软件,为避免版本差异导致问题,我们需要手工卸载目标服务器已经安装的 pureScale 软件,执行如下命令进行清理:
#/opt/IBM/db2/V9.8/install/db2_deinstall – a
问题 5 :在安装程序最后配置实例的阶段,提示 GPFS 文件系统无法创建
该问题通常由于手工强行卸载 GPFS 文件系统,该 GPFS 文件系统原先使用的共享磁盘没有正常删除,导致磁盘上的 GPFS 文件系统标记未清除。我们需要对 hdisk6~hdisk13 用 dd 命令进行清理,如对 hdisk6 的清理命令为:
#dd if=/dev/zero f=/dev/hdisk6 bs=1m count=25
创建数据库
在创建 DB2 pureScale 数据库之前,为性能考虑,我们需要为数据和日志创建独立的 GPFS 文件系统,使用独立的物理磁盘。root 用户登录,执行如下命令:
#/opt/IBM/db2/V9.8/bin/db2cluster -cfs -create -filesystem db2data
-disk "/dev/hdisk8,/dev/hdisk9,/dev/hdisk10,/dev/hdisk11,
/dev/hdisk12" -mount /db2data
#/opt/IBM/db2/V9.8/bin/db2cluster -cfs -create -filesystem db2log
-disk "/dev/hdisk13" -mount /db2log
现在我们就可以创建数据库了,实例用户 db2sdin1 登录系统,执行如下命令:
$db2 “create database HLJRCCB on /db2data dbpath on /db2log
using codeset gbk territory cn”
DB2 pureScale 典型应用模式配置和优化
Websphere Application Server plus DB2 pureScale
Websphere 应用服务器结合后台 DB2 数据库的应用模式在客户实际生产中广泛使用,在此,我们就 DB2 pureScale 客户端自动路由(Automatic Client Reroute, ACR)、工作负载均衡(Workload Balance, WLB)如何配置和使用进行详细说明。
WLB 和 ACR 支持情况
图 9. DB2 pureScale WLB 和 ACR 支持矩阵
Setting
Default Behaviour
Non-Java applications
Java applications
Connection-level WLB
Enabled
N/A (不支持)
Transaction-level WLB
Disabled
Disabled
ACR post-connection
Enabled
Enabled
ACR pre-connection
Disabled
Disabled
Client affinities
Disabled
Disabled
DB2 pureScale 的工作负载均衡机制分为连接级别(Connection-level WLB)和交易级别(Transaction-level WLB)。连接级别的负载均衡发生在客户端建立数据库连接之时,以后不再调整;交易级别的负载均衡发生在交易边界,根据数据库成员服务器的忙闲程度动态进行调整。
从上表看出,对于 Java 应用程序,交易级别的工作负载均衡缺省是关闭的,尽管可能有多台 pureScale 成员服务器也不可能能做到成员服务器间负载均衡;连接前自动客户端路由(ACR pre-connection)也是关闭的,导致未曾连接过 pureScale 成员服务器的客户端,在其连接属性中指定 IP 的成员服务器宕机时,不会自动路由到其他存活成员服务器。
WLB 和 ACR 配置方法
首先,为了让 WLB 和 ACR 能够正常工作,我们需要在 WAS 服务器的 /etc/hosts 文件中添加 pureScale 成员服务器的 IP 地址和主机名:
172.16.24.122 p5502
172.16.24.123 p5503
其次,我们需要使用 DB2 V9.7.2 提供的 JDBC 驱动程序,之前版本或 pureScale 服务器中自带的 JDBC 驱动程序目前不支持 WLB;
最后,我们需要在 WAS 应用服务器里进行相关配置如下:
表 3. DB2 pureScale WLB 和 ACR 在 WAS 中的配置
DataSource
DriverManager
Conn-Level WLB
不支持
不支持
Trx-Level WLB
增加 DataSource 的属性: enableSysplexWLB=true 请参考 WAS 例子 A1
增加 Connection 的属性: enableSysplexWLB=true 可以使用属性或在连接串里配置,请参考下一单元格
ACR Pre-connection
方法一:增加 DataSource 的属性 clientRerouteAlternateServerName=172.16.24.123 clientRerouteAlternatePortNumber=50001 请参考 WAS 例子 A2 方法二:生成 jndi,binding 到 DB2,参见 A.3 修改数据源参数 (Data sources > HLJRCCB > WebSphere Application Server data source properties ) Client reroute server list JNDI name(clientRerouteServerListJNDIName ) 指向 A3 所设置的 JNDI
方法一:使用属性 Properties props = new Properties(); props.put("user", "db2sdin1"); props.put("password", "db2"); props.put("enableSysplexWLB", "true"); props.put("clientRerouteAlternateServerName", "172.16.24.123"); props.put("clientRerouteAlternatePortNumber ", "50001"); Connection c = DriverManager.getConnection("jdbc:db2://172.16.24.122:50001/mydb", props ); 方法二:在连接串里增加属性 conn = java.sql.DriverManager .getConnection("jdbc:db2://172.16.24.122:50001/HLJRCCB:user=db2sdin1;password=db2; enableSysplexWLB=true;clientRerouteAlternatePortNumber=50001; clientRerouteAlternateServerName=172.16.24.123;"); 注意:该方式不支持多于 2 个节点
ACR Post-connection
默认 enable,无参数配置。 发生 ACR 时系统会报错误信息,错误信息参考 A4
默认 enable,无参数配置。 发生 ACR 时系统会报错误信息,错误信息参考 A4
A1. 在 WAS 中配置 Trx-Level WLB
在“Data sources > DBNAME > Customer properties ”增加 enableSysplexWLB 属性:
图 10. WAS 配置交易级别工作负载均衡 图 10. WAS 配置交易级别工作负载均衡
A2. 在 WAS 中配置 Pre-Conn ACR
修改数据源参数 (Data sources > DBNAME > WebSphere Application Server data source properties )
图 11. WAS 配置连接前客户端自动路由
A3. DB2ClientRerouteServerList Binding
编写一个 jsp 程序,包含如下代码,执行后将绑定相关信息:
清单 1. WAS 中注册 DB2 purescale 自动客户端路由绑定
InitialContext registry = new InitialContext();
// Create a DB2ClientRerouteServerList object
DB2ClientRerouteServerList address =
new DB2ClientRerouteServerList();
// Set the port number and server name for the primary server
address.setPrimaryPortNumber(50001);
address.setPrimaryServerName("172.16.24.122");
// Set the port number and server name for the alternate server
int [] port = {50001};
String[] server = {"172.16.24.123"};
address.setAlternatePortNumber(port);
address.setAlternateServerName(server);
registry.rebind("cell/persistent/serverList", address);
A4. Post-Conn ACR message:
com.ibm.db2.jcc.am.ClientRerouteException: [jcc][t4][2027][11212][4.9.66]
A connection failed but has been re-established. The host name or IP address
is "p5503" and the service name or port number is 50,001.
Special registers may or may not be re-attempted (Reason code = 1).
ERRORCODE=-4498, SQLSTATE=08506
多线程 DB2 CLI 程序 plus pureScale
多线程 DB2 CLI 程序访问 pureScale 数据库,如果要实现 ACR 和 WLB 功能,
首先,我们需要在 DB2 CLI 客户端的 /etc/hosts 中添加如下条目:
172.16.24.122 p5502
172.16.24.123 p5503
然后,我们需要配置客户端 db2dsdriver.cfg 文件,该文件需要放到客户端的 $DB2HOME/sqllib/cfg 目录中。参考 db2dsdriver.cfg 如下:
清单 2. DB2 pureScale db2dsdriver.cfg
你可能感兴趣的:(DB2 pureScale 实战)
Python数据分析与可视化实战指南
William数据分析
python python 数据
在数据驱动的时代,Python因其简洁的语法、强大的库生态系统以及活跃的社区,成为了数据分析与可视化的首选语言。本文将通过一个详细的案例,带领大家学习如何使用Python进行数据分析,并通过可视化来直观呈现分析结果。一、环境准备1.1安装必要库在开始数据分析和可视化之前,我们需要安装一些常用的库。主要包括pandas、numpy、matplotlib和seaborn等。这些库分别用于数据处理、数学
Python教程:一文了解使用Python处理XPath
旦莫
Python进阶 python 开发语言
目录1.环境准备1.1安装lxml1.2验证安装2.XPath基础2.1什么是XPath?2.2XPath语法2.3示例XML文档3.使用lxml解析XML3.1解析XML文档3.2查看解析结果4.XPath查询4.1基本路径查询4.2使用属性查询4.3查询多个节点5.XPath的高级用法5.1使用逻辑运算符5.2使用函数6.实战案例6.1从网页抓取数据6.1.1安装Requests库6.1.2代
《Python数据分析实战终极指南》
xjt921122
python 数据分析 开发语言
对于分析师来说,大家在学习Python数据分析的路上,多多少少都遇到过很多大坑**,有关于技能和思维的**:Excel已经没办法处理现有的数据量了,应该学Python吗?找了一大堆Python和Pandas的资料来学习,为什么自己动手就懵了?跟着比赛类公开数据分析案例练了很久,为什么当自己面对数据需求还是只会数据处理而没有分析思路?学了对比、细分、聚类分析,也会用PEST、波特五力这类分析法,为啥
Python实现简单的机器学习算法
master_chenchengg
python python 办公效率 python开发 IT
Python实现简单的机器学习算法开篇:初探机器学习的奇妙之旅搭建环境:一切从安装开始必备工具箱第一步:安装Anaconda和JupyterNotebook小贴士:如何配置Python环境变量算法初体验:从零开始的Python机器学习线性回归:让数据说话数据准备:从哪里找数据编码实战:Python实现线性回归模型评估:如何判断模型好坏逻辑回归:从分类开始理论入门:什么是逻辑回归代码实现:使用skl
springboot+vue项目实战一-创建SpringBoot简单项目
苹果酱0567
面试题汇总与解析 spring boot 后端 java 中间件 开发语言
这段时间抽空给女朋友搭建一个个人博客,想着记录一下建站的过程,就当做笔记吧。虽然复制zjblog只要一个小时就可以搞定一个网站,或者用cms系统,三四个小时就可以做出一个前后台都有的网站,而且想做成啥样也都行。但是就是要从新做,自己做的意义不一样,更何况,俺就是专门干这个的,嘿嘿嘿要做一个网站,而且从零开始,首先呢就是技术选型了,经过一番思量决定选择-SpringBoot做后端,前端使用Vue做一
WebMagic:强大的Java爬虫框架解析与实战
Aaron_945
Java java 爬虫 开发语言
文章目录引言官网链接WebMagic原理概述基础使用1.添加依赖2.编写PageProcessor高级使用1.自定义Pipeline2.分布式抓取优点结论引言在大数据时代,网络爬虫作为数据收集的重要工具,扮演着不可或缺的角色。Java作为一门广泛使用的编程语言,在爬虫开发领域也有其独特的优势。WebMagic是一个开源的Java爬虫框架,它提供了简单灵活的API,支持多线程、分布式抓取,以及丰富的
GenVisR 基因组数据可视化实战(三)
11的雾
3.genCov画每个突变位点附件的coverage,跟igv有点相似。这个操作起来很复杂,但是图还是挺有用的。可以考虑。由于我的referencegenomebuild是hg38BiocManager::install(c("TxDb.Hsapiens.UCSC.hg38.knownGene","BSgenome.Hsapiens.UCSC.hg38"))library(TxDb.Hsapien
python爬取微信小程序数据,python爬取小程序数据
2301_81900439
前端
大家好,小编来为大家解答以下问题,python爬取微信小程序数据,python爬取小程序数据,现在让我们一起来看看吧!Python爬虫系列之微信小程序实战基于Scrapy爬虫框架实现对微信小程序数据的爬取首先,你得需要安装抓包工具,这里推荐使用Charles,至于怎么使用后期有时间我会出一个事例最重要的步骤之一就是分析接口,理清楚每一个接口功能,然后连接起来形成接口串思路,再通过Spider的回调
HarmonyOS开发实战( Beta5.0)搜索框热搜词自动切换
让开,我要吃人了
OpenHarmony HarmonyOS 鸿蒙开发 harmonyos 华为 鸿蒙 移动开发 鸿蒙系统 前端 开发语言
鸿蒙HarmonyOS开发往期必看:HarmonyOSNEXT应用开发性能实践总结最新版!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)介绍本示例介绍使用TextInput组件与Swiper组件实现搜索框内热搜词自动切换。效果图预览使用说明页面顶部搜索框内热搜词条自动切换,编辑搜索框时自动隐藏。实现思路使用TextInput实现搜索框TextInput({te
【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(二十八)
向往风的男子
k8s 学习 kubernetes 容器
本站以分享各种运维经验和运维所需要的技能为主《python零基础入门》:python零基础入门学习《python运维脚本》:python运维脚本实践《shell》:shell学习《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战《k8》从问题中去学习k8s《docker学习》暂未更新《ceph学习》ceph日常问题解决分享《日志收集》ELK+各种中间件《运维日常》
阿里巴巴商品搜索API返回值实战解析
weixin_43841111
api java 前端 javascript
在解析阿里巴巴中国站商品搜索API返回值并进行实战时,可以从以下几个方面入手:一、了解API返回值的结构基本信息返回值通常包含商品的标题、价格、库存、图片链接等基本信息。这些信息对于了解商品的概况非常重要。例如,商品标题可以让你快速了解商品的名称和特点,价格信息可以帮助你进行价格比较和成本核算。详细描述可能包括商品的详细描述、规格参数、使用方法等。这些信息对于深入了解商品的特性和功能非常有帮助。比
李笑来 6 你到底有没有资本+7什么是落后
盛大米
6你到底有没有资本摘要不能够心平气和地被判上无期徒刑的资本,就别假装资本混迹江湖了。投资知识,经验,智慧,几乎只能从实战中获得————书上写的,牛人讲的,都跟你没关系,因为只有那些东西在你骨子里生根之后再发芽且不夭折而后还要等上很久才会茁壮甚至茂盛。。。。直接将年收入的10%-20%判死刑是最简单,最直接,最粗暴最有效的操作方式。投资,尤其是“好的投资”,一定是“舍我其谁”的活动。关于资本的思考,
基于JavaWeb开发的Java+SpringMvc+vue+element实现上海汽车博物馆平台
网顺技术团队
成品程序项目 java vue.js 汽车 课程设计 spring boot
基于JavaWeb开发的Java+SpringMvc+vue+element实现上海汽车博物馆平台作者主页网顺技术团队欢迎点赞收藏⭐留言文末获取源码联系方式查看下方微信号获取联系方式承接各种定制系统精彩系列推荐精彩专栏推荐订阅不然下次找不到哟Java毕设项目精品实战案例《1000套》感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人文章目录基
跟剽悍一只猫学习收获之成为领域专家
财务自由的社群运营人苏宝
001找到这个领域内权威的书籍。002按照书的脉络(章节目录)记录书中的重要内容(对自己认知系统造成冲击的,以前没有学过的,觉得有用的,暂时还不太理解的)记录下来。003读完第一遍以后,接着读第二遍。这一遍记录书里对你有用的方法论,并尝试依据这些方法论实战。004再读一遍,这一遍记录尝试梳理整个书的认知框架和内在逻辑。005之后,可以多朗读几遍全书。你会发现,你对这些知识的理解会越来越全面,越有深
Python OpenCV图像处理:从基础到高级的全方位指南
极客代码
玩转Python 开发语言 python opencv 图像处理 计算机视觉
目录第一部分:PythonOpenCV图像处理基础1.1OpenCV简介1.2PythonOpenCV安装1.3实战案例:图像显示与保存1.4注意事项第二部分:PythonOpenCV图像处理高级技巧2.1图像变换2.2图像增强2.3图像复原第三部分:PythonOpenCV图像处理实战项目3.1图像滤波3.2图像分割3.3图像特征提取第四部分:PythonOpenCV图像处理注意事项与优化策略4
分享一个基于python的电子书数据采集与可视化分析 hadoop电子书数据分析与推荐系统 spark大数据毕设项目(源码、调试、LW、开题、PPT)
计算机源码社
Python项目 大数据 大数据 python hadoop 计算机毕业设计选题 计算机毕业设计源码 数据分析 spark毕设
作者:计算机源码社个人简介:本人八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流!学习资料、程序开发、技术解答、文档报告如需要源码,可以扫取文章下方二维码联系咨询Java项目微信小程序项目Android项目Python项目PHP项目ASP.NET项目Node.js项目选题推荐项目实战|p
增长黑客和最小可复制的内核
爱思考的糖
五段-增长黑客的三大步骤生活就像逆水行舟,加入你不能加速,现实中最好的情况,你也就处在一种原地打转的状况。增长,就像一辆车里的加速器。围棋爱好者,水平一直没有进步的原因。是因为没有找到提高下棋水平的增长模式有三个办法可以提高:做死活题,练习做关键决策的能力;打谱,复盘经典案例;找AI陪练。增长黑客的三个实战步骤:第一步,假设:建立最小闭环。从笨办法开始,不怕犯错,代价并不高,你可以勇敢尝试。想知道
36. MyBatis如何支持多数据库操作?如何配置不同的数据源?
这孩子叫逆
Mybatis笔记 mybatis 数据库
在许多企业级应用中,可能需要访问多个数据库。MyBatis可以通过配置多个数据源和动态切换数据源来支持多数据库操作。下面介绍如何在MyBatis中配置和使用多个数据源。1.多数据源的基本配置1.1配置多个数据源要支持多个数据源,首先需要在Spring或SpringBoot中配置不同的数据源。假设我们要连接两个数据库db1和db2,可以通过以下步骤进行配置。SpringBoot示例:applicat
复盘
赵建庄
行动后反思,AAR(AfterActionReview),是知识管理的一种工具,起源于美国陆军的作战方法,强调在每次行动后进行及时反思、总结和改进。《复盘》一书其实就是这种方法的具体应用,名字不同,然而实质相同。相比AAR这样的说法,复盘更简洁,容易被国人接受,而且,书中给出了非常详细的步骤,有较强的指导意义和实战性,AAR的六步法,说的比较简单,有人可以悟,结合实际业务演变出各种变化,大多数人可
题解 | #完全数计算#不知道为什么没超时的暴力解法
huaxinjiayou
java
兄弟们,坚持就是胜利啊,找工作从去年秋招就开始找,到五月底才收到第一个offer星环的,然后六月初t咋六月了还有面试啊,有兄弟了解这个部门吗面完了家人们,纯纯kpi啊,上来就是一道题是打印多个字符串的华为接头人话术指南:欲投华为,必看此贴!引流华为招聘提前批【奖】这个夏天,和牛牛一起打卡刷题~Java面试实战项目25届本科找暑期实习的历程飞猪旅行运营岗面经百度视觉算法一面面经感谢牛友们,腾子pcg
全自动解密解码神器 — Ciphey
K'illCode
python_模块 python vscode
Ciphey是一个使用自然语言处理和人工智能的全自动解密/解码/破解工具。简单地来讲,你只需要输入加密文本,它就能给你返回解密文本。就是这么牛逼。有了Ciphey,你根本不需要知道你的密文是哪种类型的加密,你只知道它是加密的,那么Ciphey就能在3秒甚至更短的时间内给你解密,返回你想要的大部分密文的答案。下面就给大家介绍Ciphey的实战使用教程。1.准备开始之前,你要确保Python和pip已
【编译原理】方舟编译技术课程 — 词法分析
CSU_THU_SUT
编译原理 编译器 编译原理 llvm
打开目录阅读更佳参考视频:方舟·编译技术入门与实战以及西交冯博琴老师的相关视频编译的过程包括词法分析(分析程序符号)、语法分析(分析语法单位)、中间代码生成、代码优化和目标代码生成。一、编译过程各部分的任务(1)词法分析:输入源程序,扫描分解源程序字符串,识别五类符号,包括定义符、标识符、运算符、界符和常数,转为单词符号。(2)语法分析:在词法分析基础上,将单词符号转为语法单位(如短句、子句、句子
python logging使用_Python实战之logging模块使用详解
weixin_39548832
python logging使用
用Python写代码的时候,在想看的地方写个printxx就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所以Python引入了logging模块来记录我想要的信息。print也可以输入日志,logging相对print来说更好控制输出在哪个地方,怎么输出及控制消息级别来过滤掉那些不需要的信息。1、日志级别im
Open Feign 实战笔记
自强-X
spring-cloud java spring 微服务 ribbon spring cloud
OpenFeign笔记概念声明式的web服务客户端。使用接口加注解的形式编程。它是对RestTemplate和ribbon做了进一步封装。Feign已经停更,OpenFeign是在Feign的基础上又做了进一步的封装。Feign:Feign是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。Fei
大胆猜!主持人大赛第二阶段,谁最有望夺冠
童说家
看完第六期又再次刷新了小编的认知,简直太过瘾了。选手们的实力就不用说了,光出题嘉宾的阵容就够人惊叹了,甚至连央视boys在这一期都合体了。好不容易熬到了上周六,可是第七期节目却因为节目编排的原因停更了,小编只好再刷遍第六期过足眼瘾啦!来源于主持人大赛第二赛段的“经典节目实战”难度提高了不少,央视的十档经典节目在场上被参赛选手重新演绎,不仅考验选手对相关内容的把握能力,对事物的分析、提炼和概括表述能
Mall4j商城实战 - 部署 canal 数据库增量日志解析
yueerba126
Mall4j商城实战 数据库 spring cloud 微服务 架构
Canal简介Canal是基于MySQL数据库增量日志解析的工具,主要用于增量数据的订阅和消费。Canal主要用途基于MySQL数据库增量日志解析详细功能:实时解析MySQL的二进制日志(Binlog)。捕获数据库中的所有增量变更,如插入、更新和删除操作。使用场景:适用于实时监控数据库变化的应用,比如数据复制、数据备份或实时数据分析等。提供增量数据订阅和消费服务
网上商城项目总结报告
WEB前端程序贵
前端
网上商城项目总结报告1:掌握的知识通过网上商城这个实战项目的开发,不仅了解到了一个项目的业务逻辑,而且掌握了实现相关业务功能的方法。通过这个实战项目,了解到了模块化开发项目的基础结构的搭建,以及项目文件的管理方式。通过这个实战项目,运用封装的接口api文档实现了客户端服务器之间的交互知识。通过封装的axios实例对象与方法,向服务器请求数据,然后渲染页面。通过运用localStorage本地储存的
Java并发编程-AQS详解及案例实战(上篇)
猿与禅
Java技术栈源码分析 java AQS 并发编程 原理
文章目录AQS概述AQS的核心概念AQS的工作原理AQS的灵活性使用场景使用指南使用示例AQS的本质:为啥叫做异步队列同步器AQS的核心机制“异步队列”的含义“同步器”的含义总结加锁失败的时候如何借助AQS异步入队阻塞等待AQS的锁队列加锁失败时的处理流程异步入队的机制总结ReentractLock如何设置公平锁策略以及原理设置公平锁策略公平锁的运作原理尝试获取锁释放锁性能与公平性的权衡tryLo
Keras深度学习框架入门及实战指南
司莹嫣Maude
Keras深度学习框架入门及实战指南keraskeras-team/keras:是一个基于Python的深度学习库,它没有使用数据库。适合用于深度学习任务的开发和实现,特别是对于需要使用Python深度学习库的场景。特点是深度学习库、Python、无数据库。项目地址:https://gitcode.com/gh_mirrors/ke/keras一、项目介绍Keras简介Keras是一款高级神经网络
Python实时聊天室架构与API实战应用
幂简集成
python
尊敬的各位读者,欢迎参与本次共享研讨项目——利用Python构建实时聊天室。在本项目中,我们将引进一款前沿工具——发布订阅频道API,以实现聊天室内的实时交互功能。在当今信息泛滥的社会环境下,实时交流已成为人们日常生活中不可或缺的组成部分。不论是社交平台上的即时通讯,抑或是网络游戏中的实时对决,实时通信技术始终在幕后默默支持着我们的每一次互动。今日,让我们共同踏入Python的奇妙世界,亲手打造专
mysql主从数据同步
林鹤霄
mysql主从数据同步
配置mysql5.5主从服务器(转)
教程开始:一、安装MySQL
说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22
二、配置MySQL主服务器(192.168.21.169)mysql -uroot -p &nb
oracle学习笔记
caoyong
oracle
1、ORACLE的安装
a>、ORACLE的版本
8i,9i : i是internet
10g,11g : grid (网格)
12c : cloud (云计算)
b>、10g不支持win7
&
数据库,SQL零基础入门
天子之骄
sql 数据库入门 基本术语
数据库,SQL零基础入门
做网站肯定离不开数据库,本人之前没怎么具体接触SQL,这几天起早贪黑得各种入门,恶补脑洞。一些具体的知识点,可以让小白不再迷茫的术语,拿来与大家分享。
数据库,永久数据的一个或多个大型结构化集合,通常与更新和查询数据的软件相关
pom.xml
一炮送你回车库
pom.xml
1、一级元素dependencies是可以被子项目继承的
2、一级元素dependencyManagement是定义该项目群里jar包版本号的,通常和一级元素properties一起使用,既然有继承,也肯定有一级元素modules来定义子元素
3、父项目里的一级元素<modules>
<module>lcas-admin-war</module>
<
sql查地区省市县
3213213333332132
sql mysql
-- db_yhm_city
SELECT * FROM db_yhm_city WHERE class_parent_id = 1 -- 海南 class_id = 9 港、奥、台 class_id = 33、34、35
SELECT * FROM db_yhm_city WHERE class_parent_id =169
SELECT d1.cla
关于监听器那些让人头疼的事
宝剑锋梅花香
画图板 监听器 鼠标监听器
本人初学JAVA,对于界面开发我只能说有点蛋疼,用JAVA来做界面的话确实需要一定的耐心(不使用插件,就算使用插件的话也没好多少)既然Java提供了界面开发,老师又要求做,只能硬着头皮上啦。但是监听器还真是个难懂的地方,我是上了几次课才略微搞懂了些。
JAVA的遍历MAP
darkranger
map
Java Map遍历方式的选择
1. 阐述
对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多。理由是:entrySet方法一次拿到所有key和value的集合;而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率。那么实际情况如何呢?
为了解遍历性能的真实差距,包括在遍历ke
POJ 2312 Battle City 优先多列+bfs
aijuans
搜索
来源:http://poj.org/problem?id=2312
题意:题目背景就是小时候玩的坦克大战,求从起点到终点最少需要多少步。已知S和R是不能走得,E是空的,可以走,B是砖,只有打掉后才可以通过。
思路:很容易看出来这是一道广搜的题目,但是因为走E和走B所需要的时间不一样,因此不能用普通的队列存点。因为对于走B来说,要先打掉砖才能通过,所以我们可以理解为走B需要两步,而走E是指需要1
Hibernate与Jpa的关系,终于弄懂
avords
java Hibernate 数据库 jpa
我知道Jpa是一种规范,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。
在play中定义Model时,使用的是jpa的annotations,比如javax.persistence.Entity, Table, Column, OneToMany
酸爽的console.log
bee1314
console
在前端的开发中,console.log那是开发必备啊,简直直观。通过写小函数,组合大功能。更容易测试。但是在打版本时,就要删除console.log,打完版本进入开发状态又要添加,真不够爽。重复劳动太多。所以可以做些简单地封装,方便开发和上线。
/**
* log.js hufeng
* The safe wrapper for `console.xxx` functions
*
哈佛教授:穷人和过于忙碌的人有一个共同思维特质
bijian1013
时间管理 励志人生 穷人 过于忙碌
一个跨学科团队今年完成了一项对资源稀缺状况下人的思维方式的研究,结论是:穷人和过于忙碌的人有一个共同思维特质,即注意力被稀缺资源过分占据,引起认知和判断力的全面下降。这项研究是心理学、行为经济学和政策研究学者协作的典范。
这个研究源于穆来纳森对自己拖延症的憎恨。他7岁从印度移民美国,很快就如鱼得水,哈佛毕业
other operate
征客丶
OS osx
一、Mac Finder 设置排序方式,预览栏 在显示-》查看显示选项中
二、有时预览显示时,卡死在那,有可能是一些临时文件夹被删除了,如:/private/tmp[有待验证]
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一
【Scala五】分析Spark源代码总结的Scala语法三
bit1129
scala
1. If语句作为表达式
val properties = if (jobIdToActiveJob.contains(jobId)) {
jobIdToActiveJob(stage.jobId).properties
} else {
// this stage will be assigned to "default" po
ZooKeeper 入门
BlueSkator
中间件 zk
ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。
值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利
MySQL取得当前时间的函数是什么 格式化日期的函数是什么
BreakingBad
mysql Date
取得当前时间用 now() 就行。
在数据库中格式化时间 用DATE_FORMA T(date, format) .
根据格式串format 格式化日期或日期和时间值date,返回结果串。
可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式化date值:
%S, %s 两位数字形式的秒( 00,01,
读《研磨设计模式》-代码笔记-组合模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
abstract class Component {
public abstract void printStruct(Str
4_JAVA+Oracle面试题(有答案)
chenke
oracle
基础测试题
卷面上不能出现任何的涂写文字,所有的答案要求写在答题纸上,考卷不得带走。
选择题
1、 What will happen when you attempt to compile and run the following code? (3)
public class Static {
static {
int x = 5; // 在static内有效
}
st
新一代工作流系统设计目标
comsci
工作 算法 脚本
用户只需要给工作流系统制定若干个需求,流程系统根据需求,并结合事先输入的组织机构和权限结构,调用若干算法,在流程展示版面上面显示出系统自动生成的流程图,然后由用户根据实际情况对该流程图进行微调,直到满意为止,流程在运行过程中,系统和用户可以根据情况对流程进行实时的调整,包括拓扑结构的调整,权限的调整,内置脚本的调整。。。。。
在这个设计中,最难的地方是系统根据什么来生成流
oracle 行链接与行迁移
daizj
oracle 行迁移
表里的一行对于一个数据块太大的情况有二种(一行在一个数据块里放不下)
第一种情况:
INSERT的时候,INSERT时候行的大小就超一个块的大小。Oracle把这行的数据存储在一连串的数据块里(Oracle Stores the data for the row in a chain of data blocks),这种情况称为行链接(Row Chain),一般不可避免(除非使用更大的数据
[JShop]开源电子商务系统jshop的系统缓存实现
dinguangx
jshop 电子商务
前言
jeeshop中通过SystemManager管理了大量的缓存数据,来提升系统的性能,但这些缓存数据全部都是存放于内存中的,无法满足特定场景的数据更新(如集群环境)。JShop对jeeshop的缓存机制进行了扩展,提供CacheProvider来辅助SystemManager管理这些缓存数据,通过CacheProvider,可以把缓存存放在内存,ehcache,redis,memcache
初三全学年难记忆单词
dcj3sjt126com
english word
several 儿子;若干
shelf 架子
knowledge 知识;学问
librarian 图书管理员
abroad 到国外,在国外
surf 冲浪
wave 浪;波浪
twice 两次;两倍
describe 描写;叙述
especially 特别;尤其
attract 吸引
prize 奖品;奖赏
competition 比赛;竞争
event 大事;事件
O
sphinx实践
dcj3sjt126com
sphinx
安装参考地址:http://briansnelson.com/How_to_install_Sphinx_on_Centos_Server
yum install sphinx
如果失败的话使用下面的方式安装
wget http://sphinxsearch.com/files/sphinx-2.2.9-1.rhel6.x86_64.rpm
yum loca
JPA之JPQL(三)
frank1234
orm jpa JPQL
1 什么是JPQL
JPQL是Java Persistence Query Language的简称,可以看成是JPA中的HQL, JPQL支持各种复杂查询。
2 检索单个对象
@Test
public void querySingleObject1() {
Query query = em.createQuery("sele
Remove Duplicates from Sorted Array II
hcx2013
remove
Follow up for "Remove Duplicates":What if duplicates are allowed at most twice?
For example,Given sorted array nums = [1,1,1,2,2,3],
Your function should return length
Spring4新特性——Groovy Bean定义DSL
jinnianshilongnian
spring 4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
CentOS安装Mysql5.5
liuxingguome
centos
CentOS下以RPM方式安装MySQL5.5
首先卸载系统自带Mysql:
yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf
查看是否还有mysql软件:
rpm -qa|grep mysql
去http://dev.mysql.c
第14章 工具函数(下)
onestopweb
函数
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
POJ 1050
SaraWon
二维数组 子矩阵 最大和
POJ ACM第1050题的详细描述,请参照
http://acm.pku.edu.cn/JudgeOnline/problem?id=1050
题目意思:
给定包含有正负整型的二维数组,找出所有子矩阵的和的最大值。
如二维数组
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
中和最大的子矩阵是
9 2
-4 1
-1 8
且最大和是15
[5]设计模式——单例模式
tsface
java 单例 设计模式 虚拟机
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
安全的单例模式:
/*
* @(#)Singleton.java 2014-8-1
*
* Copyright 2014 XXXX, Inc. All rights reserved.
*/
package com.fiberhome.singleton;
Java8全新打造,英语学习supertool
yangshangchuan
java superword 闭包 java8 函数式编程
superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律、前缀后缀规律、词之间的相似性规律等等。Clean code、Fluent style、Java8 feature: Lambdas, Streams and Functional-style Programming。
升学考试、工作求职、充电提高,都少不了英语的身影,英语对我们来说实在太重要