标签: hbase

我应该用文档数据库重建我的PHP网站以提高性能吗?

我们有一个用PHP开发的MySQL网站,当流量增加时有时会遇到问题.我们几乎以各种方式优化了网站以处理更多请求,但在高峰时段仍然面临问题.

我的一位朋友建议使用HBase/MongoDB作为后端重建网站以提高性能.他还建议,如果我们重建它,我们可以轻松转向云服务.但我们需要学习整个事物并重新开发它.

这样做更好吗?

php mysql hbase mongodb

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

检查表是否存在

检查Hbase表是否存在的最快方法是什么?看看这个api:

http://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/client/HBaseAdmin.html以下 哪项是最快的:

  1. tableExists
  2. isTableEnabled
  3. isTableAvailable
  4. listTables

使用#4,您将获得所有表的列表并通过它进行迭代,并比较其中一个表是否与您的表名匹配.

还是有另一种更聪明的方式?

java hadoop hbase

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

什么用于实时日志聚合和查询?


我正在寻找可以帮助我聚合实时日志的工具/数据库/解决方案,并且可以实时查询它们.
基本要求是能够尽快交付结果,请记住,可能有许多事件要查询(可能是数十亿),但是日志会有很多"列",每个查询都会在这些列上设置一些条件,所以最终结果将是某种聚合,或者只返回一小部分行.

现在我正在看HDFS + HBase,这似乎是一个很好的解决方案.还有其他选择吗?你能推荐一下吗?

logging hbase real-time

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

结构化和非结构化索引 - Lucene和Hbase

我有一组需要索引的200M文档.每个文档都有一个自由文本和一组额外的稀疏元数据信息(100多列).

似乎自由文本索引的正确工具是Lucene,而结构化稀疏元数据的正确工具是HBase.

我需要查询数据并在自由文本搜索结果和结构化数据结果之间加入(例如,在其文本中获得所有具有短语"早安"的书籍于1980年首次发布).

我应该查看哪些工具/机制来加入结构化和未经检查的查询?结果可能包括数百万条记录(加入前后)

谢谢萨尔

lucene indexing hbase

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

是否可以立即向Hadoop Cluster中的所有其他节点显示写入HDFS或Hbase的内容?

如果Hadoop作业正在运行或正在进行中,如果我向HDFS或Hbase写入内容,那么该数据将对集群中的所有节点可见

1)立即?

2.)如果没有立即再经过多少时间?

3.)或者时间真的无法确定?

java hadoop hbase hive

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

以编程方式创建和加载HFile到HBase时,新条目不可用

我正在尝试以编程方式创建HFiles并将它们加载到正在运行的HBase实例中.我发现很多信息的HFileOutputFormat,并在LoadIncrementalHFiles

我设法创建了新的HFile,将其发送到集群.在群集Web界面中,将显示新的存储文件,但新的键范围不可用.

