在过去,我曾经使用在MySQL上运行的OLAP多维数据集构建WebAnalytics.现在我使用OLAP多维数据集的方式只是一个大表(好吧,它比那更智能地存储),其中每一行基本上是一个测量或聚合的测量集.每个度量都有一堆维度(即哪个页面名称,用户名,ip等)和一堆值(即多少个综合浏览量,多少访问者等).
您在这样的表上运行的查询通常采用以下形式(meta-SQL):
SELECT SUM(hits), SUM(bytes),
FROM MyCube
WHERE date='20090914' and pagename='Homepage' and browser!='googlebot'
GROUP BY hour
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用上述过滤器获取所选日期中每小时的总计.一个障碍是这些立方体通常意味着全表扫描(各种原因),这意味着你可以制作这些东西的尺寸(在MiB中)的实际限制.
我正在学习Hadoop等的来龙去脉.
在BigTable上运行上述查询作为mapreduce看起来很容易:只需将'小时'作为键,在地图中过滤并通过对值进行求和来减少.
您是否可以在"实时"(即通过用户界面和用户得到他们的答案,而不是批处理模式)上运行BigTable类型的系统上面(或至少具有相同输出)的查询?
如果不; 在BigTable/Hadoop/HBase/Hive等领域做这样的事情的适当技术是什么?
我想开始学习大数据技术.我希望将来在这个领域工作.有没有人知道好书开始学习它?Hadoop,HBase.
初学者 - 中级 - 高级 -
提前致谢
我在hbase表"mytable"中有以下行和这些键
user_1
user_2
user_3
...
user_9999999
Run Code Online (Sandbox Code Playgroud)
我想使用Hbase shell删除以下行:
user_500到user_900
我知道没有办法删除,但有没有办法可以使用"BulkDeleteProcessor"来做到这一点?
我在这里看到:
我想粘贴导入然后将其粘贴到shell中,但不知道如何解决这个问题.有谁知道如何从jruby hbase shell使用这个端点?
Table ht = TEST_UTIL.getConnection().getTable("my_table");
long noOfDeletedRows = 0L;
Batch.Call<BulkDeleteService, BulkDeleteResponse> callable =
new Batch.Call<BulkDeleteService, BulkDeleteResponse>() {
ServerRpcController controller = new ServerRpcController();
BlockingRpcCallback<BulkDeleteResponse> rpcCallback =
new BlockingRpcCallback<BulkDeleteResponse>();
public BulkDeleteResponse call(BulkDeleteService service) throws IOException {
Builder builder = BulkDeleteRequest.newBuilder();
builder.setScan(ProtobufUtil.toScan(scan));
builder.setDeleteType(deleteType);
builder.setRowBatchSize(rowBatchSize);
if (timeStamp != null) {
builder.setTimestamp(timeStamp);
}
service.delete(controller, builder.build(), rpcCallback);
return rpcCallback.get();
}
};
Map<byte[], BulkDeleteResponse> result = ht.coprocessorService(BulkDeleteService.class, scan
.getStartRow(), scan.getStopRow(), callable);
for (BulkDeleteResponse …Run Code Online (Sandbox Code Playgroud) MongoDB(基于文档),HBase(基于列)和Neo4j(对象图)的优缺点是什么?
我特别想知道每个用例的一些典型用例.
也许任何Slideshare或Scribd值得介绍?
我有一个Hbase表X,我想创建它的精确副本并命名为Y.有人能让我知道它是如何可能的吗?
谢谢
我是hadoop的新手.我知道HCatalog是Hadoop的表和存储管理层.但它究竟是如何工作以及如何使用它.请举一些简单的例子.
我有以下作为启动火花流工作的命令行.
spark-submit --class com.biz.test \
--packages \
org.apache.spark:spark-streaming-kafka_2.10:1.3.0 \
org.apache.hbase:hbase-common:1.0.0 \
org.apache.hbase:hbase-client:1.0.0 \
org.apache.hbase:hbase-server:1.0.0 \
org.json4s:json4s-jackson:3.2.11 \
./test-spark_2.10-1.0.8.jar \
>spark_log 2>&1 &
Run Code Online (Sandbox Code Playgroud)
作业无法启动以下错误:
Exception in thread "main" java.lang.IllegalArgumentException: Given path is malformed: org.apache.hbase:hbase-common:1.0.0
at org.apache.spark.util.Utils$.resolveURI(Utils.scala:1665)
at org.apache.spark.deploy.SparkSubmitArguments.parse$1(SparkSubmitArguments.scala:432)
at org.apache.spark.deploy.SparkSubmitArguments.parseOpts(SparkSubmitArguments.scala:288)
at org.apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArguments.scala:87)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:105)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Run Code Online (Sandbox Code Playgroud)
我已经尝试删除格式并返回单行,但这不能解决问题.我也试过了很多变化:不同的版本,添加_2.10到artifactId的末尾,等等.
根据文档(spark-submit --help):
坐标的格式应为groupId:artifactId:version.
所以我所拥有的应该是有效的,并且应该参考这个包.
如果它有帮助,我正在运行Cloudera 5.4.4.
我究竟做错了什么?如何正确引用hbase包?
hbase-site.xml中的zookeeper仲裁设置究竟是什么?