安裝impala之前,確認滿足Cloudera Impala Requirements中要求的所有條件:
- Supported Operating Systems
- Supported CDH Versions
- Hive Metastore and Related Configuration
- Java Dependencies
- Packages and Repositories
- Networking Configuration Requirements
- Hardware Requirements
- User Account Requirements
Impala官方安裝wiki地址:
- 確保你的包管理工具中加了impala需要的庫(在該鏈接中描述http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/latest/Installing-and-Using-Impala/ciiu_prereqs.html#prereqs)
- 安裝impala各組件的命令:
$ sudo yum install impala # Binaries for daemons
$ sudo yum install impala-server # Service start/stop script
$ sudo yum install impala-state-store # Service start/stop script
$ sudo yum install impala-catalog # Service start/stop script
3. 復制hive-site.xml, core-site.xml, and hdfs-site.xml到impala的配置文件夾中,默認目錄在/etc/impala/conf如果沒有此文件夾就創建。
4. 安裝impala-shell
$ sudo yum install impala-shell
5. 完成impala要求的配 置。
Post-Installation Configuration for Impala
強制Mandatory配置(Short-Circuit Reads)
開啟Block Location Tracking可以允許impala能夠從文件系統中直接讀取本地數據,而不需要像平常一樣與datanode通信,從而可以提升查詢的速度。
依據你所安裝的CDH的版本不一樣,配置也是不一樣的,此處我僅整理我對應的CDH4.3正確的配置,實際安裝中要采用對應版本的配置。
- 在所有的impala的節點上,修改hdfs-site.xml文件,添加下列屬性:
1 <property> 2 <name>dfs.client.read.shortcircuit</name> 3 <value>true</value> 4 </property> 5 <property> 6 <name>dfs.domain.socket.path</name> 7 <value>/var/run/hadoop-hdfs/dn._PORT</value> 8 </property> 9 <property> 10 <name>dfs.client.file-block-storage-locations.timeout</name> 11 <value>3000</value> 12 </property>
2. if /var/run/hadoop-hdfs是組可寫的,那么確保他的組是root。
3. 復制hive-site.xml, core-site.xml, and hdfs-site.xml到impala的配置文件夾中,默認目錄在/etc/impala/conf。
4. 上述配置結束后,重啟所有datanodes。
強制Mandatory配置(Block Location Tracking)
開啟Block Location metadata允許impala知道數據塊在哪塊磁盤上,這樣可以更好的利用下面的磁盤。(如果不開啟這個設置,impala默認是不會啟動)。
- 對於每一個Datanode,添加下列屬性到hdfs-site.xml 文件:
<property> <name>dfs.datanode.hdfs-blocks-metadata.enabled</name> <value>true</value> </property>
2. 復制hive-site.xml, core-site.xml, and hdfs-site.xml到impala的配置文件夾中,默認目錄在/etc/impala/conf。
3. 上述配置結束后,重啟所有datanodes。
配置impala 啟動的一些操作
Impala服務啟動的時候會加載/etc/default/impala文件中的配置,這里包含了很多impala要用到的資源的信息。例如,典型的classpath變量,你還需要加入或者修改一些信息,比如statstore的地址信息。
IMPALA_STATE_STORE_HOST=127.0.0.1
IMPALA_STATE_STORE_PORT=24000
IMPALA_BACKEND_PORT=22000
IMPALA_LOG_DIR=/var/log/impala
IMPALA_CATALOG_ARGS=" -log_dir=${IMPALA_LOG_DIR} "
IMPALA_STATE_STORE_ARGS=" -log_dir=${IMPALA_LOG_DIR} -state_store_port=${IMPALA_STATE
_STORE_PORT}"
IMPALA_SERVER_ARGS=" \
-log_dir=${IMPALA_LOG_DIR} \
-state_store_port=${IMPALA_STATE_STORE_PORT} \
-use_statestore \
-state_store_host=${IMPALA_STATE_STORE_HOST} \
-be_port=${IMPALA_BACKEND_PORT}"
ENABLE_CORE_DUMPS=false
LIBHDFS_OPTS=-Djava.library.path=/usr/lib/impala/lib
MYSQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar
IMPALA_BIN=/usr/lib/impala/sbin
IMPALA_HOME=/usr/lib/impala
HIVE_HOME=/home/godp/hive-0.9.0-cdh4.1.0
# HBASE_HOME=/usr/lib/hbase
IMPALA_CONF_DIR=/etc/impala/conf
HADOOP_CONF_DIR=/etc/impala/conf
HIVE_CONF_DIR=/etc/impala/conf
# HBASE_CONF_DIR=/etc/impala/conf
修改完這些信息之后,重啟所有impala相關的服務。
$ sudo service impala-server restart
$ sudo service impala-state-store restart
$ sudo service impala-catalog restart
至此,安裝結束