一.基础系统环境配置(注意需要英文环境,后面启动hive的时候会因为中文报错,如果中文环境,所有节点使用vi /etc/sysconfig/i18n将zh_CN改为en_US)
1.网络通信配置:
机房环境下需要使用u盘安装centos6.5的系统,需要手动设置网络桥接模式,方便后续集群通信和winscp上传压缩包。(虚拟机环境下的话只需要安装系统的时候设置一下网络连接模式,装完系统后安装vmware的tools就可以执行拷贝操作了)
暂无
2.离线系统工具包准备:(这里因为是离线环境,各自的环境都不统一,所以如果安装过程中遇到有任何包的缺失,自己在网上又找不到的话,可以通过使用vi /etc/yum.conf,将keepcache改成1,默认0代表安装后不保存包头和软件包;然后使用cat /etc/yum.conf|grep XXXX,来查看下载包的地址)
(1)openssl:openssl-1.0.1e-48.el6_8.1.x86_64
(2)createrepo:deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
createrepo-0.9.9-24.el6.noarch.rpm
(3)ntp:
(4)yum.plugins:yum-plugin-priorities-1.1.30-37.el6.noarch.rpm
3.安装系统工具包:
(1)升级openssl
rpm -qa|grep openssl 查看当前系统的openssl版本
rpm -e --nodeps openssl-1.0.1e-15.el6.x86_64 删除系统自带oepnssl
rpm -qa|grep openssl 查看是否删除
rpm -ivh openssl-1.0.1e-48.el6_8.1.x86_64.rpm 安装新版本openssl
rpm -qa|grep openssl 查看是否安装成功
(2)安装createrepo
rpm -qa|grep createrepo 查看当前系统是否安装改工具,如有确认版本不低于新版本,否则最好删除重新安装,删除操作同上
rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm(一定按照顺序执行,因为有依赖关系)
rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
rpm -ivh createrepo-0.9.9-24.el6.noarch.rpm
(3)
二.Ambari主节点安装
1. 修改hostname
# vim /etc/hosts
增加:
192.168.10.11 192.168.10.11
# hostname 192.168.10.11
# vim /etc/sysconfig/network
HOSTNAME=localhost.localdomain
修改为:
HOSTNAME=192.168.10.11
2.
安装jdk1.8
#rpm -qa|grep jdk
# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
# java -version(查看系统自带jdk是否卸载)
# tar -zxvf jdk-8u77-linux-x64.gz -C /usr/jdk/
# vi /etc/proifile
编辑如下内容:
# source /etc/profile
# java -version(再次查看是否配置成功)
3. 配置ssh通信
# ssh-keygen -t rsa#一路回车
# cd ./.ssh
# cat id_rsa.pub >> authorized_keys
多台服务器时,在每一台服务器上运行一遍ssh-keygen,并将本authorized_keys复制到其它目标服务器的~/.ssh目录。(这里在后面配置集群的时候会操作)
测试无密码连接:
# ssh 192.168.10.11
同时测试其它所有服务器连接
# exit
4. 关闭防火墙
(1)查看iptables状态:
# service iptables status
关闭iptables服务:
# chkconfig iptables off (重启后生效)
# service iptables stop (临时关闭)
查看iptables状态:
(2)查看selinux状态:
# /usr/sbin/sestatus -v
关闭selinux:
# vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,重启后生效
# setenforce 0 (临时生效)
5. 所有节点配置ntp服务,单节点不需要
暂无
6. 启动httpd服务
rpm -qa|grep httpd查看是否安装httpd
chkconfig --levels 235 httpd on
service httpd start(这里可能提示由于hostname而启动失败,这时候需要重启)
7. 制作本地源
(1)在/home目录下新建hortonworks文件夹
将安装所需软件上传至该文件夹内,显示该文件夹内所有文件:
# ls /home/hortonworks
(2)# cd /var/www/html
# tar -zxvf /home/hortonworks/ambari-2.0.0-centos6.tar.gz
# tar -zxvf /home/hortonworks/HDP-2.2.4.2-centos6-rpm.tar.gz
# tar -zxvf /home/hortonworks/HDP-UTILS-1.1.0.20-centos6.tar.gz
(3)挂载系统资源
# mkdir /var/www/html/centos6
# mount -o loop /home/hortonworks/centos_x64_6.5.iso /var/www/html/centos6
# ls /var/www/html/centos6
(4)开始制作本地源
# createrepo /var/www/html/
#createrepo /var/www/html/apache-ambari-2.0.0-src/
(5)修改yum配置文件
# cd /etc/yum.repos.d
# ls
# mv CentOS-Base.repo CentOS-Base.repo.bak
# mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
# mv CentOS-Media.repo CentOS-Media.repo.bak
# mv CentOS-Vault.repo CentOS-Vault.repo.bak
# ls
(HDP2.4目录结构不同,并且也没有默认的ambari.repo文件,所以随便找一个,按照下面修改也可以)
# cp /var/www/html/ambari/centos6/2.x/updates/2.0.0/ambari.repo /etc/yum.repos.d/
# cp /var/www/html/HDP/centos6/2.x/updates/2.2.4.2/hdp.repo /etc/yum.repos.d/
修改ambai.repo文件:
# vim /etc/yum.repos.d/ambari.repo
原ambari.repo文件内容:
修改为(注意将下面ambari-updates部分删除,因为那是ambari源地址,需要外网):
修改hdp.repo文件:
# vim /etc/yum.repos.d/hdp.repo
原hdp.repo文件内容:
修改为:
新建centos.repo文件:
# vim /etc/yum.repos.d/centos.repo
写入下面内容:
(6)装yum-plugin-priorities包
# rpm -qa|grep yum-plugin-priorities(是的repo中的priority优先级生效)
# rpm -ivh yum-plugin-priorities.rpm
(7)yum源操作
清除yum源
# yum clean all
yum源列表
# yum list
Yum源可用列表
# yum list available
7.安装Ambari
(1)安装ambari-server
# yum -y install ambari-server
(2)配置ambari服务
将jdk-8u77-linux-x64.tar.gz和UnlimitedJCEPolicyJDK7.zip上传到目录/var/lib/ambari-server/resources
# cp /home/hortonworks/jdk-7u67-linux-x64.tar.gz /var/lib/ambari-server/resources
# cp /home/hortonworks/UnlimitedJCEPolicyJDK7.zip /var/lib/ambari-server/resources
# ls /var/lib/ambari-server/resources
# ambari-server setup (注意到enter choice(1):3输入JAVA_HOME)postgresql数据库
(3)给ambari配置本地源地址
# vim /var/lib/ambari-server/resources/stacks/HDP/2.4/repos/repoinfo.xml
原repoinfo.xml内容为:
修改后:
(4)批量安装Centos Development Tools
# yum -y groupinstall "Development tools"
(5)登录ambari界面
# ambari-server start
(6)Transparent Huge Pages 禁用
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
(7)登录Ambari
http://192.168.10.11:8080/ 账户:admin 密码:admin
三.Ambari集群配置
1.选择HDP版本
2.安装配置
选择目标主机,一行一个主机。要让ambar server自动在所有主机安装ambari-agent,需要提供ambari server root账户的私钥,即/root/.ssh/ id_rsa文件,选中使用本地源安装hadoop,然后下一步
选择ip地址作为hostname的原因是集群一般在机房不通外网,如果同局域网的别的人想访问某些组件的服务页面,比如hdfs的brower页面,那么是需要改自己本地的dns映射的,不然访问不到,所以为了方便干脆设置ip,至于警告暂时可以忽略。(另外这样设置会有一个问题,就是会导致datanode节点的心跳消失,这是由于此版本的hadoop默认不建议ip地址作为hosts,需要修改配置文件,后面安装slave的时候会提到)
3.确认主机
4.选择安装服务组件(这里有一些服务依赖的知识,比如hive必须要有hdfs等,所以选择的时候要稍微考虑一下)
5.选择分配主机(这里因为先装了一个主节点,所以默认下一步就可以了)
6.选择分配客户端机器
7.配置各组件服务(这里大多Ambari都给默认配置好了,有感叹号的代表未配置或者配置有问题)
8.配置hive元数据存储数据库(这里就涉及到hive的内置数据库还是独立数据库或是远程数据库的知识了,默认是独立数据库mysql)
解决:找到对应配置改成建议配置(hive.auto.convert.join.noconditionaltask.size:357913941
hive.tez.container.size:1024)
改成最大值就行
9.显示配置信息
10.开始安装
11.安装结束(本地装的,内存至少4G以上,80G硬盘,hdp2.4相比2.2更耗内存,还是很卡)
这里安装结束后可能存在警告或者错误,可以先略过,进入主界面再来看是什么错误日志,再重启服务。这里我的hdfs错误时由于没有datanode节点,这个在后面slave节点安装后,能得到结局。
错误官方解答:
至此master节点的ambari就安装完成了!
四.Ambari的slave集群配置
1.slave节点(192.168.10.12)环境配置(注意最好是英文环境,否则后面hive启动报错,如果中文环境,使用vi /etc/sysconfig/i18n 将zh_CN改为en_US)
(1)保证该节点与主节点在同一网段,互相可以内网通信,使用ping操作,看是否双方能ping通。
(2)关闭防火墙,和上述操作一样
(3)安装openssl,如果版本不一样,后面也会报错
(4)安装httpd服务,并启动,和上述操作一样
(5)安装ntp服务并配置(有需要的话)
(6)安装yum-plugin工具
(7)安装jdk8,操作通主节点一样。
(8)配置hostname=192.168.10.12
(9)配置ssh通信,注意这里的authorized需要加上主节点的不然后面会报错ssh连不上,因为py代码里面包括界面都没有传递ssh的密码,所以必要要有密钥通信。(只需要本主机ip的通信密钥就可以)
(10)将生成的私钥id_rsa文件拷贝到主节点上
(7)Transparent Huge Pages 禁用
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
2.集群配置
(1)新增slave节点
(2)配置slave节点
(3)确认slave节点
(4)配置server服务
(5)注册客户端服务组件
(6)配置重审确认
(7)开始部署
(8)安装成功
(9)Datanode alive数量不对
解决:通过Ambari的界面中的自定义hdfs-site配置中,添加如下参数配置
之后提示重启相关服务,再看界面
发现世界美好了,到此一切结束了。
注:(csdn的blog是没人维护么?各种bug,图片连续上传总报错,实在受不了了,传的我头疼,读者见谅吧,准备转战git page了)