一、安装虚拟服务器(VM12中安装centos7)
Hdpm (先安装一台服务器,后面再通过克隆的方式进行服务器的复制)
二、安装jdk
1. 下载jdk1.8安装包
2. 将文件传到指定目录
jdk-8u121-linux-x64.tar.gz
3. 解压文件
tar -zxvf jdk-8u121-linux-x64.tar.gz
4. 配置环境变量
vim /etc/profile
在文件末尾添加:
export JAVA_HOME=/usr/local/java/jdk1.8.0_91
export PATH=$PATH:$JAVA_HOME/bin
如果原先服务有自带的jdk可用如下方式进行卸载
centos7中自带了openjdk
卸载openjdk version "1.8.0_65"
检查卸载已经安装的默认jdk
[root@localhost ~]# rpm -qa | grep jdk
java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.i68
[root@localhost ~]# yum -y remove java*openjdk*
三、安装JCE(可选,因为该版本会用到Kerberos进行Hadoop集群的安全保障,所以将会在此阶段配置JCE)
1. 下载JCE安装包
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
2 安装JDK与JCE
将安装包解压到指定路径($JAVA_HOME/jre/lib/security/)
unzip -o -j -q jce_policy-8.zip -d $JAVA_HOME/jre/lib/security
四、安装基础环境 (在主机hdpM,SY002,SY003部署)
(1)安装基本包
yum install openssh wget vim openssh-clients openssl gcc openssh-server mysql-connector-odbc -y
systemctl enable sshd && systemctl start sshd
(2)安装mysql jdbc 驱动
yum install mysql-connector-java -y
(3)开启NTP服务
$ yum -y install ntp
$ systemctl is-enabled ntpd
$ systemctl enable ntpd
$ systemctl start ntpd
(4)克隆虚拟机(通过hdpm克隆出SY002,SY003,AmbariSql)
修改主机名:
a、vi /etc/hosts
192.168.22.178 hdpM hdpM.hadoop
192.168.22.179 SY002 SY002.hadoop
192.168.22.180 SY003 SY003.hadoop
192.168.22.181 AmbariSql AmbariSql.hadoop
b、vi /etc/hostname (每台主机单独修改本机的)
hdpM
c、vi /etc/sysconfig/network (每台主机单独修改本机的)
# Created by anaconda
NETWORKING=yes
HOSTNAME=hdpM.hadoop
(5)配置SSH免密码登录
使用ssh命令完成无密码登录操作
本机登录
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
远程登录(将公钥发送到需要无密码登录的目标节点)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.22.178
*注:集群的每一台机器都需要执行以上操作以保证能够互相免密登录
(6)关闭防火墙和SELinux
查看防火墙状态并关闭
$ systemctl status firewalld
$ systemctl disable firewalld
$ systemctl stop firewalld
临时关闭,不用重启机器:
$ setenforce 0
修改配置文件让机器重启也生效:
$ cat /etc/sysconfig/selinux
SELINUX=disabled
五、搭建数据库(在主机Ambari-mysql上部署)
Ambari安装会将安装等信息写入数据库,建议使用自己安装的Mysql数据库,也可以不安装而使用默认数据库PostgreSQL
a、安装mysql
下载mysql的repo源
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
b、安装mysql57-community-release-el7-8.noarch.rpm包
rpm -ivh mysql57-community-release-el7-8.noarch.rpm --nodeps --force
c、安装mysql
yum install mysql-server
d、查看MySQL服务是否已启动:
service mysqld status
启动服务:
systemctl start mysqld
e、修改root 密码:
MySQL5.7会在安装后为root用户生成一个随机密码,而不是像以往版本的空密码。 可以安全模式修改root登录密码或者用随机密码登录修改密码。下面用随机密码方式
MySQL为root用户生成的随机密码通过mysqld.log文件可以查找到:
输入:grep 'temporary password' /var/log/mysqld.log
显示:A temporary password is generated for root@localhost: /;Xu73Lpb356
mysql -u root -p
mysql> Enter password: /;Xu73Lpb356 (输入刚才查询到的随机密码)
mysql> SET PASSWORD FOR 'root'@'localhost'= "Ambari-123";
Query OK, 0 rows affected (0.00 sec)
如果上面的方式不能修改可以使用下面安全模式修改root:
关闭服务:
systemctl stop mysqld.service
vi /etc/my.cnf
mysqld下面添加skip-grant-tables 保存退出启动服务。
systemctl start mysqld.service
mysql -u root #不用密码直接回车
use mysql
update user set authentication_string=password('Zgw-123') where User='root' and Host='localhost';
flush privileges;
exit;
vi /etc/my.cnf #把 skip-grant-tables 一句删除保存退出重启mysql服务
systemctl restart mysqld.service
再次登录即可:
mysql -uroot -pZgw123
如果进行操作出现下面的提示:
You must reset your password using ALTER USER statement before executing this statement.
就再设置一遍密码:
set password = password('Zgw-123');
f、开放3306端口
允许使用用户名root密码Ambari-123从任何主机连接到mysql服务器。
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Ambari-123' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>exit;
开启防火墙mysql 3306端口的外部访问:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
g、安装完成后创建ambari数据库及用户,登录root用户执行下面语句:
create database ambari character set utf8 ;
CREATE USER 'ambari'@'%'IDENTIFIED BY 'Ambari-123';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
如果要安装Hive,再创建Hive数据库和用户 再执行下面的语句:
create database hive character set utf8 ;
CREATE USER 'hive'@'%'IDENTIFIED BY 'Hive-123';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
如果要安装Oozie,再创建Oozie数据库和用户 再执行下面的语句:
create database oozie character set utf8 ;
CREATE USER ‘oozie’@’%’IDENTIFIED BY ‘Oozie-123’;
GRANT ALL PRIVILEGES ON . TO ‘oozie’@’%’;
FLUSH PRIVILEGES;
h、安装mysql jdbc 驱动:
yum install mysql-connector-java
g、将Ambari运行的数据库脚本添加到mysql服务器中,该脚本在安装Ambari主机该目录下:
/var/lib/ambari-server/resources
在安装mysql那台服务器操作:
mysql -u ambari -p
use ambari
source /home/hdpm/source/Ambari-DDL-MySQL-CREATE.sql;
六、制作本地源 (在hdpM上部署便可)
1、下载 Ambari 、HDP 、HDP-UTILS 源包(文件很大,需要很长下载时间,请耐心等待。。。)
$ wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari-2.4.2.0-centos7.tar.gz
$ wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.3.0/HDP-2.5.3.0-centos7-rpm.tar.gz
$ wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7/HDP-UTILS-1.1.0.21-centos7.tar.gz
2、创建ambari目录
cd /var/www/html/ && mkdir ambari
3、将源包解压到ambari目录下
cd /home/centosm/hdp/source
tar -vzxf ambari-2.4.2.0-centos7.tar.gz -C /var/www/html/ambari/AMBARI-2.4.2.0
tar -vzxf HDP-2.5.3.0-centos7-rpm.tar.gz -C /var/www/html/ambari/HDP
tar -vzxf HDP-UTILS-1.1.0.21-centos7.tar.gz -C /var/www/html/ambari/hdp-util
注:解压出来的目录可能与官网的不一致,但这并不影响后面的正常安装。
4、下载repo
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari.repo
wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.3.0/hdp.repo
验证本地源网站是否可用,可以使用浏览器直接访问下面的地址,如果可以看到解压文件则为可用:
访问地址:192.168.22.178/ambari
5、配置ambari、HDP、HDP-UTILS的本地源,首先下载上面资源列表中的相应repo文件,修改其中的URL为本地的地址,相关配置如下
cd /etc/yum.repos.d/
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari.repo
wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.3.0/hdp.repo
vi ambari.repo
修改前:
修改后:
填入修改的地址前可以在浏览器上先确证,如下所示
vi hdp.repo
[root@hdpM yum.repos.d]# more hdp.repo
#VERSION_NUMBER=2.5.3.0-37
[HDP-2.5.3.0]
name=HDP Version - HDP-2.5.3.0
baseurl=http://192.168.22.178/ambari/HDP/centos7/
gpgcheck=1
gpgkey=http://192.168.22.178/ambari/HDP/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
七、安装Ambari (在hdpM上部署)
安装Ambari
$ yum install ambari-server -y
配置Ambari
$ ambari-server setup
下面是配置执行流程,按照提示操作
(1) 提示是否自定义设置。输入:y
Customize user account for ambari-server daemon [y/n] (n)? y
(2)ambari-server 账号。输入:ambari
Enter user account for ambari-server daemon (root):ambari
Adjusting ambari-server permissions and ownership...
(3)设置JDK。输入:3
Checking JDK...
Do you want to change Oracle JDK [y/n] (n)? y
[] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[] Custom JDK
==============================================================================
Enter choice (1): 3
(4)如果上面选择3自定义JDK,则需要设置JAVA_HOME。输入:/usr/local/java/jdk1.8.0_91
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/local/java/jdk1.8.0_91
Validating JDK on Ambari Server...done.
Completing setup...
(5)数据库配置。选择:y
Configuring database...
Enter advanced database configuration [y/n] (n)? y
(6)选择数据库类型。输入:3
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
==============================================================================
Enter choice (3): 3
(7)设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。
Hostname (localhost):192.168.22.181
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (Ambari-123):Ambari-123
(8)将Ambari数据库脚本导入到数据库(这一步笔者在安装mysql数据库时已经执行了)
如果使用自己定义的数据库,必须在启动Ambari服务之前导入Ambari的sql脚本
用ambari用户(上面设置的用户)登录mysql
mysql -u ambari -p
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
注意:Ambari-DDL-MySQL-CREATE.sql 这个文件在hdpM主机上,目录为
/var/lib/ambari-server/resources
(9)启动Amabri
$ ambari-server start
注意:在启动之前需要将mysql启动包放到指定路径下
(10)成功启动后在浏览器输入Ambari地址:
(11)提前手动安装ambari-agent:(每一节点都安装)
#在第一个节点上下载
cd /etc/yum.repos.d/
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari.repo
并将其baseUrl修改为hdp源路径
安装ambari-agent
#yum install ambari-agent
修改ambari-agent.ini中要连接的主机名,这里每一个节点都是为了与安装ambari的主机进行连接,因此每个节点都应将hostname配置成ambari所对应的主机机名
如下所示:
#vi /etc/ambari-agent/conf/ambari-agent.ini
[server]
hostname=hdpm.hadoop
url_port=8440
secured_url_port=8441
#ambari-agent start
在三台机器执行上述代码,其中 < your.ambari.server.hostname> ,根据ambari主机名来填即可。
点击下一步。
八、使用Ambari界面安装Hadoop、Hbase、Log Search服务
1、出现登录界面,默认管理员账户登录, 账户:admin 密码:admin
2、登录成功后出现下面的界面,至此Ambari的安装成功
3、安装安装HDP 2.5.3 配置集群(点击上面登录成功页面的Launch Install Wizard 按钮进行集群配置)
设置集群名称
4、置HDP安装源(选择HDP2.5 ,并且设置Advanced Repository Options 的信息,本次使用本地源,所以修改对用系统的安装源为本地源地址)
5、Install options
因为在前面已安装好了ambari-agent因而这一步选择第二种方式安装而非上传私钥的方式。
6、Host确认(确认前面配置集群中hosts列表 中的机器是否都可用,也可以移除相关机器,集群中机器Success后进行下一步操作)
7、选择要安装的服务
8、各个服务Master配置
9、服务的Slaves 和 Clients节配置
10、服务的客制化配置
11、显示配置信息
12、开始安装(安装各个服务,并且完成安装后会启动相关服务,安装过程比较长,如果中途出现错误,请根据具体提示或者log进行操作)
。。。
安装完成后如下:
==========
安装过程中遇到的问题:
1、提示FQDNs错误
解决方式如下:
原先/etc/hosts 如下所示:
[root@SY003 hdpm]# vi /etc/hosts
192.168.22.178 hdpM
192.168.22.179 SY002
192.168.22.180 SY003
192.168.22.181 AmbariSql
现修改成如下所示:
192.168.22.178 hdpM hdpM.hadoop
192.168.22.179 SY002 SY002.hadoop
192.168.22.180 SY003 SY003.hadoop
2、执行到这一步卡了两个小时还没任何变化
解决方式:手动在第一个节点上安装ambari-agent
3、手动在第一个节点上安装ambari-agent 后,确认主机时发现只有hdpm上确认是正确的,其他节点都是失败的
原因,其他主机在配置ambari-agent.ini 中配置hostname 配置错了,这个应该是配置成ambari主机对应的主机名才对,如下所示:
#vi /etc/ambari-agent/conf/ambari-agent.ini
[server]
hostname=hdpm.hadoop
url_port=8440
secured_url_port=8441
#ambari-agent start
4、 Cannot create /var/run/ambari-server/stack-recommendations
sudo chown -R ambari /var/run/ambari-server
5、重新安装时清理之前安装的
yum -y erase hdp-select
6、运用python手动清理之前存在的一些hadoop相关的包
python /usr/lib/python2.6/site-packages/ambari_agent/HostCleanup.py –silent –skip=users
7、
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
SSH command execution finished
host=sy003.hadoop, exitcode=255
Command end time 2017-06-07 23:38:14
ERROR: Bootstrap of host sy003.hadoop fails because previous action finished with non-zero exit code (255)
ERROR MESSAGE: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
STDOUT:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
解决方式:
1. yum clean all
2. yum makecache
8、