Ambari安装笔记
原因:
1、 Ambari不支持ubuntu16,虽然最新的Ambari版本好像是支持的,但是没有试过。
2、 Python 2.7默认启用SSL证书验证。Ambari代理使用自签名证书与服务器进行通信,不能验证。因此,如果在机器上安装了Python 2.7,则代理程序无法注册到服务器。我们需要在代理中手动禁用证书验证,或者为加密通信找出不同的解决方案。
这个问题可以解决,通过改变python版本解决,但是比较麻烦。
3、 在Ubuntu上安装的时候Ambari版本使用的是2.2 可能最新版2.5以上问题已解决了。但是未尝试。
原因:
1、 曾经安装2.0版本时,将Ambari建表语句导入到mysql数据库中时遇到建表失败(主键长度大于1000byte)。在2.2时这个建表语句已经改了,不会出现这个问题。
2、 一个开源项目高版本的功能以和支持比低版本成熟完善多了,安装起来应该会更为容易、规避了很多低版本安装遇到的问题。
如上,选择合适的版本很重要,选择不当就会掉入坑里,浪费大量的时间。
1、 本文以下内容都是以centos系统为准。
2、 因为安装时没有截图,并且部分设置规划不完美,所以截图来都是来自后期截图或网络上的图片,和文字说明有所出入,我会在图片上加上描述信息,应该不影响阅读此文并进行安装,以后若有时间再次安装Ambari时会刷新此文档。
准备4台机子
192.168.0.160 #主机,ambari-server在这个机子上 192.168.0.161 #安装hadoop01 192.168.0.162 #安装hadoop02 192.168.0.163 #安装hadoop03 |
以下设定,如无特别说明以hadoop02(192.168.0.1)为环境设定
1、 修改对应网卡ip地址
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 |
修改内容:
DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0 HWADDR=08:00:27:3A:25:FE #对应的网卡物理地址 TYPE=Ethernet UUID=8a1aa5eb-9d62-4dad-9c23-ccd0538700ca ONBOOT=yes NM_CONTROLLED=yes #系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备 BOOTPROTO=static #设置网卡获得ip地址的方式,此处设为static BROADCAST=192.168.0.225 #对应的子网广播地址 IPADDR=192.168.0.162 # IP地址 NETMASK=255.255.255.0 #网卡对应的网络掩码 NETWORK=192.168.0.0 #网卡对应的网络地址 |
2、 修改网关的配置文件
# vim /etc/sysconfig/network |
修改内容:
NETWORKING=yes #表示系统是否使用网络,一般设置为yes。 HOSTNAME=hadoop02.yjhh.com #设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应 GATEWAY=192.168.0.1 #网关 |
3、 修改DNS的配置文件
# vim /etc/resolv.conf |
修改内容:
nameserver 192.168.0.1 #DNS设置域名服务器 |
4、 重启网络配置
# /etc/init.d/network restart |
最好重启:reboot
4台机子hosts文件配置:
127.0.0.1 localhost 192.168.0.160 ambari.yjhh.com 192.168.0.161 hadoop01.yjhh.com 192.168.0.162 hadoop02.yjhh.com 192.168.0.163 hadoop03.yjhh.com |
hosts文件地址:/etc/hosts
1、 修改/etc/sysconfig/network 文件里的HOSTNAME。
命令如:
# vim /etc/sysconfig/network |
设置和前面讲过的一样:
NETWORKING=yes #表示系统是否使用网络,一般设置为yes。 HOSTNAME=hadoop02.yjhh.com #设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应 GATEWAY=192.168.0.1 #网关 |
2、 使用命令hostname 设置hostname
命令如:
# hostname hadoop02.yjhh.com |
hostname设置不好安装集群时就不能成功,并且使用/etc/init.d/network restart 命令重启机子有时并不管用。
每台主机上打开配置
# vim /etc/ssh/sshd_config |
修改下面选项:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys |
设置完成后重启ssh
# /etc/init.d/ssh restart |
# ssh-keygen -t rsa |
执行完成在~/.ssh/目录下会生成公匙文件id_rsa.pub,私匙文件id_rsa
主机即 ambari安装的机子192.168.0.160hostnane为ambari.yjhh.com
依次在主机和其他三个hadoop机子执行下面命令
# ssh-copy-id [email protected] |
# scp ~/.ssh/uthorized_keys [email protected]:~/.ssh/ # scp ~/.ssh/uthorized_keys [email protected]:~/.ssh/ # scp ~/.ssh/uthorized_keys [email protected]:~/.ssh/ |
关闭命令: service iptables stop
永久关闭防火墙:chkconfig iptables off
两个命令同时运行,运行完成后查看防火墙关闭状态
service iptables status
相关命令参考:
1 关闭防火墙-----service iptables stop 2 启动防火墙-----service iptables start 3 重启防火墙-----service iptables restart 4 查看防火墙状态--service iptables status 5 永久关闭防火墙--chkconfig iptables off 6 永久关闭后启用--chkconfig iptables on |
启动命令:
# /etc/init.d/ntpd start |
配置启动项:
# chkconfig ntpd on |
打开selinux cofnig 文件:
# vim /etc/selinux/config |
修改SELINUX 为disabled
SELINUX=disabled |
重启机子。
1. 下载到jdk-8u131-linux-x64.tar.gz
2. 在/usr/目录下创建java目录
mkdir /usr/java cd /usr/java |
3. 将下载的tar包拷贝到/usr/java 目录下然后解压
# tar -zvxf jdk-8u131-linux-x64.tar.gz |
4. 设置环境变量
# vim /etc/profile |
用vim 打开profile增加如下内容:
#set java environment JAVA_HOME=/usr/java/jdk1.8.0_131 JRE_HOME=/usr/java/jdk1.8.0_131/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH |
让修改生效:
# source /etc/profile |
5. 验证java是否安装成功
# java -version |
查看系统上是否已经安装了mysql数据库:
# rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库 |
有的话,我们就通过 rpm -e 命令或者 rpm -e --nodeps 命令来卸载掉
# rpm -e mysql // 普通删除模式 # rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 |
删除完以后我们可以通过 rpm -qa | grep mysql 命令来查看mysql是否已经卸载成功!!
#yum install -y mysql-server mysql mysql-devel |
启动命令:
# service mysqld start |
# chkconfig mysqld on |
# chkconfig --list | grep mysqld |
/usr/bin/mysqladmin -u root password 'root' // 为root账号设置密码,此处密码为root |
# mysql -uroot -proot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database ambari character set utf8 ; # 创建ambari库 Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec) #授权外网通过root用户 以root密码访问
mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
Database changed mysql> SELECT User, Password, Host FROM user; #查看 用户名密码 +------+-------------------------------------------+-----------+ | User | Password | Host | +------+-------------------------------------------+-----------+ | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | localhost | | root | | ambari | | root | | 127.0.0.1 | | | | localhost | | | | ambari | | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | % | +------+-------------------------------------------+-----------+ 6 rows in set (0.00 sec)
mysql> flush privileges; # 刷新授权信息 Query OK, 0 rows affected (0.00 sec) |
/usr/share/java/ /var/lib/ambari-server/resources #等ambari安装后再copy到这个目录下 /usr/lib/ambari-server #等ambari安装后再copy到这个目录下 |
登录ambari-server主机(192.168.0.160)
# cd /etc/yum.repos.d/ #wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.5.0.3/ambari.repo -O /etc/yum.repos.d/ambari.repo |
检查是否安装成功:
# yum repolist |
可看到列表:
命令:
# yum install ambari-server |
1. 安装命令
# ambari-server setup |
2. 检查SELinux是否关闭,如果关闭不用操作
Using python /usr/bin/python Setup ambari-server Checking SELinux... SELinux status is 'disabled' |
3. 提示是否自定义设置。输入:y
Customize user account for ambari-server daemon [y/n] (n)? y |
4. ambari-server 账号。输入:root或回车默认即为root
Enter user account for ambari-server daemon (root): Adjusting ambari-server permissions and ownership... |
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,则输入: /usr/java/jdk1.8.0_131
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_131 Validating JDK on Ambari Server...done. Completing setup... |
7. 数据库配置。选择:y
Configuring database... Enter advanced database configuration [y/n] (n)? y |
8. 选择数据库类型。输入: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 |
9. 设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。
Hostname (localhost): Port (3306): Database name (ambari): Username (root): Enter Database Password (root) |
10. 提示必须安装MySQL JDBC,回车结束ambari配置
WARNING: Before starting Ambari Server, you must copy the MySQL JDBC driver JAR file to /usr/share/java. Press |
11. 提示将Ambari数据库脚本导入到数据库
WARNING: Before starting Ambari Server, you must copy the MySQL JDBC driver JAR file to /usr/share/java. Press |
12. 将Ambari数据库脚本导入到数据库
用Ambari用户(上面设置的用户)登录mysql
mysql -uroot –proot use ambari source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql |
# ambari-server start |
成功启动后在浏览器输入Ambari地址:
http://192.168.0.160:8080/
出现登录界面