我正在尝试调试问题,我正在尝试运行手动扫描来弄清楚发生了什么.
然而,似乎有些扫描工作,但大多数失败无论出于何种原因.
我们的hbase表中的键设置为hash_servername_timestamp,例如
123_servername.domain.com_1234567890. The hash can run from 0 to 199.
Run Code Online (Sandbox Code Playgroud)
当我跑:
scan'server_ased_data',{FILTER =>"KeyOnlyFilter()AND(PrefixFilter('0_'))",COLUMNS =>'raw_data:top',TIMERANGE => [1498514400000,1498515000000]}
我得到一些返回的行:
ROW COLUMN+CELL
0_app128021.sjc6.mydomain.com_1498514460 column=raw_data:top, timestamp=1498514502321, value=
0_app128021.sjc6.mydomain.com_1498514580 column=raw_data:top, timestamp=1498514622400, value=
<snip snip>
<snip snip>
0_app128021.sjc6.mydomain.com_1498514700 column=raw_data:top, timestamp=1498514742839, value=
179 row(s) in 177.4260 seconds
Run Code Online (Sandbox Code Playgroud)
但是,如果我跑:
scan'server_ased_data',{FILTER =>"KeyOnlyFilter()AND(PrefixFilter('1_'))",COLUMNS =>'raw_data:top',TIMERANGE => [1498514400000,1498515000000]}
我收到一个错误
ROW COLUMN+CELL
ERROR: Call id=86, waitTime=60002, operationTimeout=60000 expired.
Here is some help for this command:
Scan a table; pass table name and optionally a dictionary of scanner
specifications. Scanner specifications may include one or more of:
<snip snip>
<snip snip>
Run Code Online (Sandbox Code Playgroud)
我假设"0_"的工作原因是因为词典,它是第一个,与"1_"或"199_"相比,但我很困惑为什么"1_"不起作用.有人可以向我解释为什么这不起作用?
我还假设如果我增加超时时间,它可能有助于使其工作.有人能告诉我如何从hbase shell增加扫描的超时时间吗?
若要更改HBase的外壳的超时时间,您可以使用下面的命令进行hbase.client.operation.timeout或hbase.client.scanner.timeout.period:
001:0> @shell.hbase.configuration.get("hbase.client.scanner.timeout.period")
=> "60000"
002:0> @shell.hbase.configuration.setInt("hbase.client.scanner.timeout.period", 120000)
003:0> @shell.hbase.configuration.get("hbase.client.scanner.timeout.period")
=> "120000"
Run Code Online (Sandbox Code Playgroud)
或者(不是来自shell),您可以编辑该值,hbase-site.xml但是需要为HBase重新启动群集才能注意到更改.如:
<property>
<name>hbase.client.scanner.timeout.period</name>
<value>120000</value>
</property>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1334 次 |
| 最近记录: |