爲了達到預期的效果,Impala依賴於軟件、硬件的可用性,以及下面章節描述的配置。java
繼續閱讀:node
支持的64位操做系統:python
Red Hat Enterprise Linux (RHEL) 5.7/6.2/6.四、Oracle Linux 5.7/6.2/6.四、Centos 5.7/6.2/6.4shell
在Red Hat Enterprise Linux 5.0及其兼容版本中,須要作一些額外的工做,impala-shell才能使用Kerberos鏈接到Impala集羣數據庫
sudo yum install python-devel openssl-devel python-pip sudo pip-python install ssl
SLES 11 SP1及以上版本ubuntu
Ubuntu 10.04/12.04 或 Debian 6.03安全
Impala 1.2.1支持CDH 4.1及以上版本。下面列出了不一樣Impala與CDH版本之間的支持關係:服務器
注意:由於Impala 1.2.1是與CDH 4協同工做,而CDH 5 beta發佈時包含的是Impala 1.2.0,這樣從CDH 4升級到CDH 5 beta版時其實是恢復到較早的Impala版本。CHD 5 beta版本中自帶的Impala beta版包含了基於CDH 5基礎架構的資源管理功能,以及急需的用戶定義函數功能和目錄服務。而後,它不包括Impala 1.2.1中的一些新功能,例如 SHOW CREATE TABLE 語句、 SHOW TABLE STATS 語句和 SHOW COLUMN STATS 語句、 OFFSET 和 NULLS FIRST/LAST 選項,以及SYNC_DDL 選項。網絡
Impala能夠與存儲在Hive中的數據交互,使用與Hive相同的基礎架構跟蹤schema中對象如表和列的元數據。如下組件是前提條件:架構
注意:
安裝與配置Hive metastore是Impala的必要條件。沒有Hive metastore則Impala沒法工做。參見安裝 Cloudera Impala,瞭解安裝與配置Hive metastore的步驟。儘管MySQL和PostgreSQL均可以用做Hive的metastore,可是隻有使用MySQL時纔可使用表統計信息功能。
應當配置Hive metastore服務而不是直接鏈接到metastore數據庫。 Metastore服務知足CDH中的Hive與Impala之間不一樣層次的交互需求,並避免了許多已知的直接鏈接的問題(The metastore service is required to interoperate between possibly different levels of Hive used by CDH and Impala, and avoids known issues with connecting directly to the metastore database.假如經過Cloudera Manager 4.5安裝,則Metastore服務被設置爲默認啓用。
Hive安裝步驟總結以下:
- 安裝MySQL或PostgreSQL數據庫,若是沒有自動啓動則啓動
- 下載MySQL/PostgreSQL鏈接器,放於/usr/share/java/目錄下
- 使用適當的命令行工具鏈接到數據庫,建立Hive metastore數據庫
- 使用適當的命令行工具鏈接到數據庫,授予hive用戶權限
- 修改hive-site.xml文件,添加數據庫信息:URL、用戶名、密碼。你須要將該hive-site.xml移動到下面將講到的Impala配置目錄
Impala主要由C++編寫,它使用Java與其餘不一樣的Hadoop組件通信:
包或正確配置的庫。你能夠經過Cloudera Impala公共庫,或自定義的庫,使用包手工安裝Impala。使用Cloudera Impala 公共庫時,下載並安裝下面的文件到每一臺準備安裝Impala或Impala Shell的機器上。安裝步驟以下:
例如,在Red Hat 6系統中,你能夠運行下面這組命令:
$ cd /etc/yum.repos.d $ sudo wget http://archive.cloudera.com/impala/redhat/6/x86_64/impala/cloudera-impala.repo $ ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo Cloudera-cdh.repo cloudera-impala.repo
注意:
你可使用wget或curl在archive.cloudera.com下載這些文件,但不要使用rsync。
一樣,你也可使用 Cloudera Manager 安裝、管理 Impala。Impala 1.2.1及更高版本須要Cloudera Manager 4.8及以上版本,以前版本的Cloudera Manager沒法管理 Impala 目錄服務。
注意: 在CM管理環境中,新的目錄服務不會被CM 4.8以前的版本支持或管理。CM 4.8及以上版本須要Impala的目錄服務。所以,假如你升級到Cloudera Manager 4.8及以上版本,你必須同時把Impala升級到1.2.1或更高版本. 也就是說,若是你把Impala升級到1.2.1或更高版本,也必須把Cloudera Manager升級成4.8或更高版本。
經過Cloudera Manager安裝時,能夠採用特定OS的包安裝,也能夠採用parcels方式安裝。Parcels方式簡化了集羣中升級或發佈程序步驟。
爲了確保最佳性能,Impala會試圖徹底經過本地數據完成任務,而不會經過網絡鏈接使用遠程數據。爲了這一目標,Impala經過解析主機名標識爲ip地址,提供給每一個Impala守護進程哥哥數據節點的ip地址。 Impala使用簡單的數據節點上和Impala守護進程的全部機器上的IP接口來操做本地數據。確保Impala守護進程的主機名錶示能夠解析爲IP數據節點的地址。對於單一宿主的機器,這一般是自動的,可是對於多宿主的機器,確保Impala守護進程的主機名能夠解析爲正確的接口。Impala在啓動時會試圖肯定正確的主機名,並在日誌中打印一條主機名的消息(To support this goal, Impala matches the hostname provided to each Impala daemon with the IP address of each datanode by resolving the hostname flag to an IP address. For Impala to work with local data, use a single IP interface for the datanode and the Impala daemon on each machine. Ensure that the Impala daemon's hostname flag resolves to the IP address of the datanode. For single-homed machines, this is usually automatic, but for multi-homed machines, ensure that the Impala daemon's hostname resolves to the correct interface. Impala tries to to detect the correct hostname at start-up, and prints the derived hostname at the start of the log in a message of the form):
Using hostname: impala-daemon-1.cloudera.com
絕大部分狀況下這能夠正常工做。假如須要手工指定主機名,使用 –hostname 選項。
當執行鏈接操做時,全部數據集都會加載到內存中。數據集可能很是大,所以應確認你的硬件有足夠的內存,以確保鏈接能如期完成。
根據數據集的大小不一樣而需求不一樣,如下是通常推薦:
Impala建立一個名叫impala的用戶和用戶組。請不要刪除該用戶或用戶組,也不要修改用戶、用戶組的許可與權限。確保現有系統不會阻撓該用戶、用戶組功能。例如,你可能有腳本自動刪除不在白名單中的用戶,請先把這一用戶、用戶組添加到許可列表中。
爲了資源管理功能可用(與CDH五、YARN、Liama組件協做),impala用戶須要是hdfs組的成員。當新安裝時這一設置會自動執行,但當從較早版本的Impala升級到1.2時不會自動執行。當你把一個已經安裝了1.0或1.1版本Impala的節點升級到的CDH 5時,須要手工添加impala用戶到hdfs組。
爲了執行 DROP TABLE 操做時能正確的刪除,Impala須要移動文件到HDFS回收站。你可能須要手工建立一個HDFS目錄/user/impala,並設置爲impala用戶可寫,這樣回收站就能夠被建立。不然,執行 DROP TABLE 操做後數據可能仍然保留。
Impala不該以root用戶運行。Impala經過直接讀取來達到最佳性能,而root不容許直接讀取。所以,以root用戶運行Impala可能會影響性能。
Impala安全功能提供受權,受權是基於鏈接到Impala服務器的Linux操做系統用戶以及用戶所屬組的權限。參見Impala安全瞭解詳細信息。