Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。
本文记录了博主首次安装Ambari,以及用其安装hadoop、hive、spark等大数据服务的过程,整理成记录,防止忘记。
从2021年1月开始,ambari开始收费了,如果想使用ambari,要么基于源码自己编译
https://ambari.apache.org/,
要么给钱下载
https://www.cloudera.com/products/open-source/apache-hadoop/apache-ambari.html
当然,我们也可以在各种网站、网盘找资源 【手动狗头】(如果找不到,评论留邮箱)
首先准备好三个包,本次安装的是ambari2.7.4
其中HDP-3.1.4.0-centos7-rpm.tar.gz包很大,大概有8,9个G,如果下载到的是分卷包,解压的时候请使用分卷解压命令:
cat HDP-3.1.4.0-centos7-rpm.tar.gz.* | tar -xvf
首先我们准备三台主机(或三台虚拟机),让后在上面安装centos7系统,安装java环境、设置固定IP、设置主机名称、设置hosts文件,设置SSH免密登录(有文章说只需设置主节点(ambari server所在)机器对其他机器免密即可)。详细设置过程见另一篇文章 https://www.jianshu.com/p/1eba6e506738 的第一章节“服务器准备”。
其他注意事项:
# 关闭防火墙
systemctl stop firewalld.service
# 开机不启动
systemctl disable firewalld.service
# 临时关闭(机器重启后会再开)
setenforce 0
# 永久关闭(设置后需重启才能生效)
vi /etc/selinux/config # 然后将 SELINUX=enforcing 改为 SELINUX=disabled
本章节需要在主节点上操作(hadoop201),
可使用httpd或者nginx的方式将ambari发布出去,本章节将两个方法都写上,读者基于自己习惯选一个即可。
# 查看是否安装了httpd
whereis httpd
#安装 httpd ,已经安装请忽略
yum -y install httpd
# 查看是否启动httpd
systemctl status httpd
# 启动httpd
systemctl start httpd
# 或 service httpd start
安装完成后,会生成 /var/www/html目录(相当于Tomcat的webapps目录)
将之前下的ambari-2.7.4.0-centos7.tar.gz、HDP-3.1.4.0-centos7-rpm.tar.gz、HDP-UTILS-1.1.0.22-centos7.tar.gz三个包放到 /var/www/html/ 下。
安装nginx的方法略...
创建文件夹/home/ambari_repo/(也可以是其他位置,哪个磁盘大放哪儿),将之前下的ambari-2.7.4.0-centos7.tar.gz、HDP-3.1.4.0-centos7-rpm.tar.gz、HDP-UTILS-1.1.0.22-centos7.tar.gz三个包放到 /home/ambari_repo/ 下。
在nginx配置中添加ambari的配置,本次监听了80端口
server {
listen 80;
server_name 192.168.1.201;
location / {
root /home/ambari_repo/;
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
}
}
进入压缩包所在目录,执行如下命令:
# 解压压缩包
tar -zxvf ambari-2.7.4.0-centos7.tar.gz
tar -zxvf HDP-3.1.4.0-centos7-rpm.tar.gz
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz
# 安装本地源工具
yum install yum-utils createrepo yum-plugin-priorities -y
# 创建本地源
createrepo ./
然后在浏览器访问 http://主节点ip, 看看是否能看到如下页面

