在我们有数据的情况下,我们正在努力查询hdfs。
我们有卡夫卡的消息来源。这些检测是实时的,我们希望能够通过数据进行搜索。作为一个集成工具,我们尝试使用flume或spark将数据保存到hdfs,并在查询hdfs顶部的数据后使用
蜂巢
spark jdbc/odbc服务器
.
目前,这种方法和
spark jdbc/odbc服务器
b/c很好,我们不关心实时性,但现在我们
希望有近实时的查询。
为了提高性能,我们尝试了
sequence files
或
parquet files
但还是要花太多时间。
HBase
但我们需要使用自定义
UDF
我们在蜂巢里用的。自从
Impala doesn't support complex types
因为我们已经
SQL
能够使用配置单元处理数据的语句我希望使用类似SQL的语句,因此我们在
Hbase
.
但在玩之前
我想知道HBase是否适合像
自定义项
如果结果是~3秒。
我在考虑第二个选择。有完全不同的框架/存储。例如Casandra或elasticsearch,但是我们希望使用hdfs作为存储,但是我们怀疑hdfs不适合使用自定义的实时查询
自定义项
任何建议或想法都是非常感谢的!
编辑
关于环境和结果的一些细节。
实际上我们用
Thrift JDBC/ODBC server
正如@cricket_所提到的(我通常称之为hive,抱歉,我已经更新了OP),而且由于flume/spark生成的小文件太多,查询速度很慢。
序列文件
拼花锉
SQL SELECT
没有看到最新的数据。所以我们得跑
MSCK REPAIR TABLE
7000行大约需要8分钟。查询~7000行需要~50秒~1分钟。
start-thriftserver.sh
具有
local[*]
.
我想它仍然太慢,无法取得结果,即使它在本地模式。
grep -c ^processor /proc/cpuinfo