① Hbase手動設置時間戳,無法刪除數據,怎麼辦
1. Native Java API,最常規和高效的訪問方式,適合Hadoop MapRece Job並行批處理HBase表數據。
2. HBase Shell,HBase的命令行工具,最簡單的介面,適合HBase管理使用。
3. Thrift Gateway,利用Thrift序列化技術,支持C++,PHP,Python等多種語言,適合其他異構系統在線訪問HBase表數據。
4. REST Gateway,支持REST 風格的Http API訪問HBase, 解除了語言限制。
5. Pig,可以使用Pig Latin流式編程語言來操作HBase中的數據,和Hive類似,本質最終也是編譯成MapRece Job來處理HBase表數據,適合做數據統計。
6. Hive,當前Hive的Release版本尚沒有加入對HBase的支持,但在下一個版本Hive 0.7.0中將會支持HBase,可以使用類似SQL語言來訪問HBase。
HBase數據模型Table & Column Family。
② hbase 時間戳如何排序
1.數據查詢模式已經確定,且不易改變,就是說hbase使用在某種種特定的情況下,且不能變動。版2.告訴插入,大權量讀齲因為分布式系統對大量數據的存取更具優勢。3.盡量少的有數據修改。因為hbase中的數據修改知識在後面添加一行新數據,表示覆蓋前一...
③ hbase的timestamp怎麼換算 java
hbase shell中timestamp轉為可讀格式
將 shell的timestamp轉為可讀。下面的示例將-ROOT-表的列info:serverstartcode的timestamp和value轉成可讀格式。
hbase(main):001:0> scan '-ROOT-'
ROW COLUMN+CELL
.META.,,1 column=info:regioninfo, timestamp=1340249081981, value={NAME => '.META.,,
1', STARTKEY => '', ENDKEY => '', ENCODED => 1028785192,}
.META.,,1 column=info:server, timestamp=1341304672637, value=Hadoop46:60020
.META.,,1 column=info:serverstartcode, timestamp=1341304672637, value=1341301228326
.META.,,1 column=info:v, timestamp=1340249081981, value=\x00\x00
1 row(s) in 1.3230 seconds
hbase(main):002:0> import java.util.Date
=> Java::JavaUtil::Date
hbase(main):003:0> Date.new(1341304672637).toString()
=> "Tue Jul 03 16:37:52 CST 2012"
hbase(main):004:0> Date.new(1341301228326).toString()
=> "Tue Jul 03 15:40:28 CST 2012"
在shell中,如果有可讀日期,能否轉成long類型呢?
hbase(main):005:0> import java.text.SimpleDateFormat
=> Java::JavaText::SimpleDateFormat
hbase(main):006:0> import java.text.ParsePosition
=> Java::JavaText::ParsePosition
hbase(main):015:0> SimpleDateFormat.new("yy/MM/dd").parse("12/07/03",ParsePosition.new(0)).getTime()
=> 1341244800000
④ Hbase手動設置時間戳,無法刪除數據,怎麼辦
改時間戳,會帶來很多問題。
首先對於樓主出現的問題,應該是自己封裝的問題。
對於第一個問題:
//數據插入,人為不設置時間戳,數據能刪除,但是不能錄入多版本數據
put.add(Bytes.toBytes(colFamily.getColumnFamilyName()),
Bytes.toBytes(col.getColumnName()),
Bytes.toBytes(col.getValue()));
認為不設置時間戳,數據是能刪除和錄入多版本數據的,這是毋庸置疑的。
對於第二個問題
//數據插入,人為設置時間戳,數據不能刪除,但是能錄入多版本數據
put.add(Bytes.toBytes(colFamily.getColumnFamilyName()),
Bytes.toBytes(col.getColumnName()),
col.getTimeStamp(), Bytes.toBytes(col.getValue()));
hbase自帶的時間戳是精確到毫秒的.樓主可查看時間戳是否有相同的。務必自己生成具有唯一性的時間戳