# 注意以自己的实际地址为准
cd /home/ambari_repo/ambari/centos7/2.7.4.0-118/
vi ambari.repo
修改后的内容如下(主要是将baseurl和gpgkey改为实际值):
#VERSION_NUMBER=2.7.4.0-118
[ambari-2.7.4.0]
#json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
name=ambari Version - ambari-2.7.4.0
#baseurl=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.4.0
baseurl=http://192.168.1.201/ambari/centos7/2.7.4.0-118
gpgcheck=1
#gpgkey=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.4.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
gpgkey=http://192.168.1.201/ambari/centos7/2.7.4.0-118/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
将此文件复制到/etc/yum.repos.d
cp ambari.repo /etc/yum.repos.d/
cd /home/ambari_repo/HDP/centos7/3.1.4.0-315/
vi hdp.repo
修改后的内容如下(主要是将baseurl和gpgkey改为实际值):
#VERSION_NUMBER=3.1.4.0-315
[HDP-3.1.4.0]
name=HDP Version - HDP-3.1.4.0
baseurl=http://192.168.1.211/HDP/centos7/3.1.4.0-315
gpgcheck=1
gpgkey=http://192.168.1.211/HDP/centos7/3.1.4.0-315/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://192.168.1.211/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://192.168.1.211/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
将此文件复制到/etc/yum.repos.d
cp hdp.repo /etc/yum.repos.d/
重新加载yum缓存
yum clean all
yum makecache
这样,本地ambari的yum源就安装好了
yum -y install ambari-server
ambari-server默认使用postgresql数据库的安装方式,其他的数据库也支持,这里我用到的是mysql,大家根据自身选一种即可。
我用的docker安装的,参考:https://www.jianshu.com/p/2fce819660fc
用navcat连接mysql,然后新建数据库ambari, 新建数据库hive。
在数据库ambari中执行sql脚本: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
网上下载mysql-connector-java-5.1.*.jar,上传到主节点的/home/temp/下,本次使用的是mysql-connector-java-5.1.45.jar
然后执行如下命令:
cd /home/temp/
cp mysql-connector-java-5.1.45.jar /usr/share/java/mysql-connector-java.jar
cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar
vi /etc/ambari-server/conf/ambari.properties #在文件中添加:server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
ambari-server setup
设置内容参考以下
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'enabled'
SELinux mode is 'enforcing'
Temporarily disabling SELinux
WARNING: SELinux is set to 'permissive' mode and temporarily disabled.
OK to continue [y/n] (y)? y
Customize user account for ambari-server daemon [y/n] (n)? y
Enter user account for ambari-server daemon (root):
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 2
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_211-amd64
Validating JDK on Ambari Server...done.
Check JDK version for Ambari Server...
JDK version found: 8
Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server.
Checking GPL software agreement...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? n
Completing setup...
Configuring database...
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):
Port (3306):
Database name (ambari):
Username (ambari): root
Enter Database Password (bigdata): 输入设置的密码(注意不能有特殊字符)
Re-enter password: 再次输入设置的密码
Configuring ambari database...
Should ambari use existing default jdbc /usr/share/java/mysql-connector-java.jar [y/n] (y)? y
Configuring remote database connection properties...
WARNING: Before starting Ambari Server, you must run the following DDL directly from the database shell 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.7.3.0.139.jar
....
Ambari repo file doesn't contain latest json url, skipping repoinfos modification
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
基本上注意y以下三点即可
然后设置ambari-server的mysql驱动路径
# 设置ambari-server的mysql驱动路径
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
ambari-server start
然后用浏览器访问 http://192.168.1.201:8080/ 即可,默认帐密为 admin/admin

启动ambari-server后,会自动在另外两个节点上安装ambari-agent. 如果没安装,手动安装一下。
# 安装
yum install ambari-agent -y
# 修改配置
vim /etc/ambari-agent/conf/ambari-agent.ini
##修改以下内容, 注hostname=hadoop201是安装ambari-server的主节点服务器名称
[server]
hostname=hadoop201
整个Ambari平台就安装完了。以后要加节点机器,只需要在新的机器上安装ambari-agent即可。
如果出现错误,请注意查看日志,根据具体的错误内容进行处理,默认ambari-server的日志在/var/log/ambari-server/ambari-server.log里面。
如果在处理日志的过程中或者后面安装的过程中出现一些莫名的错误,可以重置的安装:
# 停止
ambari-server stop
# 重置
ambari-server reset
# 再设置一般
ambari-server setup
访问ambari地址: http://ip:8080/ , 帐密: admin/admin登录后,会看到如下页面,点击按钮。

给集群起个名称

选择HDP版本,修改本地源地址


地址注意改成自己的地址,制作本地源时的地址。
只保留redhat7的,其他的都删除。在ambari-setup时GPL选项输入的n,所以此处没有HDP-3.1-GPL
4.添加主机名称,上传私钥
将主节点机器上的文件 /root/.ssh/id_rsa 文件下载下来(.ssh是隐藏文件夹,直接cd进去),然后上传上ambari里面。

等待安装
如果出现了错误,可点击Failed的查看错误日志

大数据组件安装,需要哪些勾选哪些



分配节点组件
这步需要注意,基于机器的配置进行组件分配,默认安装,会导致主从节点分配负载差异很大。

分配节点主从

帐密配置
hive的数据库用户密码填上之前创建好的


设置大数据相关文件存储路径
实际生产中,哪个磁盘大放哪里,另外ambari不建议设置到/home文件夹下,所以可以将创建一个根目录文件夹 /hadoop 然后将磁盘挂载上去。



用户名、存储路径、空间内存限制设置
全使用默认值即可,直接NEXT


开始安装


接下来就是漫长的等待过程了!
安装成功,操作ambari


这里就涉及ambari的操作说明了,以后有时间在加上...
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
当我执行>rvminstall1.9.2时一切顺利。然后我做>rvmuse1.9.2也很顺利。但是当涉及到ruby-v时..sam@sjones:~$rvminstall1.9.2/home/sam/.rvm/rubies/ruby-1.9.2-p136,thismaytakeawhiledependingonyourcpu(s)...ruby-1.9.2-p136-#fetchingruby-1.9.2-p136-#downloadingruby-1.9.2-p136,thismaytakeawhiledependingonyourconnection...%Total%Rece