密码认证器
默认的认证器是 org.apache.cassandra.auth.AllowAllAuthenticator。如果想要求客户端提供凭证,Cassandra提供另一种选择 org.apache.cassandra.auth.PasswordAuthenticatot
配置认证器
默认登录cqlsh不需要密码,修改cassandra.yaml 修改
# authenticator: AllowAllAuthenticator
authenticator: PasswordAuthenticator
Cassandra2.2或以后的版本,会看到使用 PasswordAuthenticator必须使用CassandraRoleManager,是Cassandra授权功能的一部分。
增加用户
修改之后登录提示需要账号密码,默认账号密码都是 cassandra
[cassandra@node2 bin]$ ./cqlsh node2
Connection error: ( ' Unable to connect to any servers ' , {' 192.168.56.12 ' : AuthenticationFailed(' Remote end requires authentication. ' ,)})
[cassandra@node2 bin]$ . /cqlsh node2 -u cassandra -p cassandra
Connected to Cluster01 at node2: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh >
修改cassandra账号的密码:
cassandra@cqlsh> alter user cassandra with password ' cass@123 ' ;
cassandra@cqlsh > quit
[cassandra@node2 bin]$ . /cqlsh node2 -u cassandra -p cassandra
Connection error: ( ' Unable to connect to any servers ' , {' 192.168.56.12 ' : AuthenticationFailed(' Failed to authenticate to 192.168.56.12: Error from server: code=0100 [Bad credentials] message="Provided username cassandra and/or password are incorrect" ' ,)})
[cassandra@node2 bin]$ . /cqlsh node2 -u cassandra -p cass@123
Connected to Cluster01 at node2: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh >
创建账号:
[cassandra@node2 bin]$ ./cqlsh node2 -u cassandra -p cass@123
Connected to Cluster01 at node2: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh >
cassandra@cqlsh > list users;
name | super
-----------+-------
cassandra | True
( 1 rows)
cassandra@cqlsh > create user cass with password ' cass@111 ' ;
cassandra@cqlsh >
cassandra@cqlsh > list users;
name | super
-----------+-------
cass | False
cassandra | True
( 2 rows)
cassandra@cqlsh >
配置自动登录,为了避免每次登录cqlsh都需要输入账号密码,可以在家目录中创建文件 .cqlshrc
[cassandra@node2 ~]$ ls -al
total 24
drwx ------. 3 cassandra cassandra 117 Feb 11 04 :59 .
drwxr -xr-x. 3 root root 23 Feb 4 03 :24 ..
-rw-------. 1 cassandra cassandra 8074 Feb 11 01 :17 .bash_history
-rw-r--r--. 1 cassandra cassandra 18 Aug 8 2019 .bash_logout
-rw-r--r--. 1 cassandra cassandra 193 Aug 8 2019 .bash_profile
-rw-r--r--. 1 cassandra cassandra 231 Aug 8 2019 .bashrc
drwxrwxr -x. 2 cassandra cassandra 51 Feb 11 04 :59 .cassandra
-rw-rw-r--. 1 cassandra cassandra 58 Feb 11 04 :57 .cqlshrc
[cassandra@node2 ~]$ cat .cqlshrc
[authentication]
username = cassandra
password = cass@123
[cassandra@node2 ~]$ cd /data/cass/bin
[cassandra@node2 bin]$ . /cqlsh
Connection error: ( ' Unable to connect to any servers ' , {' 127.0.0.1 ' : error(111 , " Tried connecting to [('127.0.0.1', 9042)]. Last error: Connection refused " )})
[cassandra@node2 bin]$ . /cqlsh node2
Connected to Cluster01 at node2: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh >quit
[cassandra@node2 bin]$ cd
[cassandra@node2 ~]$ ls -al
total 20
drwx ------. 3 cassandra cassandra 101 Feb 11 04 :59 .
drwxr -xr-x. 3 root root 23 Feb 4 03 :24 ..
-rw-------. 1 cassandra cassandra 8074 Feb 11 01 :17 .bash_history
-rw-r--r--. 1 cassandra cassandra 18 Aug 8 2019 .bash_logout
-rw-r--r--. 1 cassandra cassandra 193 Aug 8 2019 .bash_profile
-rw-r--r--. 1 cassandra cassandra 231 Aug 8 2019 .bashrc
drwxrwxr -x. 2 cassandra cassandra 66 Feb 11 04 :59 .cassandra
[cassandra@node2 ~]$ cd .cassandra/
[cassandra@node2 .cassandra]$ ll
total 16
-rw-------. 1 cassandra cassandra 3978 Feb 11 04 :59 cqlsh_history
-rw-rw-r--. 1 cassandra cassandra 58 Feb 11 04 :57 cqlshrc
-rw-rw-r--. 1 cassandra cassandra 5833 Feb 10 22 :00 nodetool.history
[cassandra@node2 .cassandra]$ cat cqlshrc
[authentication]
username = cassandra
password = cass@123
切换账号无需退出重新登录,执行时可以不加密码,在命令行输入。用户家目录下面 .cassandra/cqlsh_history 文件中会记录所有命令行上输入的内容
[cassandra@node2 bin]$ ./cqlsh node3
Connected to Cluster01 at node3: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh >
cassandra@cqlsh > list users;
name | super
-----------+-------
cass | False
cassandra | True
( 2 rows)
cassandra@cqlsh > login cass ' cass@111 ' ;
cass@cqlsh >
修改账号密码,删除账号
cassandra@cqlsh> alter user cass with password ' cass@222 ' ;
cassandra@cqlsh > login cass ' cass@222 ' ;
cass@cqlsh > login cassandra ' cass@123 ' ;
cassandra@cqlsh > drop user cass;
cassandra@cqlsh > list users;
name | super
-----------+-------
cassandra | True
( 1 rows)
使用CassandraAuthorizer
通过授权器,授权用户访问集群中的键和表。 默认授权器 org.apache.cassandra.auth.AllowAllAuthorizer。
关闭集群,配置脚本 bin/stop-server
echo " Cassandra is shutting down "
user =`whoami`
pgrep -u $user -f cassandra | xargs kill -9
if ps -ef|grep cassandra|grep -v grep|grep java; then
echo " Cassandra shutdown failed "
else
echo " Cassandra closed "
fi
修改cassandra.yaml
# authorizer: AllowAllAuthorizer
authorizer: CassandraAuthorizer
普通用户登录查看keyspace和table没有权限
[cassandra@node2 bin]$ ./cqlsh node2
Connected to Cluster01 at node2: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh > desc keyspaces;
system_schema system system_distributed test01
system_auth keyspace1 system_traces
cassandra@cqlsh > list users;
name | super
-----------+-------
cass | False
cassandra | True
( 2 rows)
cassandra@cqlsh > login cass;
Password:
cass@cqlsh > desc keyspaces;
system_schema system system_distributed test01
system_auth keyspace1 system_traces
SyntaxException: line 1 :0 no viable alternative at input ' ues ' ([ues]...)
cass@cqlsh > use test01;
cass@cqlsh:test01 > desc tables;
test01
cass@cqlsh:test01 > select * from test01;
Unauthorized: Error from server: code=2100 [Unauthorized] message=" User cass has no SELECT permission on or any of its parents"
cass@cqlsh:test01 >
通过grant命令给用户赋予权限
cassandra@cqlsh> grant select on test01.test01 to cass;
cassandra@cqlsh > login cass;
Password:
cass@cqlsh > use test01;
cass@cqlsh:test01 > select * from test01;
key | C0 | C1 | C2 | C3 | C4
-----+----+----+----+----+----
( 0 rows)
基于角色的访问控制 Cassandra提供一种基于角色的访问控制(role-based access control, RBAC)功能。创建角色,给角色赋予权限,给用户赋予角色的权限。
cassandra@cqlsh:test01> list roles;
role | super | login | options
-----------+-------+-------+---------
cass | False | True | {}
cassandra | True | True | {}
( 2 rows)
cassandra@cqlsh:test01 > create role dev;
cassandra@cqlsh:test01 > grant all on keyspace test to dev;
InvalidRequest: Error from server: code=2200 [Invalid query] message=" Resource doesn't exist "
cassandra@cqlsh:test01 > grant all on keyspace test01 to dev;
cassandra@cqlsh:test01 >
cassandra@cqlsh:test01 > drop user cass;
cassandra@cqlsh:test01 > create user cass with password ' cass@111 ' ;
cassandra@cqlsh:test01 > login cass
Password:
cass@cqlsh:test01 > select * from test01.test01;
Unauthorized: Error from server: code=2100 [Unauthorized] message=" User cass has no SELECT permission on or any of its parents"
cass@cqlsh:test01 > login cassandra
Password:
cassandra@cqlsh:test01 > grant dev to cass;
cassandra@cqlsh:test01 > login cass
Password:
cass@cqlsh:test01 > select * from test01.test01;
key | C0 | C1 | C2 | C3 | C4
-----+----+----+----+----+----
( 0 rows)
Cassandra中角色是可加的,这表示,如果授权一个用户的任意一个角色有某个特定的权限,那么这个用户就会授权这个权限。
在后台Cassandra把用户和角色存储在system_auth 键空间。如果为集群配置的授权,那么只有管理员用户可以访问这个键空间,所以使用管理员用户登录cqlsh来检查这个键空间内容;
cassandra@cqlsh:system> use system_auth;
cassandra@cqlsh:system_auth > desc tables;
resource_role_permissons_index role_permissions role_members roles
cassandra@cqlsh:system_auth >
cassandra@cqlsh:system_auth > select * from role_members;
role | member
------+--------
dev | cass
( 1 rows)
cassandra@cqlsh:system_auth > select * from role_permissions;
role | resource | permissions
------+-------------+--------------------------------------------------------------
dev | data/test01 | {' ALTER ' , ' AUTHORIZE ' , ' CREATE ' , ' DROP ' , ' MODIFY ' , ' SELECT ' }
( 1 rows)
cassandra@cqlsh:system_auth > select * from resource_role_permissons_index;
resource | role
-----------+-----------
roles /dev | cassandra
( 1 rows)
cassandra@cqlsh:system_auth > select * from roles;
role | can_login | is_superuser | member_of | salted_hash
-----------+-----------+--------------+-----------+--------------------------------------------------------------
cassandra | True | True | null | $2a$10 $6q2SqzrdcARz6qGcLj7DreKWAnQjJT653r4acBAJlHWzQW/e/4SQm
cass | True | False | {' dev ' } | $2a$10 $Z/KpRFIkmhQ6uEn45eDa4eyymaj/sty6LN1MDBfZdrxZwHnMI8ow2
dev | False | False | null | null
( 3 rows)
实际上并没有一个单独的数据库级用户的概念,Cassandra使用角色概念来耿总用户以及角色。
改变system_auth 副本因子 需要指出重要的一点,system_auth键空间默认配置为使用SimpleStrategy,副本因子为1.
这说明默认情况下,我们配置的任何用户,角色和权限不会再集群上分布存储,除非我们重新配置system_auth键空间 的复制策略,使之与我们的集群拓扑一致。
加密 从3.0版本开始,Cassandra通过客户端与服务器(节点)间的加密以及节点间的加密来保护数据的安全。Cassandra3.0以后,只有DataStax企业版的Cassandra才支持数据文件(静态数据)加密。
数据文件加密路线图
有很多Cassandra JIRA请求都说针对提供加密特性的3.x版本系列。
提示的加密: https://issues.apache.org/jira/browse/CASSANDRA-11040
提交日志的加密: https://issues.apache.org/jira/browse/CASSANDRA-6018
SSTable的加密: https://issues.apache.org/jira/browse/CASSANDRA-9633/7922
你可能感兴趣的:(实战-Cassandra之账号权限管理)
2025最新Nginx高频面试题
莫非技术栈
linux nginx nginx 运维
2025最新Nginx高频面试题摘要:本文整理了2025年企业高频Nginx面试题,覆盖核心原理、配置优化、安全防护及云原生场景实战,助你轻松应对技术面试!核心原理篇1.Nginx的Master-Worker架构优势是什么?答案:高并发处理:Worker进程独立处理请求,避免单线程阻塞。热升级:通过信号控制实现服务不中断升级(如kill-USR2)。资源隔离:Worker进程崩溃不影响整体服务。2
c++之移动构造函数或者移动赋值运算符的作用
_DCG_
c++ c++ 开发语言 移动构造
原理介绍前面的文章中有的涉及到了移动构造函数或者移动赋值运算符,对于它们的形式有了一定的了解,但是对他们的核心作用以及为什么要引入这两个东东,很多朋友还是一知半解。本文就是来解决这个问题的。要理解这个问题绕不开右值引用,c++11之前的版本中只有拷贝构造函数,而拷贝构造函数是一般会深拷贝,即会创建两个完全一样的对象,包括指针指向的区域都会进行重新申请内存和拷贝。这种情况下如果对象是一个大数组或占用
MySQL 之并发控制(Concurrent Control in MySQL)
Linux运维老纪
用心耕耘 开启数据库之门 mysql 数据库 运维开发 云计算
MySQL之并发控制1MySQL架构和性能优化1.5并发控制所谓并发控制:是指多个进程同时读写一条数据的时候数据库对此情况的处理方式。1.5.1锁机制锁类型锁类型说明读锁共享锁,也称为S锁,只读不可写(包括当前事务),多个读互不阻塞写锁独占锁,排它锁,也称为X锁,写锁会阻塞其它事务(不包括当前事务)的读和写S锁和S锁是兼容的,X锁和其它锁都不兼容,举个例子,事务T1获取了一个行r1的S锁,另外事务
深入探索STM32的I2C通信:从原理到实战
2401_87067267
stm32 单片机
在嵌入式系统开发中,通信接口是实现设备间数据交互的关键桥梁。今天,我想和大家分享自己在学习STM32的I2C通信过程中的心得与体会,希望能帮助正在学习这部分内容的朋友。一、I2C通信原理基础I2C(Inter-IntegratedCircuit),即集成电路总线,是一种由飞利浦公司开发的简单、双向二线制同步串行总线。它仅用两条线(SCL时钟线和SDA数据线)就可以在连接到总线上的多个设备之间进行通
AVM 环视拼接 鱼眼相机
选与握
# 环视拼接 AVM
https://zhuanlan.zhihu.com/p/651306620AVM环视拼接方法介绍从内外参推导IPM变换方程及代码实现(生成AVM环视拼接图)_avm拼接-CSDN博客经典文献阅读之--ExtrinsicSelf-calibrationoftheSurround-viewSystem:AWeakly...(环视系统的外参自标定)-CSDN博客经典文献阅读之--:AWeakly...
【项目实战】使用JUC常用工具类java.util.concurrent.Semaphore实现接口限流实战
本本本添哥
002 - 进阶开发能力 Z - Inbox2 java 开发语言
一、需求描述使用JUC常用工具类java.util.concurrent.Semaphore,来实现接口限流二、需求实现要使用JUC(Java并发工具)中的Semaphore实现接口限流(1)创建一个Semaphore实例,设置最大许可数(2)在接口调用前,获取许可(3)在接口调用完成后,释放许可。以下是一个简单的示例,示例中,当接口被调用时,会先尝试获取许可,如果许可不足,则返回提示信息;如果许
pandas之DataFrame使用
梨的橙
数据分析 pandas 数据分析 人工智能
DataFrame是pandas中常用的数据结构,并且在数据分析中使用非常方便、简洁,总结如下。1、介绍DataFrameDataFrame是pandas中的表格型数据结构,可以理解为xlsx中的表格;它含N个有序的列,每一列可以是不同的值类型(数值、字符串、布尔型值),也可以理解为由Series组成的字典(Series是padas中一种基础数据结构,理解为表格中的一列);此外DataFrame是
《深入理解JVM》实战笔记(三): 垃圾收集器与垃圾收集算法
西瓜拍两瓣
jvm java 开发语言
序言Java语言的核心优势之一是其自动内存管理机制,而这一功能的实现依赖于Java虚拟机(JVM)的垃圾回收(GarbageCollection,GC)系统。GC通过自动识别和回收不再使用的内存对象,极大地降低了开发者手动管理内存的负担,避免了C/C++中常见的内存泄漏和悬挂指针问题。然而,GC并非完美的“万能钥匙”,不同的垃圾收集算法和收集器在性能、停顿时间和内存使用效率上表现迥异,直接影响应用
python代替按键精灵 游戏内失灵_python游戏脚本之调用按键精灵插件模拟输入(二)...
河星星
python代替按键精灵 游戏内失灵
我们准备在python中调用按键精灵的大漠插件来完成模拟驱动的鼠标键盘操作。大漠综合插件(dm.dll)采用vc6.0编写,识别速度超级快!采用COM接口编写,适用于所有语言调用。网上相关教程极少,我们只能一步步自己摸索。首先下载大漠核心组件dm.dll,在win10的新版总是出现闪退bug,为了稳定性,选择比较老的3.2xxx版本了。下载地址下载解压后,将dm.dll复制到C:\Windows\
(附源码)ssm基于WEB的房屋出租管理系统 毕业设计261620
Wx-bishekaifayuan
spring boot mysql java python php
房屋出租管理系统的设计与实现摘要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对房屋出租管理等问题,对房屋出租管理进行研究分析,然后开发设计出房屋出租管理系统以解决问题。房屋出租管理系统主要功能模块包括用户管理、房屋资讯、资讯分类、房型管理、地区管理、房屋信息、租赁登记、租赁合
《Python百炼成仙》21-30章(不定时跟新)
Monkey_Jun
python 安全 web安全 小说 修仙
第廿一章列表开天·可变序列初成不周山的擎天玉柱裂开蛛网纹路,山体内部传出数据结构崩塌的轰鸣。叶军踏着《数据结构真解》残页凌空而立,手中薛香的本命玉尺泛起列表操作的幽光:补天石序列=[五色石]*9补天石序列[3]=息壤#引发链式变异楔子·共工之怒山腹深处涌出猩红的append()玄光,共工残魂在岩浆中咆哮:while天穹漏洞数量>0:补天石序列.append(五色石)天穹漏洞数量-=1叶军挥剑斩断失
【中文】Joomla1.7扩展介绍之GTranslate(自动翻译模块)
weixin_33981932
javascript 人工智能 xhtml ViewUI
GTranslate插件分类:Automatictranslations支持版本:1.5/1.6/1.7关注程度:【最流行的】所属类型:模块这个模块使用Google翻译你网页的能力,用58种语言在你的站点上,对超过98%网络用户有效。GTranslate-从窗口看世界。特点:*隐藏弹出式“建议更好的翻译”*隐藏翻译后的Google顶层框架*鼠标悬停效果*分析特征*国旗(图标)组合在一个文件中使之载
75、Go语言并发利器:context包深度解析与实战技巧
多多的编程笔记
golang 开发语言 后端
Go语言开发:context包:学习context包,实现跨Goroutine的上下文传递本文将带你了解Go语言中的context包,学习如何使用它来实现跨Goroutine的上下文传递。我们将从基础概念入手,通过实际案例和技巧,帮助你更好地理解和应用context包。1.context包简介在Go语言中,Goroutine是并发编程的基础。然而,当我们在多个Goroutine之间进行数据传递时,
零基础到精通Java合集
羽轩GM
Java教程
Java从零基础到精通合集课程大纲,共分为6个阶段、50+个课程模块,每个课程控制在15分钟以内,结合实战案例与高频面试题,适合碎片化学习:第一阶段:Java基础与开发环境搭建(8课时)目标:掌握基础语法与环境配置,完成首个Java程序开发Java开发环境搭建JDK安装与跨平台原理IntelliJIDEA快速入门与HelloWorld编写环境变量配置(PATH与CLASSPATH)数据类型与运算符
回溯算法之子集问题
比奇堡的天没有云
刷题笔记 算法
文章目录1.前言2.子集问题3.子集中去重1.前言本文讲解回溯算法中的另一类问题,也就是子集问题。子集问题和组合问题类似,只是收集结果的时机不同。如果对组合问题不太了解,可以看一下我的这两篇文章回溯算法之组合和排列问题和回溯算法之组合和排列结果如何去重2.子集问题题目来自于https://leetcode.cn/problems/subsets/description/给你一个整数数组nums,数
iOS Viper架构实战教程:基于caojunhua/iOS_Viper
郑眉允Well-Born
iOSViper架构实战教程:基于caojunhua/iOS_ViperiOS_Viper项目地址:https://gitcode.com/gh_mirrors/io/iOS_Viper本教程将引导您深入了解并实践一个典型的iOSViper架构项目,该项目托管在GitHub,旨在教授您如何理解和运用Viper模式在您的iOS开发中。1.目录结构及介绍iOS_Viper项目采用了精心设计的目录结构来
小白基于postman测试百度翻译接口
恒旭123
postman
准备postman这个网上信息都有,请自行参考准备百度翻译接口参数百度翻译接口信息可以参考:https://zhuanlan.zhihu.com/p/81945858?utm_source=wechat_session&utm_id=0个人验证实例1)阅读API技术文档2)APPID的参数。要成为注册开发者,才能拥有。注册开发者,获取APPID(百度管理控制台中)参考:使用您的百度账号登录百度翻译
pytest之什么是 parametrize参数化?
北凡说测试
python pytest
前言我们都知道pytest和unittest是兼容的,但是它也有不兼容的地方,比如ddt数据驱动,测试夹具fixtures(即setup、teardown)这些功能在pytest中都不能使用了,因为pytest已经不再继承unittest了。不使用ddt数据驱动那pytest是如何实现参数化的呢?答案就是mark里自带的一个参数化标签。一、源码解读关键代码:@pytest.mark.paramet
HarmonyOS Next跨设备剪贴板技术解析
harmonyos
在HarmonyOSNext系统里,跨设备剪贴板的出现让多设备间的数据共享变得轻松又高效。咱们先来说说它的原理。当用户在设备A复制数据时,系统剪贴板服务会对数据进行处理,然后通过设备间的连接通道(比如Wi-Fi、蓝牙,在同一局域网下效果更佳)将数据同步到设备B的剪贴板服务。这个过程中,设备A和设备B需要登录同一华为账号,并且都要打开Wi-Fi和蓝牙开关,这样才能确保数据能准确无误地传输。从数据同步
Linux C语言TCP协议实战
:눈_눈:
Linux系统编程 linux c语言 tcp/ip
文章目录1.TCP简介2.搭建框图3.相关函数介绍3.1socket函数3.2bind函数3.3listen函数3.4accept函数3.5connect函数3.6send函数3.7recv函数3.8其他函数4.实战4.1一对一模型4.1.1server.c4.1.2client.c4.1.3终端结果4.2多进程模型4.2.1server.c4.2.2client.c4.2.3终端结果4.3多线程
大模型开发和微调工具Llama-Factory-->WebUI
m0_74823705
llama
WebUILLaMA-Factory支持通过WebUI零代码微调大模型。通过如下指令进入WebUIllamafactory-cliwebui#如果是国内,#USE_MODELSCOPE_HUB设为1,表示模型从ModelScope魔搭社区下载。#避免从HuggingFace下载模型导致网速不畅USE_MODELSCOPE_HUB=1llamafactory-cliwebui1.训练在模型开始训练之
神经网络之CNN文本识别
邪恶的贝利亚
神经网络 cnn 人工智能
1.参考我的第一篇文章了解CNN概念神经网络之CNN图像识别(torchapi调用)-CSDN博客2.框架目前对NLP的研究分析应用最多的就是RNN系列的框架,比如RNN,GRU,LSTM等等,再加上Attention,基本可以认为是NLP的标配套餐了。但是在文本分类问题上,相比于RNN,CNN的构建和训练更为简单和快速,并且效果也不差,所以仍然会有一些研究。那么,CNN到底是怎么应用到NLP上的
【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.3.1单节点安装(Docker与手动部署)
言析数智
实战 elasticsearch docker 大数据
点击关注不迷路点击关注不迷路点击关注不迷路文章大纲10分钟快速部署`Elasticsearch`单节点环境1.系统环境要求1.1硬件配置推荐1.2软件依赖2.`Docker`部署方案2.1部署流程2.2参数说明2.3性能优化建议3.手动部署方案3.1安装步骤3.2核心配置项3.3启动服务4.部署方式对比5.验证安装结果5.1基础健康检查5.2性能测试6.常见问题排查6.1启动失败问题6.2性能优化
python数据分析入门与实战王静_Keras快速上手:基于Python的深度学习实战
weixin_39724362
1准备深度学习的环境11.1硬件环境的搭建和配置选择.........................11.1.1通用图形处理单元..........................31.1.2你需要什么样的GPU加速卡....................61.1.3你的GPU需要多少内存.......................61.1.4是否应该用多个GPU..............
分布式Session
长勺
Java基础 分布式
我用「餐厅点餐+代码实战」帮你彻底搞懂分布式Session,看完不仅能应对面试,还能直接应用到实际开发。先记住这个核心矛盾:多服务员如何记住同一顾客的喜好?一、从生活场景理解Session的本质传统单机场景(小餐馆)服务员:Tom(唯一服务员)工作流程:顾客首次点餐→Tom给纸质会员卡(SessionID)Tom把顾客口味记录在自己的笔记本(服务器内存)顾客下次出示会员卡→Tom查笔记本提供服务分
网络Web存储之LocalStorage
Hopebearer_
前端 javascript es6 web
文章目录LocalStorage介绍定义特点兼容性常用方法存值取值删除指定键值对清空所有键值对通过索引获取键名获取所有值判断是否含有某个键(key)拓展遍历得到key存储和读取复杂类型的数据应用场景LocalStorage介绍定义LocalStorage是HTML5提供的一种客户端存储机制,属于Web存储API的一部分。它允许网页在用户的浏览器中存储键值对数据,这些数据会以持久化的方式保存,除非用
系统设计:扫码登录流程,5个流程图告诉你!
试着奔跑的菜鸟
系统设计 系统设计
背景说明扫码登陆是我们在各种应用系统中最常见的逻辑之一,即使是公司后端系统也非常常见,例如我们的系统与企业微信进行绑定,需要用户扫描后自动登陆自己的工号进入系统。操作流程系统执行流程为了更加便于说明和理解,我们将扫码登陆的流程分为两大部分进行阐述前端处理流程请求二维码流程判断二维码的状态跳转登录后端处理流程生成二维码流程确认登陆流程流程图说明前端处理流程:扫码的前提是手机端已经登陆了账号前端(PC
Hive之正则表达式
三生暮雨渡瀟瀟
hive hive 正则表达式
Hive版本:hive-3.1.2目录一、Hive的正则表达式概述1.1字符集合1.2边界集合1.3量词(重复次数)集合1.4转义操作符1.5运算符优先级二、Hive正则表达式案例2.1like2.2rlike2.3regexp2.4regexp_replace正则替换2.5regexp_extract正则提取2.6、hive实现Oracle中的REGEXP_SUBSTR三、完整代码示例场景:清洗
Hive之正则表达式RLIKE详解及示例
三生暮雨渡瀟瀟
hive hive 正则表达式
目录一、RLIKE语法及核心特性1.基本语法2.核心特性二、常见业务场景及示例场景1:过滤包含特定模式的日志(如错误日志)场景2:验证字段格式(如邮箱、手机号)场景3:提取复杂文本中的关键词场景4:排除无效数据(如非数字字符)三、高级用法与技巧1.忽略大小写匹配2.匹配多行文本3.组合多个条件四、性能优化建议1.避免全表扫描2.预编译正则模式3.简化正则表达式五、常见问题与注意事项1.转义字符问题
flutter实战!2021年Android网络编程总结篇,移动架构师成长路线
椰果学Android
程序员 android
什么是中年危机根据权威数据显示,国内IT程序员鼎盛时期是在25-27岁左右,30岁对于程序员而言完全是一个38线,接着就是转业转岗的事情,这一点在业界也算是一个共识了。大学毕业步入IT行业普遍年龄也是在22岁左右,然而22-30岁之间也就是8年左右的时间,那么27岁也就是职业生涯“中年”的开始,那么作为程序员的你有准备好如何度过“中年危机”吗?当程序猿到了28岁左右的“中年危机”就不一样了,这个年
SAX解析xml文件
小猪猪08
xml
1.创建SAXParserFactory实例
2.通过SAXParserFactory对象获取SAXParser实例
3.创建一个类SAXParserHander继续DefaultHandler,并且实例化这个类
4.SAXParser实例的parse来获取文件
public static void main(String[] args) {
//
为什么mysql里的ibdata1文件不断的增长?
brotherlamp
linux linux运维 linux资料 linux视频 linux运维自学
我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。
当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。
一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 innodbfileper_table,所以问题是:
ibdata1存了什么?
当你启用了 i
Quartz-quartz.properties配置
eksliang
quartz
其实Quartz JAR文件的org.quartz包下就包含了一个quartz.properties属性配置文件并提供了默认设置。如果需要调整默认配置,可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认的设置。
下面是这些默认值的解释
#-----集群的配置
org.quartz.scheduler.instanceName =
informatica session的使用
18289753290
workflow session log Informatica
如果希望workflow存储最近20次的log,在session里的Config Object设置,log options做配置,save session log :sessions run ;savesessio log for these runs:20
session下面的source 里面有个tracing
Scrapy抓取网页时出现CRC check failed 0x471e6e9a != 0x7c07b839L的错误
酷的飞上天空
scrapy
Scrapy版本0.14.4
出现问题现象:
ERROR: Error downloading <GET http://xxxxx CRC check failed
解决方法
1.设置网络请求时的header中的属性'Accept-Encoding': '*;q=0'
明确表示不支持任何形式的压缩格式,避免程序的解压
java Swing小集锦
永夜-极光
java swing
1.关闭窗体弹出确认对话框
1.1 this.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
1.2
this.addWindowListener (
new WindowAdapter () {
public void windo
强制删除.svn文件夹
随便小屋
java
在windows上,从别处复制的项目中可能带有.svn文件夹,手动删除太麻烦,并且每个文件夹下都有。所以写了个程序进行删除。因为.svn文件夹在windows上是只读的,所以用File中的delete()和deleteOnExist()方法都不能将其删除,所以只能采用windows命令方式进行删除
GET和POST有什么区别?及为什么网上的多数答案都是错的。
aijuans
get post
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历
前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。
这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把G
谈谈新浪微博背后的那些算法
aoyouzi
谈谈新浪微博背后的那些算法
本文对微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多。当然,本文覆盖的主题并不全,比如好友推荐、热点跟踪等就没有涉及到。但古人云“窥一斑而见全豹”,希望本文的介绍能帮助大家更好的理解微博这样的社交网络应用。
微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针
Connection reset 连接被重置的解决方法
百合不是茶
java 字符流 连接被重置
流是java的核心部分,,昨天在做android服务器连接服务器的时候出了问题,就将代码放到java中执行,结果还是一样连接被重置
被重置的代码如下;
客户端代码;
package 通信软件服务器;
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.O
web.xml配置详解之filter
bijian1013
java web.xml filter
一.定义
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.my.app.EncodingFilter</filter-class>
<init-param>
<param-name>encoding<
Heritrix
Bill_chen
多线程 xml 算法 制造 配置管理
作为纯Java语言开发的、功能强大的网络爬虫Heritrix,其功能极其强大,且扩展性良好,深受热爱搜索技术的盆友们的喜爱,但它配置较为复杂,且源码不好理解,最近又使劲看了下,结合自己的学习和理解,跟大家分享Heritrix的点点滴滴。
Heritrix的下载(http://sourceforge.net/projects/archive-crawler/)安装、配置,就不罗嗦了,可以自己找找资
【Zookeeper】FAQ
bit1129
zookeeper
1.脱离IDE,运行简单的Java客户端程序
#ZkClient是简单的Zookeeper~$ java -cp "./:zookeeper-3.4.6.jar:./lib/*" ZKClient
1. Zookeeper是的Watcher回调是同步操作,需要添加异步处理的代码
2. 如果Zookeeper集群跨越多个机房,那么Leader/
The user specified as a definer ('aaa'@'localhost') does not exist
白糖_
localhost
今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist
最后找原因发现删除操作做了触发器,而触发器里面有这样一句
/*!50017 DEFINER = ''aaa@'localhost' */
原来最初
javascript中showModelDialog刷新父页面
bozch
JavaScript 刷新父页面 showModalDialog
在页面中使用showModalDialog打开模式子页面窗口的时候,如果想在子页面中操作父页面中的某个节点,可以通过如下的进行:
window.showModalDialog('url',self,‘status...’); // 首先中间参数使用self
在子页面使用w
编程之美-买书折扣
bylijinnan
编程之美
import java.util.Arrays;
public class BookDiscount {
/**编程之美 买书折扣
书上的贪心算法的分析很有意思,我看了半天看不懂,结果作者说,贪心算法在这个问题上是不适用的。。
下面用动态规划实现。
哈利波特这本书一共有五卷,每卷都是8欧元,如果读者一次购买不同的两卷可扣除5%的折扣,三卷10%,四卷20%,五卷
关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要
chenbowen00
struts WEB安全
因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。
下面记录下本次解决的过程以便后续
1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议,
而使用ftp协议默认会产生一个匿名用
[电力与暖气]煤炭燃烧与电力加温
comsci
在宇宙中,用贝塔射线观测地球某个部分,看上去,好像一个个马蜂窝,又像珊瑚礁一样,原来是某个国家的采煤区.....
不过,这个采煤区的煤炭看来是要用完了.....那么依赖将起燃烧并取暖的城市,在极度严寒的季节中...该怎么办呢?
&nbs
oracle O7_DICTIONARY_ACCESSIBILITY参数
daizj
oracle
O7_DICTIONARY_ACCESSIBILITY参数控制对数据字典的访问.设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.在9i及以上版本默认为false,8i及以前版本默认为true.如果设置为true就可能会带来安全上的一些问题.这也就为什么O7_DICTIONARY_ACCESSIBIL
比较全面的MySQL优化参考
dengkane
mysql
本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。
1、硬件层相关优化
1.1、CPU相关
在服务器的BIOS设置中,可
C语言homework2,有一个逆序打印数字的小算法
dcj3sjt126com
c
#h1#
0、完成课堂例子
1、将一个四位数逆序打印
1234 ==> 4321
实现方法一:
# include <stdio.h>
int main(void)
{
int i = 1234;
int one = i%10;
int two = i / 10 % 10;
int three = i / 100 % 10;
apacheBench对网站进行压力测试
dcj3sjt126com
apachebench
ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。
通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。
2种办法让HashMap线程安全
flyfoxs
java jdk jni
多线程之--2种办法让HashMap线程安全
多线程之--synchronized 和reentrantlock的优缺点
多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync)
HashMap不是线程安全的,往往在写程序时需要通过一些方法来回避.其实JDK原生的提供了2种方法让HashMap支持线程安全.
Spring Security(04)——认证简介
234390216
Spring Security 认证 过程
认证简介
目录
1.1 认证过程
1.2 Web应用的认证过程
1.2.1 ExceptionTranslationFilter
1.2.2 在request之间共享SecurityContext
1
Java 位运算
Javahuhui
java 位运算
// 左移( << ) 低位补0
// 0000 0000 0000 0000 0000 0000 0000 0110 然后左移2位后,低位补0:
// 0000 0000 0000 0000 0000 0000 0001 1000
System.out.println(6 << 2);// 运行结果是24
// 右移( >> ) 高位补"
mysql免安装版配置
ldzyz007
mysql
1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3、my-large.ini是为专用于一个SQL数据
MFC和ado数据库使用时遇到的问题
你不认识的休道人
sql C++ mfc
===================================================================
第一个
===================================================================
try{
CString sql;
sql.Format("select * from p
表单重复提交Double Submits
rensanning
double
可能发生的场景:
*多次点击提交按钮
*刷新页面
*点击浏览器回退按钮
*直接访问收藏夹中的地址
*重复发送HTTP请求(Ajax)
(1)点击按钮后disable该按钮一会儿,这样能避免急躁的用户频繁点击按钮。
这种方法确实有些粗暴,友好一点的可以把按钮的文字变一下做个提示,比如Bootstrap的做法:
http://getbootstrap.co
Java String 十大常见问题
tomcat_oracle
java 正则表达式
1.字符串比较,使用“==”还是equals()? "=="判断两个引用的是不是同一个内存地址(同一个物理对象)。 equals()判断两个字符串的值是否相等。 除非你想判断两个string引用是否同一个对象,否则应该总是使用equals()方法。 如果你了解字符串的驻留(String Interning)则会更好地理解这个问题。
SpringMVC 登陆拦截器实现登陆控制
xp9802
springMVC
思路,先登陆后,将登陆信息存储在session中,然后通过拦截器,对系统中的页面和资源进行访问拦截,同时对于登陆本身相关的页面和资源不拦截。
实现方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23