前言
大多数情况下,我们在linux环境中安装软件都是使用在线安装的方式,比如centOS的 yum,ubuntu的apt-get,但是,有些时候,我们需要安装软件,但并没有网络,或网速并不快,比如公司的集群,很可能是没有外网的,有些库是国外的库,下载速度非常慢,这个时候,如果有个本地库,这个问题就能比较好的解决了 。当然,并不是说所有的软件都做成本地库,这里只是把安装Ambari和HDP的库本地化。
1、下载压缩包
首先下载包含必要软件的压缩包(tarball)到本地,以centOS7,Ambari 2.4.1和HDP2.5.0.0为例:
Ambari-2.4.1.0 压缩包地址:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.1.0/ambari-2.4.1.0-centos7.tar.gz
HDP-2.5.0.0压缩包地址:
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.0.0/HDP-2.5.0.0-centos7-rpm.tar.gz
HDP UTILS压缩包下载地址:
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7/HDP-UTILS-1.1.0.21-centos7.tar.gz
其他版本,下载地址请参考:
Ambari:
http://docs.hortonworks.com/HDPDocuments/Ambari-2.4.1.0/bk_ambari-installation/content/ambari_repositories.html
HDP和HDP UTILS:
http://docs.hortonworks.com/HDPDocuments/Ambari-2.4.1.0/bk_ambari-installation/content/hdp_stack_repositories.html
2、设置本地库
在设置本地库之前,我们先需要完成一些准备工作,如下:
- 选择一台机器作为本地库的镜像服务器,这个机器能够被集群中的机器所访问,且有一个被支持的操作系统。
- 此台镜像服务器有软件包管理,例如centOS的yum,ubuntu的apt-get,SLES的zypper。
2.1 创建一个HTTP服务
step 1 在镜像服务器上安装一个HTTP服务(例如Apache httpd)。
这里可以使用以下方式安装http:
[root@master ~]# yum install httpd
也可以下载二进制包安装,下载地址为:
http://httpd.apache.org/download.cgi
安装完成之后,可以看到有/var/www/目录了。
step 2 启动web 服务
step 3 确保防火墙允许来自集群中的节点的访问请求。
2.2 拷贝并解压tarball
把之前下载好的压缩包拷贝并解压到镜像服务机器的相应目录下。
对于Ambari Repo,解压到目录/var/www/html
下
对于HDP,解压到目录/var/www/html/hdp/
2.3 确认解压目录正常
解压结束后,在浏览器中确认是否可以访问,访问地址如下:
Ambari Base URL:
http://<web.server>/Ambari-2.4.1.0/<OS>
HDP Base URL:
http://<web.server>/hdp/HDP/<OS>
HDP-UTILS Base URL:
http://<web.server>/hdp/HDP-UTILS-<version>/repos/<OS>
其中<web.server>
为镜像服务的主机名,<OS>
为centos6, centos7, sles11, sles12, ubuntu12, ubuntu14, 或 debian7.
因此,我的这三个地址为以下:
http://master/AMBARI-2.4.1.0/centos7/
http://master/hdp/HDP/centos7/
http://master/hdp/HDP-UTILS-1.1.0.21/repos/centos7/
输入以下命令可以解决此问题:
[root@master centos7]# setenforce 0
3、安装Ambari Server
安装Ambari的步骤如下:
- 下载Ambari repository
- 设置Ambari server
- 启动Ambari server
3.1 配置Ambari repository
step 1 以root用户登录到host,这个host指的是我们需要安装ambari server的机器。
step 2 准备Ambari repository 配置文件
ambari.repo的内容如下:
#VERSION_NUMBER=2.4.1.0-22
[Updates-ambari-2.4.1.0]
name=ambari-2.4.1.0 - Updates
baseurl=INSERT-BASE-URL
gpgcheck=1
gpgkey=http://public-repo-1.hortonworks.com/ambari/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
以我为例,我的ambari.repo编辑为以下内容:
#VERSION_NUMBER=2.4.1.0-22
[Updates-ambari-2.4.1.0]
name=ambari-2.4.1.0 - Updates
baseurl=http://master/AMBARI-2.4.1.0/centos7/2.4.1.0-22/
gpgcheck=1
gpgkey=http://master/AMBARI-2.4.1.0/centos7/2.4.1.0-22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
可以通过设置gpgcheck=0
来禁用GPG检查,如果不禁用,我们也可以修改gpgkey成本地的库源。其中,INSERT-BASE-URL
为之前设置好的本地镜像Ambari的URL地址。以我为例,我是安装在机器系统为centOS7的master上,所以,我的INSERT-BASE-URL
为http://master/Ambari-2.4.1.0/centos7
,gpgkey为http://master/Ambari-2.4.1.0/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
ambari.repo文件编辑好后,放置到目录/etc/yum.repos.d/
下。
如果有网络连接的话,可以直接下载Ambari repository,然后修改内容,如下:
wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.1.0/ambari.repo -O /etc/yum.repos.d/ambari.repo
vi /etc/yum.repos.d/ambari.repo
修改的内容如前面一样。
3.2 安装Ambari server
yum install ambari-server
3.3 设置Ambari server
在启动Ambari server 之前,我们必须进行设置Ambari server,命令如下:
ambari-server setup
以后如果想改变jdk的目录,也可以使用这个命令进行修改设置,在接下来的设置中,会有选择jdk的目录,选择custom jdk,然后再输入新的jdk目录。
3.4 启动Ambari server
启动命令:
ambari-server start
检查服务开启状态:
ambari-server status
停止服务:
ambari-server stop
在启动Ambari server的时候,Ambari会运行一个数据库一致性检查来发现问题,如果发现问题,则server会中断,控制台会输出:
DB configs consistency check failed.
更多的详细信息会记录到以下日志文件中:
/var/log/ambari-server/ambari-server-check-database.log
这个时候,我们可以强制启动服务,跳过这个检查:
ambari-server start --skip-database-check
4、安装Ambari Agent
安装Ambari Agent分为两步:
- 下载Ambari Repo
- 安装Ambari Agent
4.1 下载Ambari Repo
step 1 以root用户登录到host,这个host指的是我们需要安装ambari agent的机器。(这一步与安装Ambari server的第一步类似)
step 2 下载Ambari repository到host.(这一步与安装Ambari server的第二步类似,命令是一样的,Ambari Repo也是一样的)
wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.1.0/ambari.repo -O /etc/yum.repos.d/ambari.repo
注意:如果没有网络连接的话,上面这条命令是无法执行的,本文讲述的是使用本地库进行安装Ambari,因此,我们可以直接编辑/etc/yum.repos.d/ambari.repo文件,修改内容与前面讲的一样,请参考配置Ambari Repository那节。
4.2 安装Ambari agent(与安装ambari server命令类似,一个是server,一个是agent)
yum install ambari-agent
4.3 设置Ambari Server Host Name
编辑ambari-agent配置文件,设置之前安装过Ambari-server 的主机名:
vi /etc/ambari-agent/conf/ambari-agent.ini
[server]
hostname=<your.ambari.server.hostname>
url_port=8440
secured_url_port=8441
4.4 启动ambari agent
ambari-agent start
相关的命令有以下:
ambari-agent status # 检查agent服务运行状态
ambari-agent stop # 停止agent服务
5、安装HDP
打开浏览器,使用Ambari安装向导进行安装,配置,和部署你的集群,步骤如下:
- 登录到Apache Ambari
- 给集群命名
- 选择版本
- 安装选项
- 确认主机
- 选择服务
- 分配Masters
- 分配Slaves和Clients
- 定制服务
- Review
- 安装,启动和测试
- 完成
5.1 登录到Apache Ambari
在浏览器中输入
http://<your.ambari.server>:8080
其中,<your.ambari.server>
是之前我们安装过ambari server的主机名称。登录的时候,用户名和密码都为:admin
在启动Ambari 服务之后,使用web浏览器,打开Ambari Web。在浏览器的地址栏输入:
http://{your.ambari.server}:8080
其中,{your.ambari.server}是你的ambari server所在的主机名,例如,我的ambari server的主机名为master,则我输入:
http://master:8080
进入网页之后,使用默认用户名/密码:admin,稍后可以修改密码。
对于一个新的集群,Ambari 安装向导会显示一个欢迎页面。
5.2 开启Ambari安装向导
如下:
点击“Launch Install Wizard”
5.3 为集群命名
在文本框中输入集群的名字
5.4 选择版本
这里选中“Use Local Repository”,使用本地源安装,然后找到自己的系统,我的是centos7,其实就是选这个redhat7,然后把其他的都删除掉,如果不知道自己的系统对应的哪个OS,请参考以下:
http://docs.hortonworks.com/HDPDocuments/Ambari-2.4.1.0/bk_ambari-installation/content/select_version.html
然后,填上自己相应的URL,URL就是前面本地源的地址。
5.5 安装选项
在“Target Hosts”里填上主机名,主机名一定要是全限定名。一行一个主机名。
在“Host Registration information”,我使用的是下面那个,即不使用ssh,使用这种方式需要注意:需要提前在host上安装好ambari-agent,并启动服务。
5.6 确认Hosts
等待验证,这一步主要是检查一下hosts的环境,如果提示哪些环境有问题,照着修改就好了。主要是一些jdk,目录啊,防火墙啊什么的。可参考以下官网:
http://docs.hortonworks.com/HDPDocuments/Ambari-2.4.1.0/bk_ambari-installation/content/prepare_the_environment.html
5.7 选择服务
选择自己需要的服务,这里的服务(Services)指的是各个组件,比如hbase, hive , spark等等。
现在没有选择的服务,在以后也可以添加,所以,看着选就好了。
5.8 分配Master
这里主要是对hosts上安装的服务进行master选择,比如我安装hdfs的话,那么hdfs的master,即namenode需要安装到哪个节点,类似云云的。
5.8 分配slave和clients
这步是选择slave和clients。
5.9 定制服务
这里主要是对安装的服务进行配置,很多配置我们可以使用默认的,但有些必须让我们手动输入,比如hive的数据库的密码,因为hive的元数据是存储在关系型数据库中的,因此,这里在给我们安装hive的时候,会自动帮我们安装一个关系型数据库,这里需要输入的就是这个数据库的密码。当然,看着红色的数字,那就是需要我们手动输入的配置。然后下一步。
不管它,直接Proceed anyway。
5.10 Review
5.11 安装,启动和测试
这一步主要是在各个hosts上安装服务并启动。可能会出现很多问题,通常是对报错进行修复,然后retry。我也把我所遇到的问题贴在了文章的后面。可以参考一下,大多是源的一些问题。
成功之后可以看到dashboard:
如果发现哪个service有问题,可以删除这个service,然后重新安装这个service。
异常
异常1
Traceback (most recent call last):
File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-INSTALL/scripts/hook.py", line 37, in <module>
BeforeInstallHook().execute()
File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 280, in execute
method(env)
File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-INSTALL/scripts/hook.py", line 34, in hook
install_packages()
File