目前大数据集群开源的主要是ambari和CDH,下面我来介绍下如何安装ambari:
一、基础环境插件安装
yum clean all
yum makecache
升级openssl
yum install -y openssl
yum -y install ruby*
yum -y install redhat-lsb*
yum -y install snappy*
yum -y install gcc(如果没有就要装)
配置映射关系:
安装jdk,过程就不赘叙了:
vi /etc/profile 加到末尾
SET JAVA HOME
export JAVA_HOME=/usr/java/jdk1.8.0_74
export JSTORM_HOME=/usr/hdp/2.6.2.0-205/jstorm-2.2.1
export PATH=PATH:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
关闭防火墙
service iptables stop
chkconfig iptables off
禁用selinux,vi /etc/selinux/config,按照图示修改:
查看selinux的状态
/usr/sbin/sestatus -v
disabled即关闭状态
如果没关闭,则用如下命令关闭,不用重启机器
setenforce 0
二、各节点之间配置相互免密登录
关闭Linux的THP服务
vim /etc/rc.local
添加:
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
exit 0
echo never > /sys/kernel/mm/transparent_hugepage/enabled
检查:有[never]则表示THP被禁用
cat /sys/kernel/mm/transparent_hugepage/enabled
配置免密
如果没有生成密钥的要生成一下
ssh-keygen
ssh-copy-id ip地址
安装ntpd服务,主要用来服务器之间的时间同步
yum install -y ntpd
制作本地yum源
i.将如下3个包拷贝到集群的某一台机器上,并解压缩到/var/www/html目录下ambari-2.5.2-centos7.tar.gz,HDP-2.6.2.0-centos7-rpm.tar.gz,HDP-UTILS-1.1.0.20-centos7.tar.gz
ii.yum配置
解压HDP-UTILS-1.1.0.20-centos6.tar.gz 到目录 /var/www/html/ambari
tar zxvf HDP-UTILS-1.1.0.20-centos6.tar.tar -C /var/www/html/ambari
同理,把ambari-2.5.2-centos7.tar.gz目录拷贝到目录 /var/www/html/ambari
安装本地源制作工具yum install yum-utils createrepo
进入/var/www/html/ambari 目录,执行命令:createrepo ./
ambari本地源制作完成
同理,把HDP-2.6.2.0-centos7-rpm.tar.gz目录拷贝到目录 /var/www/html/hdp
进入/var/www/html/hdp 目录,执行命令:createrepo ./
hadoop本地源制作完成
配置yum源
cd /etc/yum.repos.d
vi ambari.repo
[ambari-2.2.1.]
name=Ambari 2.5.2
baseurl= http://master地址/ambari/
gpgcheck=0
enabled=1
[HDP-UTILS-1.1.0.20]
name=Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.20
baseurl= http://master地址/ambari/
gpgcheck=0
enabled=1
vi HDP.repo
[HDP-2.6]
name=HDP-2.6
baseurl=http://master地址/hdp/
path=/
enabled=1
vi HDP-UTILS.repo
[HDP-UTILS-1.1.0.21]
name=HDP-UTILS-1.1.0.21
baseurl=http://master地址/ambari/
path=/
enabled=1
至此yum源已经配置好了
master节点安装httpd
yum install -y httpd
若出现目录信息,且工作目录默认在/var/www/html
http服务使用80端口,检查端口是否占用
netstat -nltp | grep 80
如果有占用情况,安装完毕后需要修改http服务的端口号
sudo vim /etc/httpd/conf/httpd.conf
修改监听端口,Listen 80为其他端口
同时打开http://master地址/ambari/
http://master地址/hdp/ 这2个网址,看能否显示如下内容:
显示即为成功了,不显示可能是httpd没有启动,service httpd start启动下。
或者是baseurl设置的不对,baseurl的ip为ambari-server所在的机器。
如果显示yum源连接拒绝或者403forbidden,哪是因为apache用户没有访问权限chown -R apache:apache www 赋予权限即可
安装mysql
yum install mysql
安装mysql服务端
yum install -y mysql-server
yum install -y mysql-devel
i. mysql相关设置:
设置字符集
SET NAMES 'utf8';
set character_set_database=utf8;
set character_set_server=utf8;
查看字符集
SHOW VARIABLES LIKE 'character%';
看到字符集设置成utf-8了
service mysqld start
但是启动以后再查看,字符集还是latin1,治标不治疗本
vi /etc/my.conf
在[mysqld]上面加下面的话
[client]
default-character-set=utf8
在[mysqld]最下面加下面的话
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
重启mysql
service mysqld restart
SHOW VARIABLES LIKE 'character%';
修改数据库的字符集
库名:test
ALTER DATABASE hive
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改表的字符集
student为表
ALTER TABLE student
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
设置账号和密码
mysqladmin -u root password root
检查mysql是否为开机启动
chkconfig --list | grep mysqld
mysql未开机启动,需要开机启动
chkconfig mysqld on
再次chkconfig --list | grep mysqld检查一下状态
进入mysql
mysql -uroot -proot
如果想改密码,则进行下面操作。
UPDATE user SET Password=PASSWORD('root') where USER='root';
FLUSH PRIVILEGES;
进入mysql,查看是否能进行增删改查等相关操作。
ii. 登录mysql创建ambari、hive、oozie的资料库:
-
ambari for mysql 配置
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON . TO 'ambari'@'%';
CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON . TO 'ambari'@'localhost';
CREATE USER 'ambari'@'node1' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON . TO 'ambari'@'node1';
Create database ambari;
设置ambari的登录密码:
UPDATE user SET Password=PASSWORD('ambari') where USER='ambari';
FLUSH PRIVILEGES;
说明:node1是安装ambari Server所在的机器。
-
hive for mysql 配置
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON . TO 'hive'@'localhost';
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON . TO 'hive'@'%';
CREATE USER 'hive'@'node2' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON . TO 'hive'@'node2';
FLUSH PRIVILEGES;
CREATE DATABASE hive;
UPDATE user SET Password=PASSWORD('root') where USER='hive';
FLUSH PRIVILEGES;
说明:'node2' 是安装Hive Metastore元数据的机器。
-
root设置
GRANT ALL PRIVILEGES ON . TO root@'%' identified by 'root';
FLUSH PRIVILEGES;
oozie用户设置
CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';
GRANT ALL PRIVILEGES ON . TO 'oozie'@'%';
FLUSH PRIVILEGES;
三、Ambari 安装
清空缓存
yum clean all
提高安装软件的速度
yum makecache
安装ambari-master
yum install ambari-server
ambari-server 配置
ambari-server setup
直接回车,并且默认指定 ambari Server 的运行用户为 root
选择3,自定义已经安装JDK路径:/usr/java/jdk1.7.0_67
默认高级数据库配置,在这里输入3:(建议输入1采用默认的)
默认设置了ambari GUI 的登录用户为 admin/admin。并且指定 ambari Server 的运行用户为 root
ambari-server 启动:
ambari-server start
注意:这里启动不了大多与DB连接驱动有关:
yum install mysql-connector-java或者将驱动包放在/usr/share/java下
加载驱动进ambari的设置中
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector
-java-5.1.17.jar
另外,安装ambari-server的机器上要安装mysql客户端
确保安装mysql的机器上有ambari库,ambari库里面有相对应的表
如果没有ambari这个库,就需要做第三步中1.#ambari for mysql 配置的步骤了。
同时还需要进行如下操作:将表加载到ambari中
进入ambari-server所安装的机器cd /var/lib/ambari-server/resources ambari-agent 安装【所有节点】 四、集群管理平台的创建 常见的问题集锦 iv.启动yarn和hbase的时候显示No such file or directory: '/usr/hdp/current/hadoop-client/conf'而报错 五、Ambari节点的增加与删除 填写待增加节点的别名以及主节点的私钥,如下图所示: 最后记得停止该节点的ambari-agent,下线节点完毕,hdfs重新rebalance一下 关于安装ambari2.7版本以上的yum配置 [ambari-2.7.3.0] name=ambari Version - ambari-2.7.3.0 hdp.repo [HDP-3.0.1.0] [HDP-UTILS-1.1.0.22] ③ 编辑 /etc/python/cert-verification.cfg 配置文件,将 [https] 节的 verify 项设为禁用: 保存退出。 sed -i 's/verify=platform_default/verify=disable/ g' /etc/python/cert-verification.cfg ④ 编辑 /etc/ambari-agent/conf/ambari-agent.ini 配置文件,在 [security] 节部分,确保设置如下两个值,其它值保持不变: sed -i '/ssl_verify_cert=0/a force_https_protocol=PROTOCOL_TLSv1_2' /etc/ambari-agent/conf/ambari-agent.ini
如果元数据库跟ambari-server在同一个节点:
进入元数据库
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
完成后退出,再次启动ambari-server
ambari-server start
如果不在同一个节点上:
进入ambari-server所安装的机器vi /var/lib/ambari-server/resources
vi Ambari-DDL-MySQL-CREATE.sql
在sql的最开头加上use ambari;
然后在安装mysql所在的机器上执行如下sql:
mysql -h master节点 -uambari -pambari
yum install ambari-agent
启动:ambari-agent
/etc/init.d/ambari-agent start
如果某一台机器上的agent启动失败,可进行如下操作:
yum remove ambari-agent
同时清空/var/下的资料,再次yum下载ambari-agent
yum install ambari-agent
再次启动agent
/etc/init.d/ambari-agent start
显示ambari-agent started即表示成功了,那么可以安装组件了。
登录:http://master地址:8080 用户名:admin 密码:admin
创建集群:
选择hdp的安装版本:
并添加yum源的所在的路径
http://master地址/ambari/
http://master地址/hdp/
添加节点:cat /etc/hosts里面映射的名字
如果连不上,看下hostname是否配置正确了。
cat /etc/ambari-agent/conf/ambari-agent.ini
然后查查日志ambari-server.out
选择安装的组件:
服务分配:
分配完毕后开始进行安装,此处时间会比较长,请耐心等待。
i.ambari-server无法启动的问题
原因:没有正确的配置ambari和hive用户和库导致连接失败,或者是没有加载mysql驱动到设置中。
解决方案:
加载mysql驱动到ambari-setup中ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-5.1.17.jar
其次,检查mysql安装的机器上是否有ambari,hive用户和库,如果没有,需要重复之前的动作建库和用户
最后,需要检查ambari库里面是否有相关联的表,没有就需要加载进去
ii.部分ambari-agent启动失败的问题
原因:ambari-agent启动失败是因为之前启动过ambari,但是失败了进行重构时,没有清理干净造成
方案如下:
ambari-agent stop
ambari-server stop
yum remove ambari-agent
卸载安装的软件:
yum remove hadoop_2* hdp-select* ranger_2* zookeeper* bigtop* atlas-metadata* ambari* postgresql spark*
检查一下
yum list | grep @HDP
删除postgresql的数据:
rm -rf /var/lib/pgsql
删除用户:ambari会自动创建一些用户,清除集群时有必要清除这些用户,并删除对应的文件夹,避免造成权限问题。
具体操作见:http://blog.csdn.net/wk022/article/details/49278419
完毕以后,重新安装agent并启动就可以了。
yum install ambari-agent
ambari-agent start
iii.安装hive的时候,hive元数据启动不了
原因:安装hive的时候填写的登录密码不正确
方案:初始化hive的密码为输入的密码即可。
UPDATE user SET Password=PASSWORD('hive') where USER='hive';
重装ambari集群的时候,一定要把mysql表中ambari的信息给清空掉,最好是换台机器装mysql
原因:软链接与hadoop安装地址掉了,吧软链接增加上去即可
ln -s /usr/hdp/current/hadoop-client/conf /etc/hadoop/conf
i.ambari节点的增加
打开ambari页面,点击hosts,进入到hosts操作页面,点击add new hosts
如下图所示:
后续的步骤就是依次安装组件,前面有讲解过,就不赘言了
ii.Ambari下线节点
点击hosts进入到所有节点展示页面,点击需要删除的节点,如红色框所示
进入该节点以后,必须先停止该节点下的所有服务,点击左边红色框内的delete
iii.ambari卸载某个节点的服务
如上一样,还是点击hosts,然后选中需要下线服务的节点,进入到该节点的服务列表,停止该服务,然后点击delete即可,这个时候ambari会提示要重启关联的组件,重启一下需要重启的组件即可。
将下载的3个包全部解压到/var/www/html目录下
分别进入ambari和HDP下修改ambari.repo和hdp.repo的配置文件信息,然后cp到/etc/yum.respo下
信息如下:
ambari.repoVERSION_NUMBER=2.7.3.0-139
json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
baseurl=http://172.16.1.89/ambari/centos7/2.7.3.0-139
gpgcheck=0
gpgkey=http://172.16.1.89/ambari/centos7/2.7.3.0-139/RPM-GPG-KEY
enabled=1
priority=1VERSION_NUMBER=3.0.1.0-187
name=HDP Version - HDP-3.0.1.0
baseurl=http://172.16.1.89/HDP/centos7/3.0.1.0-187/
gpgcheck=0
gpgkey=http://172.16.1.89/HDP/centos7/3.0.1.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://172.16.1.89/HDP-UTILS/centos7/1.1.0.22/
gpgcheck=0
gpgkey=http://172.16.1.89/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/
enabled=1
priority=1[root@ambari ~]# vi /etc/python/cert-verification.cfg
# Possible values are:
# 'enable' to ensure HTTPS certificate verification is enabled by default
# 'disable' to ensure HTTPS certificate verification is disabled by default
# 'platform_default' to delegate the decision to the redistributor providing this particular Python version
# For more info refer to https://www.python.org/dev/peps/pep-0493/
[https]
verify=disable
[root@ambari ~]# vi /etc/ambari-agent/conf/ambari-agent.ini
[security]
ssl_verify_cert=0
force_https_protocol=PROTOCOL_TLSv1_2
保存退出,重启 ambari-agent:[root@ambari ~]# ambari-agent restart