我想在特定的datanode \ regionserver,
中插入数据需要对此进行哪些配置更改?
假设有4个数据节点A,B,C,D主机名。并且正在运行4个线程。一个线程只在datanode A和B上插入记录。另一个线程是在datanode C中插入\访问记录。第四个线程在C和D中插入记录。
我可以为这种类型的插入做任何配置吗?哪个hbase \ hadoop API将用于程序化插入\访问?
还有一件事,我们可以在客户端Java应用程序和hbase db以及hadoop集群中指定相同的字符格式(UTF8)吗?
的问候, rashmi
答案 0 :(得分:1)
使用hbase,您无法真正定位特定的datanode或regionserver。我想你可以定位一个特定的区域,如果你确定每个区域服务器只有一个区域,那么它非常接近你想要的。我可以说这不是hbase的典型使用模式,所以我会确保这真的是你想要的。
要管理区域,您需要通过将hbase.hregion.max.filesize设置为100GB并手动预分割来禁用拆分。您可以使用HBaseAdmin类预分割表。
就字符格式而言,hbase没有数据类型或字符集 - 所有内容都存储为字节 - 因此使用utf8应该没有问题。
如果您使用的是java,则可以使用standard java API。对于其他语言,您可以选择Thrift,Avro和REST接口,但它们都不会像使用Java API一样快。