小编Har*_*rry的帖子

Cassandra中的SASI索引及其与正常索引的不同之处

我开始使用SASI索引并使用以下设置,

CREATE TABLE employee (
    id int,
    lastname text,
    firstname text,
    dateofbirth date,
    PRIMARY KEY (id, lastname, firstname)
) WITH CLUSTERING ORDER BY (lastname ASC, firstname ASC));

CREATE CUSTOM INDEX employee_firstname_idx ON employee (firstname) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH OPTIONS = {'mode': 'CONTAINS', 'analyzer_class': 'org.apache.cassandra.index.sasi.analyzer.StandardAnalyzer', 'case_sensitive': 'false'};
Run Code Online (Sandbox Code Playgroud)

我执行以下查询,

SELECT * FROM employee WHERE firstname like '%s';
Run Code Online (Sandbox Code Playgroud)

根据我的研究,它似乎与Cassandra中的正常二级索引相同,除了提供LIKE搜索,

1)有人可以解释它与Cassandra的正常二级指数的区别吗?
2)什么是最好的配置,如mode,analyzer_class和case_sensitive - 为此推荐的任何文档?

谢谢,
哈利

cassandra cassandra-3.0

4
推荐指数
2
解决办法
2371
查看次数

将字节缓冲区转换为字符串在Java中不起作用

在运行时,我从设备获取字节缓冲区数据,试图对数据进行解码以读取其内容。

当我使用字符串打印字节缓冲区时,显示如下,

java.nio.HeapByteBuffer[pos=0 lim=3 cap=3]
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下所有已知格式进行解码,

       CharBuffer charBuffer = StandardCharsets.UTF_8.decode(paramByteBuffer);
       String text = charBuffer.toString();
       System.out.println("UTF-8"+text); 
       charBuffer = StandardCharsets.UTF_16.decode(paramByteBuffer);
       text = charBuffer.toString();
       System.out.println("UTF_16"+text); 
       charBuffer = StandardCharsets.ISO_8859_1.decode(paramByteBuffer);
       text = charBuffer.toString();
       System.out.println("ISO_8859_1"+text); 
       charBuffer = StandardCharsets.UTF_16BE.decode(paramByteBuffer);
       text = charBuffer.toString();
       System.out.println("UTF_16BE"+text); 
       charBuffer = StandardCharsets.UTF_16LE.decode(paramByteBuffer);
       text = charBuffer.toString();
       System.out.println("UTF_16LE"+text); 
       charBuffer = StandardCharsets.US_ASCII.decode(paramByteBuffer);
       text = charBuffer.toString();
       System.out.println("US_ASCII"+text); 
Run Code Online (Sandbox Code Playgroud)

一切都会返回空数据。

解码字节缓冲区数据的方法有哪些?

java bytebuffer decode

3
推荐指数
2
解决办法
7023
查看次数

在python中解析.ini文件

