Cloudera Impala需求

Cloudera Impala需求

爲了達到預期的效果,Impala依賴於軟件、硬件的可用性,以及下面章節描述的配置。java

繼續閱讀:node

  • 支持的操做系統
  • 支持的Hadoop發佈
  • Hive Metastore及相關配置
  • Java依賴關係
  • 包和庫
  • 網絡配置需求
  • 硬件需求
  • 用戶賬戶需求

支持的操做系統

支持的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安全

支持的Hadoop發佈

Impala 1.2.1支持CDH 4.1及以上版本。下面列出了不一樣Impala與CDH版本之間的支持關係:服務器

  • CDH 4.1 與 Impala 1.2.1
  • CDH 5 beta版與 Impala 1.2
  • CDH 4.1以上版本與Impala 1.1
  • CDH 4.1以上版本與Impala 1.0
  • CDH 4.1以上版本與Impala 0.7
  • CDH 4.2以上版本與Impala 0.6
  • CDH 4.1與Impala 0.5或更早版本。這一組合僅支持RHEL/CentOS

注意:由於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 語句、 OFFSETNULLS FIRST/LAST 選項,以及SYNC_DDL 選項。網絡

Hive Metastore及相關配置

Impala能夠與存儲在Hive中的數據交互,使用與Hive相同的基礎架構跟蹤schema中對象如表和列的元數據。如下組件是前提條件:架構

  • Hive使用 MySQL 或 PostgreSQL做爲 metastore  

    注意:

    安裝與配置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安裝步驟總結以下:

      1. 安裝MySQL或PostgreSQL數據庫,若是沒有自動啓動則啓動
      2. 下載MySQL/PostgreSQL鏈接器,放於/usr/share/java/目錄下
      3. 使用適當的命令行工具鏈接到數據庫,建立Hive metastore數據庫
      4. 使用適當的命令行工具鏈接到數據庫,授予hive用戶權限
      5. 修改hive-site.xml文件,添加數據庫信息:URL、用戶名、密碼。你須要將該hive-site.xml移動到下面將講到的Impala配置目錄

     

  • 可選:Hive。儘管只有Hive metastore是Impala所需的功能,你仍能夠在幾臺客戶端機器上建立、載入數據到特定格式的表。參見Impala支持的Hadoop文件格式瞭解詳細信息。Hive與Impala不須要安裝在相同的數據節點上,他們只須要訪問相同的metastore數據庫。

Java Dependencies

Impala主要由C++編寫,它使用Java與其餘不一樣的Hadoop組件通信:

  • Impala官方支持的JVM是Oracle JVM。其餘版本的JVM可能會出現問題,一般致使impalad啓動失敗。特別是,Ubuntu中默認幾個層面使用的JamVM會致使impalad啓動失敗。
  • Impalad守護進程內部經過 JAVA_HOME 環境變量定位java庫。確保impalad服務運行在正確的JAVA_HOME下。
  • 全部java依賴的程序都打包到impala-dependencies.jar文件裏,該文件位於/usr/lib/impala/lib/下。These map to everything that is built under fe/target/dependency.

包與庫

包或正確配置的庫。你能夠經過Cloudera Impala公共庫,或自定義的庫,使用包手工安裝Impala。使用Cloudera Impala 公共庫時,下載並安裝下面的文件到每一臺準備安裝Impala或Impala Shell的機器上。安裝步驟以下:

  • 下載Red Hat 5 repo file (http://archive.cloudera.com/impala/redhat/5/x86_64/impala/cloudera-impala.repo) 到/etc/yum.repos.d/
  • 下載Red Hat 6 repo file (http://archive.cloudera.com/impala/redhat/6/x86_64/impala/cloudera-impala.repo) 到/etc/yum.repos.d/
  • 下載SUSE repo file (http://archive.cloudera.com/impala/sles/11/x86_64/impala/cloudera-impala.repo) 到/etc/zypp/repos.d/
  • 下載Ubuntu 10.04 list file (http://archive.cloudera.com/impala/ubuntu/lucid/amd64/impala/cloudera.list) 到/etc/apt/sources.list.d/
  • 下載Ubuntu 12.04 list file (http://archive.cloudera.com/impala/ubuntu/precise/amd64/impala/cloudera.list) 到/etc/apt/sources.list.d/
  • 下載Debian list file (http://archive.cloudera.com/impala/debian/squeeze/amd64/impala/cloudera.list) 到/etc/apt/sources.list.d/

例如,在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 選項。

硬件需求

當執行鏈接操做時,全部數據集都會加載到內存中。數據集可能很是大,所以應確認你的硬件有足夠的內存,以確保鏈接能如期完成。

根據數據集的大小不一樣而需求不一樣,如下是通常推薦:

  • CPU - Impala使用新處理器中包含的SSE4.2指令集。Impala也可使用在就處理器,但最佳性能是運行在:  
    • Intel - Nehalem (released 2008) 或之後處理器
    • Intel - AMD - Bulldozer (released 2011)或之後處理器
  • 內存 - 推薦至少128 GB,最好256 GB以上。假如查詢處理過程當中,某個節點上的中間結果超出該節點上Impala可以使用內存的限制,查詢將取消。注意查詢時並行的,而聚合查詢的中間結果一般比原始數據小,Impala能夠查詢比個別節點上實際可用內存大不少的表或鏈接操做。
  • 存儲 - 數據節點有12塊以上的硬盤。I/O速度一般是Impala磁盤性能的限制因素。確保有足夠的硬盤空間來存放Impala將查詢的數據。

用戶賬戶需求

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安全瞭解詳細信息。

相關文章
相關標籤/搜索