2012-11-01 40 views
2

我正在處理一個有一些表的數據庫(2.5 GB)只有40行到一些有900萬行的數據。 當我正在做大型表的任何查詢時,需要更多時間。 我要上表具有90行不僅導致更少的時間配置單元性能增加

小查詢 - >

hive> select count(*) from cidade; 
Time taken: 50.172 seconds 

HDFS-site.xml中

<configuration> 
<property> 
<name>dfs.replication</name> 
<value>3</value> 
<description>Default block replication. 
The actual number of replications can be specified when the file is created. 
The default is used if replication is not specified in create time. 
</description> 
</property> 

<property> 
<name>dfs.block.size</name> 
<value>131072</value> 
<description>Default block replication. 
The actual number of replications can be specified when the file is created. 
The default is used if replication is not specified in create time. 
</description> 
</property> 
</configuration> 

做這些設置會影響蜂巢的表現呢? dfs.replication=3 dfs.block.size=131072

我可以將它從蜂巢提示符

hive>set dfs.replication=5 

是此值仍然只有perticular會話?

還是更好的改變它在.xml文件?

回答

4

重要的是,select count(*)將導致配置單元啓動地圖縮減作業。

你可能會認爲這是非常快速的像mysql查詢。

即使是一個最簡單的地圖減少在hadoop工作,總時間包括提交作業跟蹤器,任務分配任務跟蹤器等,所以總的時間租約幾十秒。

嘗試select count(*)在一張大桌子上。時間不會增加太多。

因此,您需要了解配置單元和hadoop處理大數據。

3

dfs.replication不應該影響您的配置單元查詢的運行時間。它是從hdfs-site.xml中公開的屬性,用於確定將數據塊複製到的HDFS節點的數量。 3的dfs.replication意味着每個數據塊在3個節點上(總計)。因此,它不適用於特定的會話。

+0

哪些是會提高性能的其他參數先生? –