根据文档(https://docs.python.org/3/library/configparser.html),我使用configparser来解析 .ini 文件

代码 :

import ConfigParser
config = ConfigParser.ConfigParser(allow_no_value=True)
config.read('D:\\test\\sample.ini')
print(config.sections())
Run Code Online (Sandbox Code Playgroud)

示例 ini 文件 1:(工作)

[Group1]   
test_value1=0  
test_value2=5
Run Code Online (Sandbox Code Playgroud)

此代码正在运行,并且成功加载示例 ini file1

但很少有以下 ini 文件没有使用上面的代码进行解析,有人可以帮助我吗?

示例 ini 文件 2:(不工作)

[Group1]   
    test_value1=0  
    test_value2=5
Run Code Online (Sandbox Code Playgroud)

示例 ini 文件 3:(不工作)

   [Group1]
     [[inner_group1]]
       test_value1=0 
       test_value2=5
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

谢谢,
哈利

python configparser python-2.7 python-3.x

3
推荐指数
1
解决办法
3173
查看次数

有没有办法通过python反序列化java对象

我将 java 对象存储在 hbase 中(即)假设我有一个对象“用户”,它有 3 个参数,如名字、中间名和姓氏。我在java中使用了以下代码进行序列化

Object object = (object) user;    
byte[] byteData = SerializationUtils.serialize((Serializable) object);
Run Code Online (Sandbox Code Playgroud)

并存储在 hbase 中,就像“在 KeyValue 对的 Value 部分中存储完整对象(以上述 byte[] 格式)”

它像(示例)一样存储在 hbase 中

column=container:container, timestamp=1480016194005, value=\xAC\xED\x00\x05sr\x00&com.test.container\x07\x89\x83\xFA\x7F\xD0F\xA5\x02\x00\x0J08I \x00\x14dateTimeInLongFormatZ\x00\x04rootZ\x00\x09undefinedL\x00\x03keyt\x00\x12Ljava/lang/String;L\x00\x04modeq\x00~\x00\x01L\x00\x04\0x0\x04nameq\x0L \x06userIdq\x00~\x00\x01xp\x00\x00\x00\x02\x00\x00\x01X\x967\xBA\xF0\x00\x00t\x00\x1Econtainer_393_5639184004\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00txadmin\x004

当我尝试检索数据时,我在java中使用了以下反序列化并转换回可读格式的对象

object = SerializationUtils.deserialize(bytes);

I would like to retrieve the data stored in java format via happybase using python and I achieved it and received the data as available in hbase like
Run Code Online (Sandbox Code Playgroud)

它像(示例)一样存储在 hbase 中

column=container:container, timestamp=1480016194005, value=\xAC\xED\x00\x05sr\x00&com.test.container\x07\x89\x83\xFA\x7F\xD0F\xA5\x02\x00\x0J08I \x00\x14dateTimeInLongFormatZ\x00\x04rootZ\x00\x09undefinedL\x00\x03keyt\x00\x12Ljava/lang/String;L\x00\x04modeq\x00~\x00\x01L\x00\x04\0x0\x04nameq\x0L \x06userIdq\x00~\x00\x01xp\x00\x00\x00\x02\x00\x00\x01X\x967\xBA\xF0\x00\x00t\x00\x1Econtainer_393_5639184004\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00txadmin\x004

有没有办法通过python反序列化java对象

非常感谢

哈里

python java serialization hbase deserialization

2
推荐指数
1
解决办法
7058
查看次数

使shell脚本可执行

我有两个文件用于部署,

1)deploymentpackage.zip- >它包含几个shell脚本的数据库包.

2)deployment.sh- >它是主shell脚本,首先解压缩deploymentpackage.zip,然后执行其中的shell文件列表.

它按预期工作.

但我需要的是,我需要将zip文件设置为可执行文件,以便我不想同时提供deploymentpackage.zipdeployment.sh客户端.

那么是否有可能使deploymentpackage.zip可执行文件成为可执行文件,以便我不希望有另一个脚本deployment.sh.

期望:运行它deploymentpackage.zip应该解压缩同一个文件并运行其中的脚本列表.

谢谢,
哈利

linux bash shell

2
推荐指数
1
解决办法
359
查看次数

Soft Reference中GC在java中的作用

最近我看到这篇文章,它对 Jenkins 进行 GC 调整,其中讨论了这个参数:-XX:SoftRefLRUPolicyMSPerMB

https://jenkins.io/blog/2016/11/21/gc-tuning/

我理解它可以防止 OOM 错误,因为它在达到阈值时会清除软引用对象。

1) 这个阈值(-XX:SoftRefLRUPolicyMSPerMB 中默认 = 1000ms)是什么意思?这个值代表什么?

2)我的jenkins似乎有80%的软引用(使用HProf观察)

3)正如上面文章中所建议的,如果我将这个 -XX:SoftRefLRUPolicyMSPerMB 标志减少到 10ms 会产生什么后果?

注意:我们使用 G1GC

谢谢,
哈利

java garbage-collection soft-references g1gc jenkins

2
推荐指数
1
解决办法
5890
查看次数

提交日志不断增长中的问题

我有一台提交日志不断增加到7.8 GB并仍在增长的机器,我检查了commitlog_total_space_in_mb: 8192在cassandra.yaml中注释的属性。我怀疑它一定是默认值。

1)提交日志大小增加有什么问题?
2)是否说我的记忆力尚未达到?

编辑:

memtable_cleanup_threshold = 1 /(memtable_flush_writers + 1)*(memtable_offheap_space_in_mb + memtable_heap_space_in_mb)

推荐值在哪里

memtable_flush_writers -  Smaller of number of disks or number of cores with a minimum of 2 and a maximum of 8, so in our case it is '8'

