修改 Impala 启动选项
在默认文件 /etc/default/impala 中提供了 Impala 服务器和 Impala state store 的启动参数。你可以通过 Impala 的 web 接口检查所有这些设置的当前值,默认是http://impala-node-hostname:25000/varz
IMPALA_STATE_STORE_HOST=127.0.0.1
IMPALA_STATE_STORE_PORT=24000
IMPALA_BACKEND_PORT=22000
IMPALA_LOG_DIR=/var/log/impala
export IMPALA_STATE_STORE_ARGS=${IMPALA_STATE_STORE_ARGS:- \
-log_dir=${IMPALA_LOG_DIR} -state_store_port=${IMPALA_STATE_STORE_PORT}}
export IMPALA_SERVER_ARGS=${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}}
export ENABLE_CORE_DUMPS=${ENABLE_COREDUMPS:-false}
编辑默认文件,使用替代值,然后重启 Impala server 和 Impala state store 以使修改生效。使用如下命令重启 Impala server:
$ sudo service impala-server restart
Stopping Impala server: [ OK ]
Starting Impala server: [ OK ]
使用如下命令重启 Impala state store:
$ sudo service impala-state-store restart
Stopping Impala state store: [ OK ]
Starting Impala state store: [ OK ]
一些通常需要修改的设置包括:
-
Statestore 地址。Cloudera 推荐在一台不运行 impalad 守护进程的单独的机器上运行 statestore。在此推荐配置中,impalad 守护进程无法使用环回地址指向 statestore 服务器。假如 statestore 位于IP 地址为 192.168.0.27 服务器上,修改
IMPALA_STATE_STORE_HOST=127.0.0.1
为:
IMPALA_STATE_STORE_HOST=192.168.0.27
- 内存限制。你可以限制 Impala 的可用内存。例如,允许 Impala 使用不超过 70% 的系统内存,修改
export IMPALA_SERVER_ARGS=${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}}
为:
export IMPALA_SERVER_ARGS=${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} -mem_limit=70%}
你可以使用绝对数值如500m或2G来设置内存限制,也可以使用物理内存的百分比如 60% 来设置。
注意:查询超过了指定的内存限制后将被终止。百分比内存限制是基于物理内存的,没有考虑 cgroups。 - 核心转储启用。启用核心转储,修改
export ENABLE_CORE_DUMPS=${ENABLE_COREDUMPS:-false}
为:
export ENABLE_CORE_DUMPS=${ENABLE_COREDUMPS:-true}
注意:根据系统配置的不同,核心 转储文件的位置可能不同。即使配置启用核心转储,其他安全设置也可能会阻止 Impala 写核心转储文件。 - 用户认证使用开源的 Sentry 插件。设置 -server_name 和 -authorization_policy_file 选项作为 IMPALA_SERVER_ARGS 和 IMPALA_STATE_STORE_ARGS 设置的一部分,这样来启用核心 Impala 认证支持。参见 Secure Startup for the impalad Daemon 了解详细信息。
- 审计成功或阻断的 Impala 查询是安全的另一方面。对每一个 Impala 节点,设置 -audit_event_log_dir=directory_path 选项和可选的 -max_audit_event_log_file_size=number_of_queries 、 -abort_on_failed_audit_event 选项作为 IMPALA_SERVER_ARGS 设置的一部分来启用和自定义审计。参见 Auditing Impala Operations 了解详细信息。
- 对 Impala web UI 的密码保护,默认监听 25000 端口。这一功能涉及到添加部分或全部下列参数到 IMPALA_SERVER_ARGS 和 IMPALA_STATE_STORE_ARGS 设置中,包括: --webserver_password_file 、 --webserver_authentication_domain 、 --webserver_certificate_file 选项。参见 Security Guidelines for Impala了解详细信息。
- 其他可能添加到 IMPALA_SERVER_ARGS 的设置是:
这些选项控制 impalad 实例执行查询的行为。你指定的这些选项的值会替换掉在 impala-shell 中使用 SET 命令显式的默认值。-default_query_options='option=value;option=value;...'
- 结合使用 YARN 和 Llama 组件的资源管理选项(Options for resource management, in conjunction with the YARN and Llama components)。这些选项包括 -enable_rm, -llama_host, -llama_port, -llama_callback_port, and -cgroup_hierarchy_path。参见 impalad Startup Options for Resource Management 了解详细信息。
- 当故障排除时, Cloudera 支持可能直接修改你的其他值,特别是 IMPALA_SERVER_ARGS,用以解决问题或收集调试信息。
- -enable_rm: 是否启用资源管理,可选值为 true 或 false。默认为 false。除非本设置开启,否则其他资源管理选项无效
- -llama_host: Impala 连接的 Llama 服务的主机名或地址。默认是 127.0.0.1
- -llama_port: Impala 连接的 Llama 服务端口号,默认是 15000
- -llama_callback_port: Impala 启用Llama 回调服务的端口。当资源被授予或被抢占时 Llama 通过该服务报告(Port that Impala should start its Llama callback service on. Llama reports when resources are granted or preempted through that service)
- -cgroup_hierarchy_path: YARN 和 Llama 为所授予资源创建 CGroups 的路径。 Impala assumes that the CGroup for an allocated container is created in the path 'cgroup_hierarchy_path + container_id'.
这些 impalad 守护进程的启动项与 impala-shell 命令行启动项不同。了解 impala-shell 选项,参见 impala-shell Command-Line Options。