Centos7.2下载地址:http://archive.kernel.org/centos-vault/7.2.1511/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso
Centos7.2安装教程:http://1130739.blog.51cto.com/1120739/1738791
附:CentOS官网历史发行版本下载地址:http://archive.kernel.org/centos-vault/
当CentOS的一个新版本发布时,官方会将上一个版本移入到这里面,当需要安装或使用旧发行版本时,可以从这里下载。
在网上偶然找到了一个别人已经搭好的Ambari集群并且放在了互联网上,大家可以参考一下:http://tk.5qzone.net:8080
1.生产中的Hadoop集群机器都很多,而且基本都不允许连接公网,为方便快速部署,非常有必要建立一个本地Repository
2.操作系统环境准备
2.1 配置SSH免密码登录
主节点里root用户登录执行如下步骤
ssh-keygen
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys (可能大家认为这样做不是多此一举吗,但经过试验证明这步是必须的,如果你把id_rsa.pub用scp到其他机器上的话再ssh还是需要密码的)
chmod 777 ~/.ssh
注意:千万不要执行上面这一步,否则在后面ssh自己需要输入密码。经试验,只要是执行了chmod 777 ~/.ssh后,即使把公钥复制到其他机器,其他机器再ssh这台机器都需要输入密码
否则在步骤4.2.4会出现如下报错:
先在从节点登录root执行命令
mkdir ~/.ssh/
分发主节点里配置好的authorized_keys到各从节点
scp /root/.ssh/authorized_keys root@192.168.205.153:/root/.ssh/(可能你认为这一步也是多此一举,但第一次用远程命令的时候它不会自动建立连接,它会问你Are you sure you want to continue connecting (yes/no)?只有当你输入yes后,第二次再连接才会自动连接,要不然在后面4.2.4的时候SY-002会显示failed,如下图,我这里只是为了输入yes,你也可以直接用ssh命令,输入yes后第二次就不用输了)
scp /root/.ssh/authorized_keys root@192.168.205.154:/root/.ssh/
scp /root/.ssh/authorized_keys root@192.168.205.155:/root/.ssh/
2.2 创建ambari系统用户和用户组
只在主节点操作
添加ambari安装、运行用户和用户组,也可以不创建新用户,直接使用root或者系统其他账号
adduser ambari
passwd ambari
密码:Ambari-123
确保home目录的写权限。
Ambari会创建一些OS用户。
chmod -R 777 /home
2.3 检查DNS和NSCD
所有节点都要设置
ambari在安装时需要配置全域名,所以需要检查DNS。为了减轻DNS的负担, 建议在节点里用 Name Service Caching Daemon (NSCD)(这句不是太明白)
vi /etc/hosts
192.168.205.153 SY-001 SY-001.hadoop
192.168.205.154 SY-002 SY-002.hadoop
192.168.205.155 SY-003 SY-003.hadoop
每台节点里配置FQDN,如下以主节点为例
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=SY-001.hadoop
2.4 关闭防火墙
所有节点都要设置
Centos 7 命令
systemctl disable firewalld
systemctl stop firewalld
Centos 6 命令
chkconfig iptables off
/etc/init.d/iptables stop
2.5 关闭SELinux
所有节点都要设置
查看SELinux状态:
sestatus
如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
临时关闭,不用重启机器:
setenforce 0
修改配置文件后需要重启机器:
vi /etc/sysconfig/selinux
SELINUX=disabled
reboot
2.6 开启NTP服务
所有集群上节点都需要操作
Centos 7 命令
yum -y install ntp
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd
Centos 6 命令
yum install ntpd
chkconfig --list ntpd
chkconfig ntpd
service ntpd start
3.制作本地源
制作本地源只需在主节点上进行即可
3.1 相关准备工作
3.1.1安装 Apache HTTP 服务器
安装HTTP服务器,允许http服务通过防火墙(永久,如果防火墙开启的话。但是前面已经把防火墙永久关闭了,所以这一步也就没必要做了)
yum -y install httpd
firewall-cmd --add-service=http
firewall-cmd --permanent --add-service=http
添加 Apache 服务到系统层使其随系统自动启动
systemctl start httpd.service
systemctl enable httpd.service
3.1.2 安装本地源制作相关工具
yum -y install yum-utils createrepo
3.2 下载安装资源
下载 Ambari 2.2.2 , HDP 2.4.0 的安装资源,本次安装是在Centos 7 上,只列出centos7的资源,其他系统的请现在对用系统的资源
Ambari 2.2.2 下载资源
OS Format URL
CentOS 7 Base URLhttp://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0
CentOS 7 Repo Filehttp://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0/ambari.repo
CentOS 7 Tarball md5 aschttp://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0/ambari-2.2.2.0-centos7.tar.gz
HDP 2.4.0 下载资源
OS Repository NameFormatURL
CentOS 7 HDP Base URL http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.0.0
CentOS 7 HDP Repo File http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.0.0/hdp.repo
CentOS 7 HDP Tarball md5 asc http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.0.0/HDP-2.4.0.0-centos7-rpm.tar.gz
CentOS 7 HDP-UTILSBase URLhttp://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7
CentOS 7 HDP-UTILSRepo Filehttp://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7/HDP-UTILS-1.1.0.20-centos7.tar.gz
下载上面列表的中的压缩包,你也可以不用下载这些压缩包并不修改hdp.repo和ambari.repo文件,直接使用公共源安装,但不管你用哪种方法网速都是很致命的问题,要不然一等就是好几个小时,简直要疯掉
需要下载的压缩包如下:
Ambari 2.2.2
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0/ambari-2.2.2.0-centos7.tar.gz(645.37MB)
HDP 2.4.0
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.0.0/HDP-2.4.0.0-centos7-rpm.tar.gz (有点大,9.74GB,我250KB/S的网速下了十多个小时,太恐怖了。。。)
(原文章连接给错了,给成了HDP-2.4.0.0的地址,我一开始就下载成了HDP-2.4.0.0有6.03G,但最终也安装成功了,倒也不影响什么。后来又发现下载的HDP-2.4.2.0-centos7-rpm.tar.gz用tar -zxvf命令解压失败,我也不知道啥原因,只能用HDP-2.4.0.0-centos7-rpm.tar.gz的了)
HDP-UTILS 1.1.0
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7/HDP-UTILS-1.1.0.20-centos7.tar.gz(694.95MB)
在httpd网站根目录,默认是即/var/www/html/,创建目录ambari,
并且将下载的压缩包解压到/var/www/html/ambari目录
cd /var/www/html/
mkdir ambari
cd /var/www/html/ambari/
tar -zxvf ambari-2.2.2.0-centos7.tar.gz
tar -zxvf HDP-2.4.0.0-centos7-rpm.tar.gz
tar -zxvf HDP-UTILS-1.1.0.20-centos7.tar.gz
注意:解压之后一定要将这些tar包都删除了,否则的话会导致你的磁盘不够用,即使集群中三台机器都Success后点开“Click here to see the warnings.”还是在步骤4.2.4有如下图报错
验证httd网站是否可用,可以使用links 命令或者浏览器直接访问下面的地址:
links http://192.168.205.153/ambari/
(如果报-bash: links: command not found的话可能是你没有安装,用yum安装即可,yum -y install links)
结果如下:
3.3 配置ambari、HDP、HDP-UTILS的本地源
首先下载上面资源列表中的相应repo文件,修改其中的URL为本地的地址,相关配置如下:
ambari.repo:
#VERSION_NUMBER=2.2.2.0-460
[Updates-ambari-2.2.2.0]
name=ambari-2.2.2.0 - Updates
baseurl=http://192.168.205.153/ambari/AMBARI-2.2.2.0/centos7/2.2.2.0-460
gpgcheck=1
gpgkey=http://192.168.205.153/ambari/AMBARI-2.2.2.0/centos7/2.2.2.0-460/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
hdp.repo:
#VERSION_NUMBER=2.4.0.0-169
[HDP-2.4.0.0]
name=HDP Version - HDP-2.4.0.0
baseurl=http://192.168.205.153/ambari/HDP/centos7/2.x/updates/2.4.0.0
gpgcheck=1
gpgkey=http://192.168.205.153/ambari/HDP/centos7/2.x/updates/2.4.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.20]
name=HDP Utils Version - HDP-UTILS-1.1.0.20
baseurl=http://192.168.205.153/ambari/HDP-UTILS-1.1.0.20/repos/centos7
gpgcheck=1
gpgkey=http://192.168.205.153/ambari/HDP/centos7/2.x/updates/2.4.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
注意:在执行yum list update时可能会报这个错:
Determining fastest mirrors
Error: No matching Packages to list
解决:Determining fastest mirrors可以解除,但Error: No matching Packages to list还是存在,但也没有影响最后的安装
http://blog.sina.com.cn/s/blog_7e513d7e01015j9b.html
其大概意思是fastestmirror不能使用,fastestmirror是yum的一个加速插件,具体我也没有仔细了解过,可能是系统不支持或者缺少组建导致的。处理办法就是禁用这个插件,方法如下:
vi /etc/yum/pluginconf.d/fastestmirror.conf
enabled=0 #把1改为0
vi /etc/yum.conf
plugins=1 #将plugins的值修改为0
Ambari安装会将安装等信息写入数据库,可以使用自己安装的MySQL数据库,也可以不安装而使用默认数据库PostgreSQL。
3.4 安装Mysql数据库
Ambari安装会将安装等信息写入数据库,建议使用自己安装的MySQL数据库,也可以不安装而使用默认数据库PostgreSQL
mysql数据库安装过程请参考下面文章:http://blog.csdn.net/m0_37739193/article/details/77477547
安装完成后创建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;
安装mysql jdbc驱动
yum -y install mysql-connector-java
3.4 安装JDK(我这个Centos7.2安装后居然没有默认安装jdk,Python倒是默认安装了,让我很是奇怪,因为根据以往安装Linux的经验都会默认安装一个相应版本的jdk啊)
所有节点都要,先到官网下载jdk-8u91-Linux-x64.tar.gz,再执行下面命令:
mkdir /opt/java
tar -zxvf jdk-8u91-linux-x64.tar.gz -C /opt/java/
vi /etc/profile
export JAVA_HOME=/opt/java/jdk1.8.0_91
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
source /etc/profile
4.进行安装Ambari
4.1 安装Ambari2.2.2
4.1.1安装Ambari
yum -y install ambari-server
可能会报错:
Error: Package: ambari-server-2.2.2.0-460.x86_64 (Updates-ambari-2.2.2.0)解决:还得将镜像挂载才正常,在VMware中设备状态“已连接”勾选后,选择你镜像所存放的位置后修改CentOS-Media.repo 文件:
Requires: postgresql-server >= 8.1
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
再次执行yum -y install ambari-server
4.1.2配置Ambari
ambari-server setup
下面是配置执行流程,按照提示操作
1.检查SELinux是否关闭,如果关闭不用操作
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
2.提示是否自定义设置。输入:y
Customize user account for ambari-server daemon [y/n] (n)? y
3.ambari-server 账号。输入:ambari
Enter user account for ambari-server daemon (root):ambari
Adjusting ambari-server permissions and ownership...
4.检查防火墙,如果关闭则不用操作
Checking firewall status...
Redirecting to /bin/systemctl status iptables.service
5.设置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
6.如果上面选择3自定义JDK,则需要设置JAVA_HOME。输入:/opt/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: /opt/java/jdk1.8.0_91
Validating JDK on Ambari Server...done.
Completing setup...
7.数据库配置。选择:y
Configuring database...
Enter advanced database configuration [y/n] (n)? y
8.选择数据库类型。输入:1
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 (1): 3
9.设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。
Hostname (localhost):
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (bigdata): 这里填Ambari-123
Re-enter password:
Configuring ambari database...
Copying JDBC drivers to server resources...
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
Proceed with configuring remote database connection properties [y/n] (y)? y
Extracting system views...
ambari-admin-2.2.2.0.460.jar
......
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
10.将Ambari数据库脚本导入到数据库
如果使用自己定义的数据库,必须在启动Ambari服务之前导入Ambari的sql脚本
用Ambari用户(上面设置的用户)登录mysql
mysql -u root -p
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
4.1.3启动Amabri
执行启动命令,启动Ambari服务
ambari-server start
成功启动后在浏览器输入Ambari地址:
http://sy-001.hadoop:8080/(原文章说直接输入主机名就可以,但我输入该地址却无法访问此网站,还必须得输入本机IP,如http://192.168.205.153:8080/)
出现登录界面,默认管理员账户登录,账户:admin 密码:admin
可能你在这一步就总是无法找到网页,或者出现下图
查看/var/log/ambari-server/ambari-server.out发现有Caused by: java.sql.SQLException: Access denied for user 'ambari'@'SY-001' (using password: YES)
在mysql中执行如下操作:
授权:grant all privileges on *.* to ambari@'SY-001' identified by 'Ambari-123';
刷新:flush privileges;
再重启Ambari:ambari-server restart
登录成功后出现下面的界面,至此Ambari的安装成功
4.2 安装HDP 2.4.0配置集群
点击上面登录成功页面的Launch Install Wizard 按钮进行集群配置
4.2.1设置集群名称
4.2.2设置HDP安装源
选择HDP2.4 ,并且设置Advanced Repository Options 的信息,本次使用本地源,所以修改对用系统的安装源为本地源地址。
4.2.3设置集群机器 (私钥文件地址/root/.ssh/id_rsa)
4.2.4 Host 确认
确认前面配置集群中hosts列表中的机器是否都可用,也可以移除相关机器,集群中机器Success后进行下一步操作。
4.2.5 选择要安装的服务
4.2.6 各个服务Master配置
4.2.7 服务的Slaves和Clients节配置(我选择的是默认)
4.2.8 服务的客制化配置,这些参数待集群建好后都是可以再调整的。(有些组件需要让你设定密码)
4.2.9 显示配置信息
4.2.10 开始安装
安装各个服务,并且完成安装后会启动相关服务,安装过程比较长,如果中途出现错误,请根据具体提示或者log进行操作。
结果却安装失败:
点击安装失败的节点的”Failures encountered“,再点击”DataNode Install“查看相应的错误日志:
解决:在sy-001.hadoop节点上执行以下命令
rpm -e snappy-1.1.0-3.el7.x86_64
yum -y install snappy-1.0.5-1.el6.x86_64
安装过程可以随时查看每个节点的安装进度及日志
结果快完事的时候又报这个警告:
整了半天也不知道啥原因,于是我就将虚拟机还原快照后又重新来了一遍,结果再到这步的时候却不报那个警告了,我也是醉了。。。
我忽略了警告直接进行了下一步
后来我又先在步骤4.2.5只选择安装ZooKeeper,安装成功之后再添加Ambari Metrics
当Ambari Metrics安装成功之后再添加HDFS和YARN+MapReduce2,这样安装感觉更好一些
4.2.11安装完成,感觉安装完也不是很稳定,总是时不时的有红色的警报(alert),看的很不爽,后来偶尔又没有警报达到了下面的比较好的状态(那个橙黄色的是Warning,我的SY-001.hadoop容量用了68.24%而导致的警告)
而且也很吃机器的内存和磁盘,安装完之后导致我的PC很卡。个人感觉这个ambari并不是很好用,安装的时候就感觉很吃力,需要下载很多东西并且还很大,如果你网速不行的话你简直就要疯掉了,而且安装的时候也会有莫名其妙的问题,即使安装好了还不时的有警报,我感觉还没有我手动安装来的快呐。还有就是它安装的是HDP版的hadoop相关组件,我个人来说还是用惯了cdh版的hadoop了,感觉hdp版本并没有cdh版本要普及。可能就是统一管理更方便一些,图形化界面更形象一些吧。有时间再研究研究Cloudera Manager吧,比较一下这两个哪个更好些。以上纯属个人观点,不喜勿喷。
参考:
http://www.linuxidc.com/Linux/2016-12/138478.htm
http://blog.csdn.net/ma141982/article/details/73497646