升级 Impala
升级 Cloudera Impala 包括停止Impala 所有服务,使用操作系统的包管理工具升级 Impala 到最新版,重新启动 Imapla 服务。
![17121313_tDD5.jpg](https://i-blog.csdnimg.cn/blog_migrate/8001f279872030416379d8e1a9581430.jpeg)
- 假如升级Impala到 1.2.1,应同时升级 Cloudera Manager 到 4.8 及以上版本。Cloudera Manager 4.8 包括Impala 1.2中引入的目录服务的管理支持
- 每次升级 Impala 到一个主要版本或次要版本前,应阅读发现说明中的 不兼容改变,确定你的代码、启动脚本中需要做的修改
- 同样应检查发行说明中 Impala 的已知问题与解决办法,了解需要解决的问题与限制
-
由于修改了1.1.1以后Impala中日志的实现,当通过Cloudera Manager安装Impala服务之后,应当修改 logbuflevel 属性的的默认值。在Cloudera Manager中,通过Services > Impala > Configuration > View and Edit > Impala Daemon (Default) > Logs到达Impala服务的日志设置页面。将Impala守护进程日志缓存等级(logbuflevel)从 -1 修改为 0。假如你希望减少日志I/O开销,也可以将这个值修改为大于0,但是发生崩溃时,可能会丢失一些低优先级的日志信息
-
为了资源管理功能可用(与CDH5、YARN、Liama组件协作),impala用户需要是hdfs组的成员。当新安装时这一设置会自动执行,但当从较早版本的Impala升级到1.2时不会自动执行。当你把一个已经安装了1.0或1.1版本Impala的节点升级到的CDH 5时,需要手工添加impala用户到hdfs组。
![17121313_tDD5.jpg](https://i-blog.csdnimg.cn/blog_migrate/8001f279872030416379d8e1a9581430.jpeg)
在 Cloudera Manager 管理环境,使用 parcels 升级 Impala:
- 假如你原来使用包安装的 Impala,准备改用 parcels 方式,先删除 Impala 所有的相关的包。根据系统的不同,使用下面的命令检查已经安装了哪些包:
使用下面命令删除所有包:rpm -qa # RHEL, Oracle Linux, CentOS, Debian dpkg --get-selections # Debian
sudo yum removepkg_names# RHEL, Oracle Linux, CentOS sudo zypper removepkg_names# SLES sudo apt-get purgepkg_names# Ubuntu, Debian
- 登录到Cloudera Manager Admin Console
- 进入 Hosts < Parcels 页,可以看到允许升级的 Impala 的 parcels
- 依次点击 Download、Distribute (当上一步骤完成后按钮会变化)
- 点击 Activate.
- 执行完以上步骤,点击 Restart 来重启所有 Impala 服务
在 Cloudera Manager 管理环境,使用包升级 Impala:
- 登录到Cloudera Manager Admin Console
- 在 Services 页面,点击 Impala 服务
- 点击 Actions => Stop
- 在你集群的每一 Impala 节点上使用下面各组命令之一进行升级
RHEL, Oracle Linux, CentOS:
$ sudo yum update impala-server $ sudo yum update hadoop-lzo-cdh4 # Optional; if this package is already installed. $ sudo yum update impala-catalog # New in Impala 1.2; do yum install when upgrading from 1.1.
SUSE:
$ sudo zypper update impala-server $ sudo zypper update hadoop-lzo-cdh4 # Optional; if this package is already installed $ sudo zypper update impala-catalog # New in Impala 1.2; do zypper install when upgrading from 1.1.
Debian/Ubuntu:
$ sudo apt-get install impala-server $ sudo apt-get install hadoop-lzo-cdh4 # Optional; if this package is already installed $ sudo apt-get install impala-catalog # New in Impala 1.2.
- 在每台安装了 Impala shell 的节点上,使用下面各组命令之一升级 Impala shell:
For RHEL, Oracle Linux, or CentOS systems:
$ sudo yum update impala-shell
SUSE:
$ sudo zypper update impala-shell
Debian/Ubuntu:
$ sudo apt-get install impala-shell
- 登录到 Cloudera Manager Admin Console
- 在 Services 页面,点击 Impala 服务
- 点击 Actions => Start
不使用 Cloudera ManagerTo upgrade Impala without :
- 停止 Impala 服务
- 停止集群中所有 Impala 节点上的 impalad 进程:
$ sudo service impala-server stop
- 停止集群中 state store 服务的所有实例:
$ sudo service impala-state-store stop
- 停止集群中目录服务的所有实例:
$ sudo service impala-catalog stop
- 停止集群中所有 Impala 节点上的 impalad 进程:
- 检查配置文件中是否有新的推荐或必须的设置,通常配置文件在 /etc/impala/conf 下。请参阅 Impala 安装后配置了解性能和可扩展设置
- 在你集群的每一 Impala 节点上使用下面各组命令之一升级 Impala:
RHEL, Oracle Linux, CentOS:
$ sudo yum update impala-server $ sudo yum update impala-catalog # New in Impala 1.2; do yum install when upgrading from 1.1.
SUSE:
$ sudo zypper update impala-server $ sudo zypper update impala-catalog # New in Impala 1.2; do zypper install when upgrading from 1.1.
Debian/Ubuntu:
$ sudo apt-get install impala-server $ sudo apt-get install impala-catalog # New in Impala 1.2.
- 在每台安装了 Impala shell 的节点上,使用下面各组命令之一升级 Impala shell:
RHEL, Oracle Linux, CentOS:
$ sudo yum update impala-shell
SUSE:
$ sudo zypper update impala-shell
Debian/Ubuntu:
$ sudo apt-get install impala-shell
- 重启 Impala 服务:
- 在集群中所需的节点上重启 Impala state store 服务。假如服务启动成功,则会看到 statestored 进程
$ sudo service impala-state-store start $ ps ax | grep [s]tatestored 6819 ? Sl 0:07 /usr/lib/impala/sbin/statestored -log_dir=/var/log/impala -state_store_port=24000
在 Impala server 服务启动之前启动 state store 服务,可以避免运行 impala-shell 时报 "Not connected" 错误。
- 在集群的每一节点上重启 Impala 目录服务。假如服务启动成功,则会看到 catalogd 进程
$ ps ax | grep [c]atalogd 6068 ? Sl 4:06 /usr/lib/impala/sbin/catalogd
- 在集群的每一节点上重启 Impala 守护进程服务。假如服务启动成功,则会看到 impalad 进程
$ sudo service impala-server start $ ps ax | grep [i]mpalad 7936 ? Sl 0:12 /usr/lib/impala/sbin/impalad -log_dir=/var/log/impala -state_store_port=24000 -use_statestore -state_store_host=127.0.0.1 -be_port=22000
- 在集群中所需的节点上重启 Impala state store 服务。假如服务启动成功,则会看到 statestored 进程
![17121313_tDD5.jpg](https://i-blog.csdnimg.cn/blog_migrate/8001f279872030416379d8e1a9581430.jpeg)
假如服务没有启动成(有可能 sudo 服务命令显示 [OK]),检查 Impala 日志中的错误信息,通常是在 /var/log/impala目录。