本文介绍在 CentOS 7 环境下使用 Ambari2.5 (HDP2.6) 搭建大数据环境。
推荐使用如下脚本将 Ambari/HDP 相关软件包下到本地后配置 yum 源安装,在线安装速度太慢会经常遇到包找不到情况。
1 | nohup wget -c http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.2.2/ambari.repo \ |
CentOS 准备
安装CentOS 7
- 安装时设置静态IP
- 关闭Kdump
- 关闭Selinux
- 使用基础服务进行安装
安装相关软件包
挂载系统镜像
1 | mkdir /media/CentOS |
编辑 /etc/yum.repos.d/CentOS-Media.repo
启用本地存储库,修改 enabled
为 1
。
1 |
|
安装前设置
调整系统资源限制
编辑 /etc/systemd/system.conf
、/etc/systemd/user.conf
文件,修改如下:
1 | DefaultLimitNOFILE=65536 |
设置 NTP
1 | yum install -y ntp |
关闭系统防火墙
1 | systemctl disable firewalld |
SELinux、PackageKit、umask
编辑 /etc/sysconfig/selinux
,设置SELINUX=disabled
。
1 | echo umask 0022 >> /etc/profile |
编辑 /etc/yum/pluginconf.d/refresh-packagekit.conf
1 | enabled=0 |
设置网络(DNS和NSCD)
所有节点都要设置。ambari在安装时需要配置全域名,所以需要检查DNS。为了减轻DNS的负担, 建议在节点里用 Name Service Caching Daemon (NSCD)
1 | hostnamectl set-hostname ambari001 |
vim /etc/hosts
1 | 192.168.124.151 ambari001 |
vim /etc/sysconfig/network
1 | NETWORKING=yes |
设置静态IP地址
编辑文件:/etc/sysconfig/network-scripts/ifcfg-eth0
1 | TYPE="Ethernet" |
关闭 python 的https verify
在需要安装Ambari的所有节点编辑文件:/etc/python/cert-verification.cfg
1 | [https] |
若修改后还遇到问题,编辑/etc/ambari-agent/conf/ambari-agent.ini
文件,设置如下值(添加或修改,其它不变)
1 | [security] |
然后重启 ambari-agent,ambari-agent restart
。
SSH免密码登录
使用root账号登录 Ambari Server 主机并生成SSH私钥:
1 | ssh-keygen |
添加`authorized_keys文件:
1 | cd ~/.ssh |
修改 ~/.ssh
目录 和 ~/.ssh/authorized_keys
文件系统权限(注意:~/.ssh/authorized_keys
文件权限必需为600,不然免密码登录将失效):
1 | chmod 700 ~/.ssh |
将 authorized_keys
文件其复制到所有 Ambari Agent 主机(注意:有可能需要在Agent主机上创建 .ssh
目录):
1 | scp ~/.ssh/authorized_keys root@<remote.target.host>:~/.ssh/ |
(请将 <remote.target.host>
替换为集群中每台 Ambari Agent 主机地址)
验证每台主机免密码登录是否成功
1 | ssh root@<remote.target.host> |
本地 ambari/hdp
yum源设置(可选)
将 ambari.repo
文件入到 /etc/yum.repo.d/
目录,并将 hdp.repos
地址替换成你实际的本地 yum 服务地址。
我们可以使用 Nginx 来搭建 yum 服务,只需要注意相映路径即可。
Nginx配置HDP YUM源
1 | server { |
ambari.repo
1 | #VERSION_NUMBER=2.6.2.2-1 |
安装独立PostgreSQL数据库(可选)
1 | rpm -ivh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm |
选择:**Enter advanced database configuration **,并选择 [4] - PostgreSQL
。
创建ambari用户和数据库
创建用户和数据库,psql -h localhost -U postgres -d postgres
。
1 | create user ambari encrypted password 'bigdata'; |
设置默认schema,使用ambari
用户登录到ambari
数据库,psql -h localhost -U ambari -d ambari -W
1 | set search_path to "$user",ambari; |
初始化表
psql -h localhost -U ambari -d ambari -f /var/lib/ambari-server/resources/Ambari-DDL-Postgres-CREATE.sql
安装/设置 ambari-server
为了一些不必要的麻烦,推荐关闭 selinux
Install
1 | yum install ambari-server |
配置 ambari-server
1 | ambari-server setup --java-home=/usr/local/java --jdbc-db=postgres --jdbc-driver=/usr/share/java/postgresql-jdbc.jar --enable-lzo-under-gpl-license --database=postgres --databasehost=hdp2001 --databaseport=5432 --databasename=ambari --postgresschema=ambari --databaseusername=ambari --databasepassword=bigdata |
使用 -j
选项指定 JAVA_HOME 目录,这里推荐使用 Oracle JDK 1.8,并配置 Java Cryptography Extension (JCE) 。若不指定 -j
选项,ambari-server 将自动下载配置了JCE的Oracle JDK 1.8版本。
一切使用默认配置即可,当看到以下输出就代表 Ambari Server 配置成功:
1 | ........... |
安装/配置/部署集群
启动Ambari-server
1 | ambari-server start |
打开浏览器登录网址:[http://ambari001:8080](http://ambari001:8080)
(请使用你自己安装的 Ambari Server地址)。
使用默认用户名/密码 admin/admin
登录,之后你可以修改它。
登录后首先创建我们的第一个大数据集群,点击 Launch Install Wizard 按钮创建集群。
首先我们将需要给集群取一个名字,接下来将选择 HDP 的版本,这里我们选择 2.6 版本。
***我们将使用本地源来安装 HDP ***,按图设置本地源地址:
- HDP-2.6:
http://hdp.repos/HDP/centos7/2.x/updates/2.6.5.0
- HDP-UTILS-1.1.0.22:
http://hdp.repos/HDP-UTILS-1.1.0.22/repos/centos7
- HDP-GPL:
http://hdp.repos/HDP-GPL/centos7/2.x/updates/2.6.5.0