关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。
两年前关门了。
改进这个问题
我们正在与针对hdfs的查询进行斗争,在hdfs中我们有大量的数据。
我们有Kafka的消息来源。这些检测是实时的,我们希望能够搜索数据。作为一个集成工具,我们尝试了flume或spark将数据保存到hdfs,并在hivespark jdbc/odbc服务器上查询hdfs上的数据。
目前,这种方法和hivespark jdbc/odbc服务器是很好的b/c,我们不关心实时性,但现在我们希望有接近实时的查询。为了更好的性能,我们尝试了少量的 sequence files
或者 parquet files
但还是要花太多时间。
所以,我们在调查 HBase
但我们需要使用自定义 UDF
我们用在 hive 里。由于impala不支持复杂类型和嵌套类型(我们有这些人员),我们意识到我们不能使用impala。所以我们选择了hbase。
既然我们有 SQL
能够用hive处理数据的语句我希望使用类似sql的语句,所以我们在上面检查了apachephoenix Hbase
.
但在玩之前 Hbase
我想知道hbase是否适合运行像 UDF
如果结果是3秒。
我在考虑第二个选择。拥有完全不同的框架/存储。例如casandra或elasticsearch,但我们希望使用hdfs作为存储,但我们怀疑hdfs不适合使用定制的实时查询 UDF
.
任何建议或想法都将不胜感激!
编辑一些有关环境和结果的详细信息。
实际上,我们使用节俭的jdbc/odbc服务器,正如@cricket\u007所提到的(我通常称之为hive,抱歉混淆了-我已经更新了op),而且由于flume/spark生成了太多的小文件,所以查询速度很慢。
序列文件:~150mb需要~5分钟执行
Parquet文件:分区有问题(数据来自flume/spark)和 SQL SELECT
看不到最新的数据。所以我们得跑了 MSCK REPAIR TABLE
7000排需要8分钟。对~7000行进行查询需要~50秒~1分钟。
我们跑 start-thriftserver.sh
与 local[*]
.
我想它仍然太慢,无法得到结果,即使它是在本地模式。 grep -c ^processor /proc/cpuinfo
打印8个,内存为9gb。
暂无答案!
目前还没有任何答案,快来回答吧!