(继 Ambari 系统管理 (Ambari Administration) 之一: https://blog.csdn.net/devalone/article/details/80769775)
9. 迁移 ZooKeeper Server (Moving the ZooKeeper Server)
将 ZooKeeper server 迁移到一部新的主机上
步骤:
(1) 到 Ambari Web > Service Actions 页面,停止 ZooKeeper server
(2) Ambari Web > Hosts 页面,单击要安装新 ZooKeeper server 的主机
(3) 在新建 ZooKeeper server 的 Summary 页面,单击 Add > ZooKeeper Server
(4) 在新 ZooKeeper server 上更新下列属性(参考现有的 ZooKeeper server 设置)
● ha.zookeeper.quorum
● hbase.zookeeper.quorum
● templeton.zookeeper.hosts
● yarn.resourcemanager.zk-address
● hive.zookeeper.quorum
● hive.cluster.delegation.token.store.zookeeper.connectString
(5) 在 Ambari Web > Hosts 页面,单击原来的 ZooKeeper server 主机
(6) 在 ZooKeeper > Service Actions > Delete Service 页面删除原来的 ZooKeeper server
(7) 保存 HDFS 名称空间
(8) 重新启动新的 ZooKeeper server 和 the Hive service
下一步:
查看并确认所有建议的配置修改
10. 配置 LZO 压缩 (Configuring LZO Compression)
-----------------------------------------------------------------------------------------------------------------------------------------
LZO 是无损数据压缩库,与压缩率比速度优先。Ambari 默认既不安装也不启用 LZO 压缩库,因此必须明确配置才可使用。在 HDP 集群上使用 LZO 压缩,
必须在 core-site.xml 中配置 LZO, 并在整个集群上安装 LZO 压缩库。
10.1 启用 LZO (Enabling LZO)
-----------------------------------------------------------------------------------------------------------------------------------------
LZO 压缩库是 GPL 软件,Ambari 必须明确配置下载这些库文件并安装到整个集群上。LZO 压缩库在一个单独的仓库中,要配置 Ambari 自动下载和安装 LZO
压缩库,遵循下列步骤:
步骤:
① 重新设置 Ambari Server 来配置 Ambari 来启动自动下载和安装 LZO 压缩库
ambari-server setup
...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.
html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n]
(n)?
② 提示时,查看 GPL 许可证并选择 y
③ 重新启动 Ambari Server
ambari-server restart
LZO 压缩库包存储在一个单独的 HDP-GPL 仓库中。现在 Ambari Server 已经配置为下载和安装 LZO 包,必须配置为使用 HDP-GPL 仓库位置。确保安装使用的
HDP-GPL 仓库位置正确:
步骤:
① 登录到 Ambari
② 浏览到 Admin > Stack and Versions
③ 单击 Versions 选项卡,会看到当前运行到版本,标记为 Current
④ 单击 Manage Versions
⑤ 单击列表中匹配 Current 版本到版本
⑥ 验证安装到 HDP-GPL 仓库指向一个有效到位置。
如果使用本地仓库安装,请使用 HDP 2.6 仓库获取仓库
10.2 使用 Ambari Blueprints 启用 LZO (Enabling LZO with Ambari Blueprints)
-----------------------------------------------------------------------------------------------------------------------------------------
当使用 Ambari 提供集群使用 Blueprints 时,如果 Blueprint 配置调用 LZO, 必须利用额外当步骤配置 Ambari 来下载和安装 LZO 包。Ambari Server 有
一新的安静安装参数用于启用 Ambari 以下载和安装 LZO 压缩库
ambari-server setup --enable-lzo-under-gpl-license
这个标志传递到命令时,Ambari 会从 HDP-GPL 仓库下载并安装 GPL 许可证的 LZO 压缩库。默认情况下,HDP 2.6.4 及以后版本包含 HDP-GPL 仓库位置。
如果安装集群并要求使用本地仓库,参考:
https://docs.hortonworks.com/HDPDocuments/Ambari-2.6.1.5/bk_ambari-installation/content/hdp_26_repositories.html
获取仓库。
10.3 禁用 LZO 库下载和安装 (Disable LZO Library Download and Installation)
-----------------------------------------------------------------------------------------------------------------------------------------
如果不再希望 Ambari 自动下载并安装 LZO 压缩库,可以通过编辑 Ambari Server 属性文件并重启 Ambari Server 来禁用这种行为:
步骤:
① 编辑 Ambari Server 属性文件
vi /etc/ambari-server/conf/ambari.properties
② 修改 gpl.license.accepted 属性为 false
③ 重启 Ambari Server
ambari-server restart
10.4 手动安装 LZO (Manually Installing LZO)
-----------------------------------------------------------------------------------------------------------------------------------------
如果不希望 Ambari Server 自动下载并安装 GPL 许可证的 LZO 压缩库,但又打算配置 HDP 组件使用 LZO, 必须确保 LZO 压缩库已安装到集群的每个节点
步骤:
① 在集群的每个节点上,配置适应自己操作系统的 HDP-GPL 仓库
② 安装 Hadoop LZO 压缩库
RHEL/CentOS/Oracle Linux:
yum install hadooplzo_2_6_4_0_91.x86_64 hadooplzo_2_6_4_0_91-native.x86_64
10.5 配置 core-site.xml 启用 LZO (Configure core-site.xml for LZO)
-----------------------------------------------------------------------------------------------------------------------------------------
步骤:
① 浏览到 Ambari Web > Services > HDFS > Configs 页面,然后展开 Advanced core-site
② 找到 io.compression.codecs 属性
③ 讲下面的值添加到 io.compression.codecs 属性
com.hadoop.compression.lzo.LzoCodec
④ 添加配置修改描述,然后单机 Save
⑤ 展开 Custom core-site.xml 节
⑥ 单击 Add Property
⑦ 添加 Custom core-site.xml 如下属性
Property Key io.compression.codec.lzo.class
Property Value com.hadoop.compression.lzo.LzoCodec
⑧ 单击 Save
⑨ 添加配置修改到描述,然后单击 Save
⑩ 重启 HDFS, MapReduce2 和 YARN 服务
10.6 Hive 查询使用压缩 (Using Compression with Hive Queries)
-----------------------------------------------------------------------------------------------------------------------------------------
Hive 查询运行压缩要求创建 LZO 文件。创建 LZO 文件,使用如下方法之一。
10.6.1 创建 LZO 文件 (Create LZO Files)
-----------------------------------------------------------------------------------------------------------------------------------------
① 创建 LZO 文件作为 Hive 查询的输出
② 使用 lzo 命令行工具或自定义的 Java 代码为 .lzo 文件生成 lzo.index
Hive Query 参数:
查询字符串之前设置如下参数:
SET mapreduce.output.fileoutputformat.compress.codec=com.hadoop.compression.lzo.LzoCodec
SET hive.exec.compress.output=true
SET mapreduce.output.fileoutputformat.compress=true
范例:
hive -e "SET mapreduce.output.fileoutputformat.compress.codec=com.hadoop.compression.lzo.LzoCodec;SET hive.exec.compress.output=true;SET mapreduce.
output.fileoutputformat.compress=true;"
10.6.2 编写自定义 Java 代码创建 LZO 文件 (Write Custom Java to Create LZO Files)
-----------------------------------------------------------------------------------------------------------------------------------------
① 创建文本文件作为 Hive 查询的输出
② 编写自定义 Java 代码来
● 将 Hive 查询生成的文本文件转换为 .lzo 文件
● 为 .lzo 文件创建 lzo.index 文件
Hive Query 参数:
查询字符串之前设置如下参数:
SET hive.exec.compress.output=false SET mapreduce.output.fileoutputformat.compress=false
范例:
hive -e "SET hive.exec.compress.output=false;SET mapreduce.output.fileoutputformat.compress=false;
11. 使用现有数据库 (Using Existing Databases)
-----------------------------------------------------------------------------------------------------------------------------------------
Ambari 默认安装 PostgreSQL, MySQL, 和 Derby 数据库分别用于 Ambari, Hive, 和 Oozie. 可以创建一个新的或现有的,非默认的数据库实例用于这些组件
为了使 Ambari 可以连接到 Hive 或 Oozie 使用的数据库,必须在通过运行 ambari-server setup 设置 Ambari Server 之前,下载并设置好数据库连接器。
11.1 使用现有数据库 —— Ambari (Using Existing Databases - Ambari)
-----------------------------------------------------------------------------------------------------------------------------------------
■ Using Ambari with Oracle
-------------------------------------------------------------------------------------------------------------------------------------
■ Using Ambari with MySQL/MariaDB
-------------------------------------------------------------------------------------------------------------------------------------
步骤:
① 在 Ambari Server 主机上:
a. 从 MySQL 下载 MySQL Connector/JDBC 驱动
b. Ambari Server 主机上运行:
ambari-server setup --jdbc-db=mysql --jdbc-driver=/path/to/mysql/mysqlconnector-java.jar
c. 确认 .jar 文件在 Java 的 share 目录
ls /usr/share/java/mysql-connector-java.jar
d. 确认 .jar 文件具有合适的许可权限 —— 644
② 为 Ambari 创建用户并授予权限
● 例如,使用 MySQL database admin 工具:
# mysql -u root -p
CREATE USER '
GRANT ALL PRIVILEGES ON *.* TO '
CREATE USER '
GRANT ALL PRIVILEGES ON *.* TO '
CREATE USER '
GRANT ALL PRIVILEGES ON *.* TO '
FLUSH PRIVILEGES;
● 这里
③ 载入 Ambari Server database schema
● 必须使用 schema 脚本将 Ambari database schema 载入到 MySQL/MariaDB 数据库。在 Ambari-DDL-MySQL-CREATE.sql 文件同一位置下运行,
应该在 Ambari Server 主机的 /var/lib/ambari-server/resources/ 目录下找到 Ambari-DDL-MySQL-CREATE.sql 文件。
mysql -u
CREATE DATABASE
USE
SOURCE Ambari-DDL-MySQL-CREATE.sql;
● 此处
④ 设置 Ambari Server 时,选择
Advanced Database Configuration
> Option [3] MySQL/MariaDB
并输入在第二步定义的凭证:用户名,密码,数据库名称
■ Using Ambari with PostgreSQL
-------------------------------------------------------------------------------------------------------------------------------------
■ Troubleshooting Existing Databases with Ambari
-------------------------------------------------------------------------------------------------------------------------------------
11.2 使用新建或现有数据库 —— Hive (Using New and Existing Databases - Hive)
-----------------------------------------------------------------------------------------------------------------------------------------
■ Using Hive with Oracle
-------------------------------------------------------------------------------------------------------------------------------------
■ Using Hive with MySQL
-------------------------------------------------------------------------------------------------------------------------------------
■ Using Hive with PostgreSQL
-------------------------------------------------------------------------------------------------------------------------------------
■ Troubleshooting Existing Databases with Hive
-------------------------------------------------------------------------------------------------------------------------------------
11.3 使用现有数据库 —— Oozie (Using Existing Databases - Oozie)
-----------------------------------------------------------------------------------------------------------------------------------------
■ Using Oozie with Oracle
-------------------------------------------------------------------------------------------------------------------------------------
■ Using Oozie with MySQL
-------------------------------------------------------------------------------------------------------------------------------------
■ Using Oozie with PostgreSQL
-------------------------------------------------------------------------------------------------------------------------------------
■ Troubleshooting Existing Databases with Oozie
-------------------------------------------------------------------------------------------------------------------------------------
12 设置 Ambari 使用 Internet 代理服务器 (Setting up Ambari to use an Internet Proxy Server)
-----------------------------------------------------------------------------------------------------------------------------------------
如果计划使用公共仓库(public repositories) 安装 Ambari 并部署 Hadoop 安装栈到集群上,必须提供 Ambari 和集群主机 Internet 访问以重那些仓库
获取软件。
● Ambari Server: 使用 Internet 访问来验证仓库。
● yum (或类似的包管理器等价物,取决于操作系统): 从仓库中执行软件安装
因此,如果环境中要求使用 Internet 代理服务器访问,就必须配置 Ambari Server 组件和所有主机上的 yum 使用代理服务器。
为 Ambari Server 配置代理服务器:
步骤:
(1) 在 Ambari Server 主机上,停止 Ambari Server
ambari-server stop
(2) 添加代理设置到 /var/lib/ambari-server/ambarienv.sh 脚本
-Dhttp.proxyHost=
(3) 可选地,阻止某些主机通过代理服务器访问,定义一个排除主机列表
-Dhttp.nonProxyHosts=
(4) 如果代理服务器需要认证,添加用户名和密码,如下:
-Dhttp.proxyUser=
(5) 重启 Ambari Server 使配置生效
设置 yum 使用代理服务器取决于环境和操作系统。下面是一些指导,具体参考操作系统文档
(1) 在集群的每个主机上,在 /etc/yum.conf 文件中指定代理设置,添加如下条目:
proxy=http://
(2) 如果代理服务器要求认证,添加用户名和密码,如下所示:
enableProxyAuth=1
proxy_username=
proxy_password=
(3) 保存 yum 配置文件
13 配置网络端口号 (Configuring Network Port Numbers)
-----------------------------------------------------------------------------------------------------------------------------------------
13.1 默认的网络端口号 —— Ambari (Default Network Port Numbers - Ambari)
-----------------------------------------------------------------------------------------------------------------------------------------
Default Network Port Numbers - Ambari
+===============+===================+=======================+===========+===================================================+
| Service | Servers | Default Port | Protocol | Description |
+---------------+-------------------+-----------------------+-----------+---------------------------------------------------+
| Ambari Server | Ambari Server | 8080 | http | Interface to Ambari Web and Ambari REST API |
+---------------+-------------------+-----------------------+-----------+---------------------------------------------------+
| Ambari Server | Ambari Server | 8440 | https | Handshake Port for Ambari Agents to Ambari Server |
+---------------+-------------------+-----------------------+-----------+---------------------------------------------------+
| Ambari Server | Ambari Server | 8441 | https | Registration and Heartbeat Port for Ambari Agents |
| | | | | to Ambari Server |
+---------------+-------------------+-----------------------+-----------+---------------------------------------------------+
| Ambari Agent | All hosts running | 8670 | tcp | Ping port used for alerts to check the health of |
| | Ambari Agents | You can change the | | the Ambari Agent |
| | | Ambari Agent ping port| | |
| | | in the Ambari Agent | | |
| | | configuration | | |
+---------------+-------------------+-----------------------+-----------+---------------------------------------------------+
13.2 可选项:修改默认的 Ambari Server 端口号 (Optional: Changing the Default Ambari Server Port)
-----------------------------------------------------------------------------------------------------------------------------------------
默认情况下, Ambari Server 使用 8080 端口访问 Ambari Web UI 和 the REST API. 要修改这个端口,必须编辑 Ambari 属性文件。
修改端口号时 Ambari Server 不应运行。第一次启动 Ambari Server 之前编辑 ambari.properties , 或在编辑属性之前停止 Ambari Server
步骤:
① 在 Ambari Server 主机上,使用文本编辑器打开 /etc/ambari-server/conf/ambari.properties
② 设置 client API port 属性为期望的端口值
client.api.port=
③ 启动或重启 Ambari Server, 通过新配置的端口访问:
http://
13.3 可选项:修改默认的 Ambari Server-Agent 端口号 (Optional: Changing the Ambari Server-Agent Port)
-----------------------------------------------------------------------------------------------------------------------------------------
默认情况下,Ambari Server 使用 8087 端口与 Ambari Agent 通信。要修改这个端口,必须编辑 Ambari 属性文件
步骤:
① 在 Ambari Server 主机上,使用文本编辑器打开 /etc/ambari-server/conf/ambari.properties
② 添加下列属性并设置为想要的端口号
security.server.two_way_ssl.port=5222
security.server.one_way_ssl.port=5223
③ 在每个 Ambari Agent 主机上,打开 /etc/ambari-agent/conf/ambariagent.ini 文件
④ 添加如下属性并设置为要求的端口号值
url_port=5223 s
ecured_url_port=5222
⑤ 启动或重启 Ambari Server. 现在 Ambari Agent 可以通过新配置的端口访问 Ambari Server
http://
14 修改 JDK 版本 (Change the JDK Version)
-----------------------------------------------------------------------------------------------------------------------------------------
在初始 Ambari Server 安装期间,选择了 JDK 或提供本机上已安装的自定义 JDK 路径。安装集群之后,可能要改变 JDK 版本。
JDK 的选择取决于计划使用哪个 HDP Stack 安装到集群上。下面的安装栈要求的 JDK 版本:
HDP 2.3, 2.4 or 2.5 JDK 1.7 or JDK 1.8
要改变现有集群的 JDK 版本:
步骤:
① 重新运行 Ambari Server 设置
ambari-server setup
② 在改变 JDK 提示部分,输入 y
Do you want to change Oracle JDK [y/n] (n)? y
③ 在提示选择 JDK 步骤,输入 1 来改变 JDK 版本为 v1.8
[1] - Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] - Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] - Custom JDK
④ 如果选择 Oracle JDK 1.8 或 Oracle JDK 1.7,选择的 JDK 会下载并自动安装到 Ambari Server 主机上。该选项要求有 internet 连接。必须安装
这个 JDK 到集群中所有机器的相同路径上。
⑤ 如果选择 Custom JDK, 验证或在集群的所有主机添加自定义 JDK 路径。如果要使用 OpenJDK 或者没有 Internet 连接选择这个选项(以及已经在所有
主机上预先安装了 JDK)。
⑥ 设置完成之后,必须重新启动每个组件以使新 JDK 能够被用于 Hadoop 服务。
⑦ 利用 Ambari Web UI, 完成如下任务:
● 重启每个组件
● 重启所有服务
重要提示:
------------------------------------------------------------------------------------------------------------------------------------
必须也更新 Ambari Server 和集群所有主机上的 JCE 安全策略文件以匹配新的 JDK 版本。如果正运行着 Kerberos,而没有更新 JCE 以匹配 JDK,
启动服务时会有问题。
15 利用 Ambari 蓝图 (Using Ambari Blueprints)
-----------------------------------------------------------------------------------------------------------------------------------------
Ambari Blueprints 提供 API 用于执行集群安装。可以构建可重复使用的 "blueprint" 来定义使用哪个安装毡,服务组件如何部署到集群上,以及设置什么
配置信息。
+---------------+ +---------------+ +---------------+
| STACK | + | COMPONENT | = | BLUEPRINT |
| DEFINITION | | LAYOUT | | |
+---------------+ +---------------+ +---------------+
+---------------+
+---------------+ | |
| BLUEPRINT | INSTANTIATE | CLUSTER |
| | -----------> | |
+---------------+ +---------------+
设置好蓝图之后,可以通过提供要使用的主机列表调用 API 来实例化集群。Ambari Blueprint 框架提升可重用性,以及无需 UI 交互的自动化集群安装。
更多信息参考:
https://cwiki.apache.org/confluence/display/AMBARI/Blueprints
16 优化 Ambari 性能 (Tuning Ambari Performance)
-----------------------------------------------------------------------------------------------------------------------------------------
对于超过 100 个节点的集群,考虑如下优化选项:
■ 基于集群节点数量调整堆大小以提升可用内存
-------------------------------------------------------------------------------------------------------------------------------------
① 在 Ambari Server 主机上,编辑 ambari-env.sh 文件
vi /var/lib/ambari-server/ambari-env.sh
② 对于 AMBARI_JVM_ARGS 变量,使用类似羡慕的值替换掉默认的 -Xmx2048m 值
-Xmx4GB -Xmn2GB
基于集群中节点的数量,使用如下建议作为指导
+-------------------+---------------+---------------+
| Cluster Nodes | Xmx value | Xmn value |
+-------------------+---------------+---------------+
| 100 - 400 | 4 GB | 2 GB |
+-------------------+---------------+---------------+
| 400 - 800 | 4 GB | 2 GB |
+-------------------+---------------+---------------+
| 800 - 1200 | 8 GB | 2 GB |
+-------------------+---------------+---------------+
| 1200 - 1600 | 16 GB | 2.4 GB |
+-------------------+---------------+---------------+
■ 计算新的、更大的 cache 大小,使用如下关系
-------------------------------------------------------------------------------------------------------------------------------------
ecCacheSizeValue=60*
这里
■ 在 Ambari Server 主机上,在 /etc/ambari-server/conf/ambari-properties 文件中,添加如下属性和值:
-------------------------------------------------------------------------------------------------------------------------------------
server.ecCacheSize=
这里
■ 添加如下属性调整 JDBC 连接池设置:
-------------------------------------------------------------------------------------------------------------------------------------
server.jdbc.connection-pool.acquisition-size=5
server.jdbc.connection-pool.max-age=0
server.jdbc.connection-pool.max-idle-time=14400
server.jdbc.connection-pool.max-idle-time-excess=0
server.jdbc.connection-pool.idle-test-interval=7200
■ 如果使用 MySQL 作为 Ambari 数据库,在 MySQL 配置中,提升 wait_timeout 和 interacitve_timeout 为 8 hours (28800),
max.connections 值从 32 提升到 128.
重要提示:
---------------------------------------------------------------------------------------------------------------------------------
Ambari 配置 server.jdbc.connectionpool.max-idle-time 和 server.jdbc.connection-pool.idle-test-interval 必须低于 MySQL 侧的
wait_timeout 和 interactive_timeout 设置,这是至关重要的。如果选择降低这些超时值,在 Ambari 的配置中相应地调整
downserver.jdbc.connection-pool.max-idle-time 和 server.jdbc.connectionpool.idle-test-interval, 这样他们就低于 wait_timeout 和
interactive_timeout
执行一个或多个选项修改之后,重启 Ambari server 使修改的选项生效
ambari-server restart
如果使用 Ambari Metrics 服务,可能考虑从默认的嵌入模式切换到分布模式,以及其他调优选项。
更多信息参考:
https://docs.hortonworks.com/HDPDocuments/Ambari-2.6.1.5/bk_ambari-operations/content/ams_performance_tuning.html
16.1 清除 Ambari Server 数据库历史 (Purging Ambari Server Database History)
-----------------------------------------------------------------------------------------------------------------------------------------
经过几个月在大型集群上的操作,Ambari Server 可能在其数据库中累积了大量的历史数据,这会导致 UI 性能降低。
为了解决这个问题,下面的 Ambari Server CLI 命令已经实现了可以自动从 Ambari Server 上移除历史记录。db-purge-history 命令需要两个参数,集群
名称,以及要清除记录的最早日期。
范例:
下面的例子中,我们要清除 August 1st, of 2017 以前的历史记录,集群名称为 ‘Prod’
① 停止 Ambari Server
# ambari-server stop
Using python /usr/bin/python
Stopping ambari-server
Waiting for server stop...
Ambari Server stopped
② 运行 db-purge-history 命令
# ambari-server db-purge-history --cluster-name Prod --from-date 2017-08-01
Using python /usr/bin/python
Purge database history...
Ambari Server configured for Embedded Postgres. Confirm you have made a
backup of the Ambari Server database [y/n] y
Ambari server is using db type Embedded Postgres. Cleanable database entries
older than 2017-08-01 will be purged. Proceed [y/n] y
Purging historical data from the database ...
Purging historical data completed. Check the ambari-server.log for details.
Ambari Server 'db-purge-history' completed successfully.
③ 启动 Ambari Server
# ambari-server start
Using python /usr/bin/python
Starting ambari-server
Ambari Server running with administrator privileges.
Organizing resource files at /var/lib/ambari-server/resources...
Ambari database consistency check started...
Server PID at: /var/run/ambari-server/ambari-server.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start........................
Server started listening on 8080
DB configs consistency check: no errors and warnings were found.
Ambari Server 'start' completed successfully.
db-purge-history 命令会分析 Ambari Server 数据库的如下表格,然后移除那些由命令行的 --from-date 参数指定的可以被删除的记录
• AlertCurrent
• AlertNotice
• ExecutionCommand
• HostRoleCommand
• Request
• RequestOperationLevel
• RequestResourceFilter
• RoleSuccessCriteria
• Stage
• TopologyHostRequest
• TopologyHostTask
• TopologyLogicalTask
17 自定义 Ambari 日志和 PID 目录 (Customizing Ambari Log + PID Directories)
-----------------------------------------------------------------------------------------------------------------------------------------
Ambari Server 和 Agents 将其活动写出到 .log 文件,并用一个 .pid 文件来包含它们所运行的进程的标识符号码。log 文件和 .pid 文件可以分别在它们
自己的主机上找到,默认位置为:
Ambari Server:
/var/log/ambari-server/ambari-server.log
/var/run/ambari-server/ambari-server.pid
Ambari Agent:
/var/log/ambari-agent/ambari-agent.log
/var/run/ambari-agent/ambari-agent.pid
必须为ambari-server.log 配置日志级别(logging level), 通过修改 Ambari Server 主机上的 /etc/ambariserver/conf/log4j.properties 文件。对于Ambari
Agent, 可以在每部运行 Ambari Agent 主机上 /etc/ambari-agent/conf/ambari-agent.ini 文件设置。通常也应考虑设置日志轮转策略(log-rotate policies)
参考操作系统文档来设置日志轮转。
17.1 自定义 Ambari Server 日志和 PID 目录 (Customizing Ambari Server Log + PID Directories)
-----------------------------------------------------------------------------------------------------------------------------------------
修改 Ambari Server Log 和 PID 位置
① 在 Ambari Server 主机上,停止 Ambari Server
ambari-server stop
② 修改 PID 位置,编辑 Ambari Server 属性文件
vi /etc/ambari-server/conf/ambari.properties
③ 修改 pid.dir 属性并保存文件
pid.dir=/var/run/ambari-server
④ 修改 Log 位置,编辑 Ambari Server log4j 文件
vi /etc/ambari-server/conf/log4j.properties
⑤ 修改 ambari.log.dir 属性并保存文件
ambari.log.dir=${ambari.root.dir}/var/log/ambari-server
⑥ 创建新目录并确保设置目录的所有者和权限允许 Ambari Server 进程访问
⑦ 重启 Ambari Server
ambari-server start
17.2 自定义 Ambari Agent 日志和 PID 目录 (Customizing Ambari Agent Log + PID Directories)
-----------------------------------------------------------------------------------------------------------------------------------------
① 在每个运行 Ambari Agent 的主机上,停止 Ambari Agent
ambari-agent stop
② 编辑 Ambari Agent 属性文件
vi /etc/ambari-agent/conf/ambari-agent.ini
③ 在 [agent] 节,修改 piddir 和 logdir 属性
[agent]
logdir=/var/log/ambari-agent
piddir=/var/run/ambari-agent
④ 保存文件
⑤ 创建新目录并确保设置目录的所有者和权限允许 Ambari Agent 进程访问
⑥ 重新启动 Ambari Agent
ambari-agent start
18 为 HDFS 和 YARN 配置包含文件管理 (Configuring Include File Management for HDFS and YARN)
-----------------------------------------------------------------------------------------------------------------------------------------
HDFS 和 YARN 都有控制集群中哪些主机可以包含进来,哪些主机要排除在外的能力。HDFS 使用 dfs.hosts 和 dfs.hosts.exclude 属性来控制哪些 datanode
允许连接到 NameNode. YARN 使用用户定义的文件,通过配置 yarn.resourcemanager.nodes.include-path 和 yarn.resourcemanager.nodes.exclude-path
属性控制哪些运行 NodeManager 组件的节点允许与 ResourceManager 通信。当修改这些文件的内容时,HDFS NameNode 和 YARN ResourceManager 都需要
通过调用 -refreshNodes 命令通知到这些变化, HDFS 使用 dfsadmin 工具,YARN 使用 rmadmin 工具。
可以配置 Ambari 来为 YARN 和 HDFS 管理这些包含文件。这些特性只可以为 HDFS 或 YARN 启用,或者两个服务都启用。如果启用了这一特性,Ambari 会
管理相关的包含/排除文件,并基于 Ambari 中主机的状态更新它们的内容。当这些文件发生变化时,Ambari 也会调用必要的 refreshNodes 命令来更新
NameNode 和/或 ResourceManager 的状态。
下面表格描述了发生如下操作时 Ambari 会进行的动作:
• Add Component: Adding a NodeManager, or DataNode
• Delete Component: Removing a NodeManager, or DataNode
• Decommission Component: Decommissioning a NodeManager, or DataNode
• Recommission Component: Recommissioning a NodeManager, or DataNode
+-------------------+-----------------------+-----------------------+-----------------------+-------------------+
| Operation | Include File Actions | Exclude File Actions | Refresh Nodes Call |Triggers Master |
| | | | |Restart Indicator |
+-------------------+-----------------------+-----------------------+-----------------------+-------------------+
| Add Component | Add hostname | Remove hostname | Yes | No |
+-------------------+-----------------------+-----------------------+-----------------------+-------------------+
| Delete Component | Remove hostname | Remove hostname | No | No |
+-------------------+-----------------------+-----------------------+-----------------------+-------------------+
| Decommission | Remove hostname | Add hostname | Yes | No |
| Component | (YARN only) | | | |
+-------------------+-----------------------+-----------------------+-----------------------+-------------------+
| Recommission | Add hostname (YARN | Remove hostname | Yes | No |
| Component | only) | | | |
+-------------------+-----------------------+-----------------------+-----------------------+-------------------+
18.1 为 HDFS 启用包含文件管理 (Enable Include File Management for HDFS)
-----------------------------------------------------------------------------------------------------------------------------------------
① Ambari 中,添加 manage.include.files=true 属性到 Advanced hdfs-site 配置区。
② 确保 Custom hdfs-site 中配置了 dfs.hosts 属性,并且配置为 HDFS NameNode 主机文件系统上一个有效的位置。确保该文件存在并且属于运行 NameNode
的用户
③ Ambari 提示时重启服务。
配置示例:
● 在 Advanced hdfs-site, 设置 manage.include.files=true
● 在 Custom hdfs-site, 设置 dfs.hosts=/etc/hadoop/conf/dfs.include
18.2 为 Yarn 启用包含文件管理 (Enable Include File Management for Yarn)
-----------------------------------------------------------------------------------------------------------------------------------------
① Ambari 中, 添加 manage.include.files=true 属性到 Advanced yarnsite 配置区。
② 确保 yarn.resourcemanager.nodes.include-path 设置为 YARN Resource Manager 主机文件系统上一个有效的位置。如果
yarn.resourcemanager.nodes.include-path 没有设置,把它添加到 Custom yarn-site 配置中
③ Ambari 提示时重启服务。
配置示例:
● 在 Advanced yarn-site, 设置 manage.include.files=true
● 在 Custom yarn-site, 设置 yarn.resourcemanager.nodes.include-path=/etc/hadoop/conf/yarn.include
18.3 为 HDFS 禁用包含文件管理 (Disable Include File Management for HDFS)
-----------------------------------------------------------------------------------------------------------------------------------------
① Ambari 中,Custom hdfs-site 区,设置 manage.include.files=false 属性。
② 在同一配置区域,如果配置了 dfs.hosts 属性并且不再要 HDFS 使用包含文件来进行主机管理,移除 dfs.hosts 属性。
③ Ambari 提示时重启服务。
18.4 为 Yarn 禁用包含文件管理 (Disable Include File Management for Yarn)
-----------------------------------------------------------------------------------------------------------------------------------------
① Ambari 中,在 Custom yarn-site 配置区,设置 manage.include.files=false 属性。
② 在同一配置区域,如果配置了 yarn.resourcemanager.nodes.include-path 属性并且不再要 YARN 使用包含文件进行主机管理,删除这个属性。
③ Ambari 提示时重启服务。
(本篇完)
参考: Ambari 系统管理 (Ambari Administration) 之一