准备工作

1 理解组件

Ambari 支持的Hadoop组件主要分为3层:

  • Core Hadoop: Apache Hadoop基础组件.
  • Hadoop Distributed File System (HDFS): 设计用来运行 MapReduce 引擎的一个文件系统. 提供在分布式环境的数据访问.
  • MapReduce:  MapReduce 编程框架处理数据.
  • Essential Hadoop: :与 Core Hadoop 一起工作的组件.
  • Apache Pig 语言,被编译成MapReduce 程序.
  • Apache Hive:  SQL-like 查询语言,能被编译成MapReduce 程序.
  • Apache HCatalog: 元数据抽象层,用来隔离用户与 数据。 数据如何,在哪里被存储,用户和脚本无需关心
  • WebHCat: 为 HCatalog 和相关Hadoop组件提供REST-like APIs ,以前叫 Templeton.
  • Apache HBase: 分布式列数据库,提供随机访问和操作 HDFS的大块数据能力
  • Apache ZooKeeper:  HBase 依赖于zk.
  • Hadoop Support: 监控 Hadoop 的安装 和 在你的计算环境连接到 Hadoop
  • Apache Oozie: 基于服务器的工作流引擎,优化正在运行Hadoop jobs的工作流.
  • Apache Sqoop: 在Hadoop和外部结构数据之间迁移数据. 可以被Oozie 工作流集成
  • Ganglia: 性能监控系统
  • Nagios: 监控系统服务和网络

安装Ambari  必须安装HDFS,其他可选。

2 软件需求

系统要求:Linux 64位

软件要求 :yum rpm scp curl wget pdsh, 唯一需要安装的是 pdsh,搭建好自建仓库后运行下面命令即可

yum install pdsh

数据库:Ambari/Hive /HCatalog 都需要关系数据库的支持。

3 部署方式

虽然可以把所有组件装在一台机器上,但通常建议3台,1 master 2 slave。

4 信息收集

所有主机需要配置域名 Ambari 安装向导不支持 IP 地址

5 其他

ssh免登录

Ambari Server 在agent端安装软件 需要ssh 免登录

时钟同步

Disable SELinux

Disable iptables

Disable PackageKit

打开/etc/yum/pluginconf.d/refresh-packagekit.conf 写入 enable=0

Disable THP

echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag

如果Hive , HCatalog 使用MySQL作为 数据库,需要安装jdbc驱动

yum install mysql-connector-java*

开始安装

安装开始前,强烈建议搭建一个私有yum 仓库,具体地址请看hadoop-day-2: 自建hadoop-yum-仓库

 

安装repo,这里不建议使用hortonworks的repo,需要,建议使用自建仓库。

cd /etc/yum.repos.d/
wget http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.1.2/ambari.repo
# 根据角色安装
yum install ambari-server
yum install ambari-agent

 

配置server

ambari-server setup
Customize user account for ambari-server daemon [y/n] (n)? n

进程配置按n 默认即可

Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[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

选2 并同意Oracle JDK license 安装JDK,会自动安装jdk

Enter advanced database configuration [y/n] (n)?

按  n  使用默认数据库配置。

这里的ambari数据库直接装在本机的PostgreSQL上了,用户名和密码 ambari-server/bigdata ,按 y 可以自定义装在其他机器的其他数据库,如 测试的 MySQL

Configuring database...
Default properties detected. Using built-in database.
Configuring ambari database...
Checking PostgreSQL...
Running initdb: This may take upto a minute.
Initializing database: [ OK ]
About to start PostgreSQL
Configuring local database...
Restarting PostgreSQL
Extracting system views...
......ambari-admin-2.1.2.377.jar
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.

 

至此安装完成

启动server

ambari-server start

配置节点

安装jdbc驱动

yum install mysql-connector-java*

数据库配置

在测试的 MySQL 服务器上 新建2个库 Hive Oozie

 

安装,配置,部署集群

浏览器打开http://server_hostname:8080, 使用admin/admin.登录

1 点击 Launch Install Wizard

ambari集群 yarn参数调优_ambari集群 yarn参数调优

 

2 输入集群名称

bigdatatest

3 选择2.3,并点击下方的 Advanced Repository Options

ambari集群 yarn参数调优_hdfs_02

3  只勾选使用的操作系统类型,下面仓库的地址也要换成自己搭建的yum源,修改完成后,点Next

ambari集群 yarn参数调优_ambari_03

4 输入集群节点的域名,并把免登录私钥 上传上来,然后下一步

 

 

5 服务器会在每个节点上安装agent, 知道都变成success 点击Next

 

6 选择需要安装的组件,从这里安装这里面必须选安装zookeeper,没法使用现有的

ambari集群 yarn参数调优_Hadoop_04

 

7 Hive 和 Oozie 需要配置数据库,直接使用测试环境现有Mysql,需要提前安装好 jdbc dirver。

 

8 确认后,会给出组件汇总的列表,没问题后点deploy

ambari集群 yarn参数调优_hadoop_05

 

9 然后坐等安装完毕

 

 

一些bug处理

 

如果安装阶段就出现问题,请检查自建仓库

 

 

安装完成后,Oozie无法启动

Error: Specified key was too long; max key length is 767 bytes {stmnt 484436112 CREATE TABLE BUNDLE_ACTIONS (bundle_action_id VARCHAR(255) NOT NULL, bundle_id VARCHAR(255), coord_id VARCHAR(255), coord_name VARCHAR(255), critical INTEGER, last_modified_time DATETIME, pending INTEGER, status VARCHAR(255), PRIMARY KEY (bundle_action_id)) ENGINE = innodb} [code=1071, state=42000]

测试Mysql 字符集是 utf8mb4,修改后正常启动

ALTER DATABASE oozie character set latin1; 
ALTER DATABASE hive character set latin1;

Hive 无法启动

Initialization script hive-schema-1.2.0.mysql.sql
 Error: Duplicate key name ‘PCS_STATS_IDX’ (state=42000,code=1061)
 org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!

 

https://svn.apache.org/repos/asf/hive/trunk/metastore/scripts/upgrade/mysql/hive-schema-1.2.0.mysql.sql

导入mysql 后启动成功