在三台centos6.9的服务器上安装Ambari服务,并安装HDP。
1、安装前准备,环境配置
1.1 关闭防火墙
chkconfig iptables off
service iptables stop
chkconfig --list iptables
1.2 关闭 Selinux
vi /etc/sysconfig/selinux
将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器生效
1.3 配置hostname
vi /etc/sysconfig/network
将三台机子的hostname修改为
ambari1.node.com、ambari2.node.com、ambari3.node.com
1.4 配置hosts文件
vi /etc/hosts 修改host文件
将三台机子配置为
172.30.81.132 ambari1.node.com
172.30.81.133 ambari2.node.com
172.30.81.134 ambari3.node.com
1.5 配置DNS
vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
在这个步骤完成后可以重启机器 使之前的修改的配置生效
1.6 SSH免密登录配置
生成密钥对
ssh-keygen -t rsa
将密钥加到本地认证文件中
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
设置authorized_keys的访问权限
chmod 600 /root/.ssh/authorized_keys
**以上步骤先在每个节点上先执行一遍,然后执行下面操作
将每个节点上生成的id_rsa.pub复制到其他所有节点并添加到它们的认证文件中
scp /root/.ssh.id_rsa.pub [email protected]:/root(在ambari1.node.com执行)
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys (在ambari2.node.com执行)
scp /root/.ssh.id_rsa.pub [email protected]:/root(在ambari1.node.com执行)
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys (在ambari3.node.com执行)
**如若scp命令不存在 yum install -y openssh-clients **
验证免密登录是否配置成功
1.7 安装JDK
在/usr/目录下创建java目录,将下载好的jdk传到/usr/java目录下解压
配置环境变量
vi /etc/profile
在profile中添加如下内容:
source /etc/profile 使配置生效
1.8 安装NTP
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下: master节点作为ntp服务器与外界对时中心同步时间,随后对所有slave节点提供时间同步服务。所有slave节点以master节点为基础同步时间。
所有节点安装相关组件
yum install -y ntp
开机启动:chkconfig ntpd on
检查是否设置成功:chkconfig --list ntpd其中2-5为on状态就代表成功。
【主节点ntpserver配置】
ntp服务只有一个配置文件,配置好了就OK。 这里只给出有用的配置,不需要的配置都用#注掉,这里就再在给出:
vi /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default nomodify notrap
server 202.120.2.101 prefer
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
启动服务
service ntpd start
【slave节点ntp客户端配置】
vi /var/lib/ntp/drift
restrict -6 ::1
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
#这里是主节点的主机名或者ip
server ambari1.node.com
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
启动服务
service ntpd start
安装perl【所有节点】
由于虚拟机系统为centos6.9,无perl,需要先安装perl和numactl
yum install -y perl
yum install -y numactl
1.9 .关闭Linux的THP服务
如果不关闭transparent_hugepage,HDFS会因为这个性能严重受影响。
关闭transparent_hugepage方法是:
vi /etc/grub.conf
添加 transparent_hugepage=never
vi /etc/rc.local
添加:
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
exit 0
1.10 配置UMASK
设定用户所创建目录的初始权限
umask 0022
2、安装ambari
https://docs.hortonworks.com/HDPDocuments/Ambari-2.5.1.0/bk_ambari-installation/content/ambari_repositories.html
此处我选用2.5.1.0版本
下载 hdp-util.repo 、ambari.repo 拷贝到/etc/yum.repos.d/
1、yum install ambari-server
2、安装mysql
安装mysql是因为之后需要使用到mysql作为数据库配置
此处 有安装包https://pan.baidu.com/s/1Xm2hkkjQgVOp8WcE8XzBRw
卸载已有的mysql-libs
rpm -qa | grep mysql
rpm -e --nodeps 【包名】
rpm安装mysql
rpm -ivh mysql-community-common-5.7.15-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.15-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.15-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.15-1.el6.x86_64.rpm
如遇缺少依赖
yum install -y libaio
设置开机启动
chkconfig mysqld on
启动mysql服务
service mysqld start
关闭密码校验
echo "validate_password=off">> /etc/my.cnf
然后修改mysql配置文件/etc/my.cnf,请注意这几个参数配置的位置,不然可能会启动不起来mysql服务
vi /etc/my.cnf
内容如下:
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
重启mysql服务
service mysqld restart
查看root的初始密码 密码在/var/log/mysqld.log
修改 mysql root密码
mysql -uroot -p [查看得到的密码]
针对mysql数据库再做一些工作:
mkdir /usr/share/java
将mysql-connector-java-5.1.32-bin.jar 复制到/usr/share/java目录下:
将mysql-connector-java-5.1.32-bin.jar复制/var/lib/ambari-server/resources目录下:
cp /usr/share/java/mysql-connector-java-5.1.32-bin.jar /var/lib/ambari-server/resources/
编辑ambari.properties
vi /etc/ambari-server/conf/ambari.properties
添加
server.jdbc.driver.path=/usr/share/java/mysql-connector-java-5.1.32-bin.jar
在配置ambari前先在mysql中建库建表,可以避免执行ambari-server setup时的中断。
//创建用户(ambari-server)
CREATE USER 'ambari-server'@'ambari1.node.com' IDENTIFIED BY 'bigdata';
CREATE USER 'ambari-server'@'localhost' IDENTIFIED BY 'bigdata';
FLUSH PRIVILEGES;
//创建数据库
create database ambari;
//用户赋权
GRANT all privileges ON ambari.* TO 'ambari-server'@'ambari1.node.com';
GRANT all privileges ON ambari.* TO 'ambari-server'@'localhost';
FLUSH PRIVILEGES;
如果要安装Hive,再创建Hive数据库和用户 再执行下面的语句:
create database hive character set utf8 ;
CREATE USER 'hive'@'%'IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
如果要安装Oozie,再创建Oozie数据库和用户 再执行下面的语句:
create database oozie character set utf8 ;
CREATE USER 'oozie'@'%'IDENTIFIED BY 'oozie';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
如果要安装hue,再创建hue数据库和用户 再执行下面的语句:
create database hue character set utf8 ;
CREATE USER hue@'%'IDENTIFIED BY 'hue';
GRANT ALL PRIVILEGES ON *.* TO 'hue'@'%';
FLUSH PRIVILEGES;
然后测试新建的用户是否可以登录成功:
mysql -u ambari-server -p
输入密码:bigdata
然后进入到ambari数据库运行一个脚本
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-5.1.32-bin.jar
3、ambari-server setup
在此处,由于待会设置需要用到jdk的环境变量,先执行命令:
echo $JAVA_HOME
/usr/java/jdk1.8.0_151
然后复制这个环境变量的值。
执行ambari-server setup
下面是配置执行流程,按照提示操作
[root@ambari1 java]# ambari-server setup
(1) 提示是否自定义设置。输入:y
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? y
(2) ambari-server 账号。
Enter user account for ambari-server daemon (root):
如果直接回车默认选择root用户
(3) 检查防火墙是否关闭
Adjusting ambari-server permissions and ownership...
Checking firewall status...
(4) 设置JDK。输入:3
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
Enter choice (1): 3
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME:/usr/java/jdk1.8.0_151
Validating JDK on Ambari Server...done.
Completing setup...
Configuring database...
(5) 数据库配置。选择:y
Enter advanced database configuration [y/n] (n)? y
Configuring database...
============================================================== ================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL / MariaDB
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
[7] - BDB
============================================================== ================
Enter choice (1): 3
Hostname (localhost): ambari1.node.com
Port (3306): 3306
Database name (ambari): ambari
Username (ambari): ambari-server
Enter Database Password (bigdata): bigdata
Configuring ambari database...
Configuring remote database connection properties...
WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
L-MySQL-CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)? y
Extracting system views...
.........ambari-admin-2.5.1.0.159.jar
..
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
2.4 启动ambari
ambari-server start
成功启动后在浏览器输入ambari地址:(http://ip:端口号)
例如我在ambari1.node.com(172.30.81.132上搭建的,访问地址如下)
http://172.30.81.132:8080
3、安装配置部署HDP集群
3.1. 登录
在浏览器里第一次输入:http:// 172.30.81.182:8080/
会出现登录界面,默认管理员账户登录, 账户:admin 密码:admin
3.2. 安装向导
登录成功后出现下面的界面:
3.3. 设置集群名称
给你的集群命名,点击next
选择HDP版本 此处我选择2.5.3.0版本
3.4 注册并安装ambari-agent
填写目标主机hostname,这个步骤需要注意,要提前将ambari-server的主机上的私钥复制出来。
进入根目录下,然后复制出id_rsa文件。具体如下截图。
然后点击注册并确认!
根据界面上的警告做部分调优,比如防火墙等问题。然后点击下一步
如下图安装一些必须组件:hdfs、yarn+mr2、tez、hive、hbase、pig、zookeeper、ambari Metrics、Slider
如果需要其它组件 可以在安装完hdp集群后再进行添加
进入下一步:
进入下一步:
要根据具体情况修改配置
修改Execution Engine 为mr
修改为mysql 数据库 之前创建了 hive的数据库 修改完后测试链接
在ambari Mertrics输入密码
在SmartSenses输入密码
进行下一步 忽略warning
部署Deploy
等待ambari hdp集群安装部署
HDP 安装成功