安装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
至此,安装结束