InputStream stream = ProgrammaticHFileGeneration.class.getResourceAsStream("ga-hourly.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String line = null;

Map<byte[], String> rowValues = new HashMap<byte[], String>();

while((line = reader.readLine())!=null) {
    String[] vals = line.split(",");
    String row = new StringBuilder(vals[0]).append(".").append(vals[1]).append(".").append(vals[2]).append(".").append(vals[3]).toString();
    rowValues.put(row.getBytes(), line);
}

List<byte[]> keys = new ArrayList<byte[]>(rowValues.keySet());
Collections.sort(keys, byteArrComparator);


HBaseTestingUtility testingUtility = new HBaseTestingUtility();
testingUtility.startMiniCluster();

testingUtility.createTable("table".getBytes(), "data".getBytes());

Writer writer = new HFile.Writer(testingUtility.getTestFileSystem(),
    new Path("/tmp/hfiles/data/hfile"),
    HFile.DEFAULT_BLOCKSIZE, Compression.Algorithm.NONE, KeyValue.KEY_COMPARATOR);

for(byte[] key:keys) {
    writer.append(new KeyValue(key, "data".getBytes(), "d".getBytes(), rowValues.get(key).getBytes()));
}

writer.appendFileInfo(StoreFile.BULKLOAD_TIME_KEY, Bytes.toBytes(System.currentTimeMillis()));
writer.appendFileInfo(StoreFile.MAJOR_COMPACTION_KEY, Bytes.toBytes(true)); …
Run Code Online (Sandbox Code Playgroud)

hadoop hbase bulk-load

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

Spark on YARN + Secured hbase

我正在向YARN(在spark 2.1.1 + kafka 0.10.2.1上)提交一份工作,该工作连接到一个安全的hbase集群.当我在"本地"模式下运行时,这项工作表现得很好(spark.master = local [*]).

但是,只要我将master作为YARN提交作业(并将部署模式作为客户端),我就会看到以下错误消息 -

Caused by: javax.security.auth.login.LoginException: Unable to obtain password from user
Run Code Online (Sandbox Code Playgroud)

我正在按照hortonworks的建议向纱线集群提供关于HBase和keytab等的信息.遵循这篇kb文章 - https://community.hortonworks.com/content/supportkb/48988/how-to-run-spark-job-to -interact与-固定-hbas.html

什么指针可能会发生什么?

登录HBase的机制:

UserGroupInformation.setConfiguration(hbaseConf)
val keyTab = "keytab-location") 
val principal = "kerberos-principal"
val ugi = UserGroupInformation.loginUserFromKeytabAndReturnUGI(principal, keyTab)
UserGroupInformation.setLoginUser(ugi)
ugi.doAs(new PrivilegedExceptionAction[Void]() {

override def run: Void = {
  hbaseCon = Some(ConnectionFactory.createConnection(hbaseConf))
  null
}
})
Run Code Online (Sandbox Code Playgroud)

此外,我尝试了登录的替代机制,如下所示:

UserGroupInformation.loginUserFromKeytab(principal, keyTab)
connection=ConnectionFactory.createConnection(hbaseConf)
Run Code Online (Sandbox Code Playgroud)

请建议.

hbase kerberos apache-spark hadoop2 spark-structured-streaming

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

HBase BufferedMutator与PutList性能

我最近遇到了BufferedMutator类的HBase,它可以用于批量插入和删除.我以前使用List来放置数据hTable.put(putList)以做同样的事情.对我的代码进行基准测试似乎并没有显示出太大的差异,而是我在做的事情mutator.mutate(putList);.使用BufferedMutator而不是PutList有显着的性能提升吗?

java optimization hbase hbase-client

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

HBase:创建多个表还是包含多个列的单个表?

什么时候创建多个表而不是创建具有大量列的单个表是有意义的。我知道表通常只有几个列族(1-2),每个列族可以支持1000多个列。

当HBase在单个表中可能包含大量列的情况下表现良好时,何时创建单独的表才有意义?

database-design hadoop hbase

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

HBase Scan基于特定的HFile作为根

是否有任何具有以下行为的扫描/过滤器API?

给定时间范围,我希望扫描仪包含来自HFiles的数据超出范围,包括在HFiles中的行键在范围内.我们的想法是扫描所有HFile的内存索引,但只从磁盘中获取来自HFile的rowkeys的数据.

例如,如果HFile1在范围内并且HFile2超出范围,并且rowkey1有任何数据HFile1,我想获取rowkey1from的所有列HFile2,就好像它在范围内一样.另一方面,如果rowkey2包含HFile2但不包括在内HFile1,索引扫描程序应该跳到下一行键.

用例是在最后X小时内加载已修改的整行(即使只在一列上),从而避免对冗余数据进行全面扫描或任何磁盘扫描.这将集成到Spark/MR应用程序中,可能基于TableSnapshotInputFormat,所以我想我可以为HRegion,HStore或其他任何东西发送一些自定义代码,如果有的话.

非常感谢

java hbase mapreduce hfile

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