memtable_offheap_space_in_mb - 1/4 of the heap size, so in our case it is 2GB
memtable_heap_space_in_mb - 1/4 of the heap size, so in our case it is 2GB
Run Code Online (Sandbox Code Playgroud)

因此计算将

 memtable_cleanup_threshold = 1/(8 + 1) * …
Run Code Online (Sandbox Code Playgroud)

cassandra cassandra-3.0

2
推荐指数
1
解决办法
379
查看次数

AWS Fargate 中的自动扩展策略之间的差异

我开始在 Amazon Web Service 中探索 Fargate,它按预期工作。
现在,当我尝试应用不同的自动缩放策略时,我无法理解步进缩放目标跟踪策略之间的区别

我了解逐步扩展策略是:

我们指定多个阈值以及不同的响应。

阈值 A - 当 CPU 利用率在 40% 到 50% 之间时添加 1 个实例

阈值 B - 当 CPU 利用率在 50% 到 70% 之间时添加 2 个实例

阈值 C - 当 CPU 利用率在 70% 到 90% 之间时添加 3 个实例

等等等等

(即)有多个阈值

1)但我不明白目标跟踪策略是如何工作的?
2)不确定步进扩展和目标跟踪策略之间的区别

谢谢,
哈利

amazon-web-services autoscaling aws-fargate

2
推荐指数
1
解决办法
6373
查看次数

如何只获取karaf中的活动包

我需要一个命令才能获得osgi/karaf中的活动包,

I know that scr:list / osgi:list will list all the bundles irrespective of state. 

Is there any other easy way to check all the bundles are active in karaf?
Run Code Online (Sandbox Code Playgroud)

问候,哈利

state osgi bundle apache-karaf karaf

1
推荐指数
1
解决办法
1106
查看次数

Cassandra 中的高可用性

1) 我有5 个节点集群 (172.30.56.60, 172.30.56.61, 172.30.56.62, 172.30.56.63, 172.30.56.129)

2)我创建了一个密钥空间,复制因子为 3
写入一致性为 3,我在表中插入了一行,分区为“1”,如下所示,

INSERT INTO user (user_id, user_name, user_phone) VALUES(1,'ram', 9003934069);

3) 我使用 nodetool getendpoints 实用程序验证了数据的位置,并观察到数据被复制到三个节点 60、129 和 62。

./nodetool getendpoints keyspacetest user 1
172.30.56.60
172.30.36.129
172.30.56.62
Run Code Online (Sandbox Code Playgroud)

4) 现在如果我关闭节点 60,Cassandra 需要将现有数据传输到'1,'ram', 9003934069'剩余节点(到 61 或 63)以将 RF 保持为“3”?

但是 Cassandra 没有这样做,所以这是否意味着如果节点 60、129 和 62 关闭,我将无法读取/写入表 'user' 中分区 '1' 下的任何数据?

问题1:所以即使我有5个节点的集群,如果它所在的数据/分区出现故障,集群就没有用了吗?

问题 2:如果两个节点关闭(例如:60 和 129 关闭)仍然 61,62 和 63 启动并运行,但我无法在写入一致性 = 3 的分区“1”中写入任何数据,为什么会这样?因为我能够以写入一致性 = 1 写入数据,所以这再次说明分区的数据仅在集群中的预定义节点中可用,无法重新分区?

如果我的问题的任何部分不清楚,请告诉我,我想澄清一下。

java high-availability cassandra cassandra-3.0

1
推荐指数
1
解决办法
1188
查看次数

Cassandra并发读写

我试图了解Cassandra并发读写.我遇到了被叫的房产

concurrent_reads (Defaults are 8)

A good rule of thumb is 4 concurrent_reads per processor core. May increase the value for systems with fast I/O storage
Run Code Online (Sandbox Code Playgroud)

所以根据定义,纠正我如果错了,4个线程可以同时访问数据库.所以,假设我正在尝试运行以下查询,

SELECT max(column1) from 'testtable' WHERE duration = 'month'; 
Run Code Online (Sandbox Code Playgroud)

我只是想尝试执行此查询,在执行此查询时将使用并发读取?

谢谢,
哈利

cassandra cassandra-3.0

0
推荐指数
1
解决办法
1742
查看次数