写在前面:
很长时间没在CSDN上写博客了,最近两个月公司计划要搞大数据,而我们的技术不够,所以这段时间主要进行Hadoop的相关技术学习及储备。废话不多说,下面进入主题,本次主要讨论在Centos5.6下通过Ambari进行Hadoop集群的安装(基于Hotonworks框架)。
1. 把光盘放入光驱中重新启动电脑,让光盘引导来安装CentOS 5.6系统;
上图为CentOS的安装启动界面,如果想用文本方式安装,就输入linux text加回车,直接按回车是用图形界面方式安装
2. 如果你不确认你的光盘是否完好,你可以选择OK来确认光盘是否完整,否则直接跳过即可;
3. 显示安装配置界面,点击Next到下一步;
4. 选择系统安装的语言之后点击Next;
5. 选择键盘类型,点击下一步;
6. 这个地方要注意,因为要选择磁盘或分区,如果是一台机器多个系统,这个地方分区要多加小心,以后会讲解如何自定义分区,这里就先暂时选择默认选项;
7. 然后是网络设置,这个地方按照自己的网络环境进行配置;
8. 按照自己的域名和网,以及DNS进行设置;
9. 选择所在时区;
10. 输入登录密码并确认;
11. 从这里开始,除了开发项目中的开发工具,和基本系统中的基本选择外,其余项目的选项都不选;
12. 在基本系统的基本选项中的可选软件包中,去掉firstboot-tui;
13. 去掉不需要的语言;
14. 正式安装
15. 环境变量设置
1. 准备工作:
1) 虚拟主机N台,其中1台Ambari-Server
2) Ambari选择与对应的HDP支持关系:
3) 软件环境:
? yum and rpm
? scp, curl, unzip, tar, and wget
? OpenSSL (v1.01, build 16 or later)
? python (v2.6 or later)
? Oracle JDK 1.7_67 64-bit (default)
4) 更改打开文件描述符最大数(10000)
#ulimit -Sn
#vi /etc/security/limits.conf
2. 安装示例说明
3. 软件条件
安装ambari之前,为了保证ambari各项服务的正常运行,根据操作系统的不同,需要确定一些已经安装的软件的版本,以下列出的软件版本必须符合要求。即:如果现有的系统上有以下软件,版本必须与下面列出的版本完全一致,如果没有的话安装程序会自行安装,就没有问题了。
4. 系统服务条件
必须运行ntpd(时钟同步)服务
ntp服务的启动
在启动NTP服务前,先对提供服务的这台主机手动的校正一次时间
# ntpdatecn.pool.ntp.org
启动ntpd服务
# service ntpdstart 或 # /etc/init.d/ntpd start
查看端口
# netstat -ln|grep 123
服务机加定时任务:
#crontab -e
加入:0 12 ** * /usr/sbin/ntpdate 192.168.4.59
这样,会在每天的12点整,同步一次时间。ntp服务器为192.168.4.59。
5. 操作系统配置
1) 配置主机名
# vi/etc/sysconfig/network
例如:
NETWORKING=yes
HOSTNAME=ambari-server
注意
Ambari配置集群信息的时候是通过全限定主机名来确定集群中的机器信息的,所以必须确保主机名无误
2) 配置集群信息
注意
在每一台机器的hosts文件上都要做配置
# vi/etc/hosts
192.168.1.33 ambari-server
192.168.1.34 clouder01.qtone.com
192.168.1.35 clouder02.qtone.com
技巧:在一台机上配置好后直接用命令:
#scp/etc/hosts root@主机名:/etc/hosts
3) 配置ssh免密码互通
在ambari-server上执行以下命令
#ssh-keygen -t rsa
然后一路回车即可,此操作会在/root生成一个.ssh隐藏文件夹,
文件夹中有两个文件:id_rsa(私钥)和id_rsa.pub(公钥)
检查.ssh文件夹的权限是否为700和文件夹中的文件的权限是否为600
如果不是请执行以下命令
#chmod 700 ~/.ssh
# chmod600 ~/.ssh/authorized_keys
执行以下命令以配置各节点(包括自身)的免密码登录
ssh-copy-id -i ~/.ssh/id_rsa.pub ambari-server
ssh-copy-id -i ~/.ssh/id_rsa.pub clouder01.qtone.com
ssh-copy-id -i ~/.ssh/id_rsa.pub clouder01.qtone.com
分别输入密码即可(默认所有操作都使用root用户)
4) 关闭selinux
看selinux状态
# /usr/sbin/sestatus–v
临时关闭
#setenforce 0
永久关闭SELinux
# vi/etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
重启生效,重启命令为:
#reboot
5) 可选–关闭iptables防火墙
#chkconfig iptables off service iptables stop
查看防火墙状态
#chkconfig –list|grep iptables
提示:Linux下的其它服务都可以用以上命令执行开启和关闭操作
重启生效,重启命令为:
#rebort
6. 安装Ambari
1) 添加添加Ambari的yum资源库
#wget http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/1.5.1/ambari.repo -O /etc/yum.repos.d/ambari.repo
2) 资源库验证
#yum repolist
如果出现以下类似信息即为安装正确
1. repoid repo name
2.AMBARI-1.x | Ambari 1.x
3) 安装Ambari服务
#yum install ambari-server
注意
由于资源地址在国外,网速不好的情况下时间会很长,也有可能会失败,
若失败多为网速原因,请多次重试
另:可以配置本地yum镜像
4) 设置Ambari服务之前
设置的时候需要设置jdk,会在线下载。
如果网络环境较好,可以尝试去oracle官网在线下载,否则可以自行下载并拷贝到/var/lib/ambari-server/resources/下即可
到时候Ambari的安装程序会自动进行安装
5) 设置Ambari服务
#ambari-server setup
出现选择选项时按默认处理即可
注意
Ambari默认使用的是postgresql数据库,在initpostgresql的时候,可能会报错误信息:(以下只是错误中的一种)
psql:could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/tmp/.s.PGSQL.5432″?
出现这个错误的时候,要去查看pgsql的操作log信息,pgsql默认安装在
/var/lib/pgsql
这里就有安装的log文件pgstartup.log
通过日志我们就能知道真正的错误信息是什么了,就能对症下药的。
提示:如果日志里说5432端口被占用,使用查看命令
#netstat -apn|grep 5432
并没有看到有程序占用时,可能的原因是某个程序确实使用过5432端口但是又释放了,并没有完全释放,所以提示被占用且你也找不到占用程序在哪,一个笨办法就是重启。
6) Ambari启动
启动命令:ambari-server start
查看状态:ambari-server status
关闭服务:ambari-server stop
1) 启动ambari服务后,用浏览器打开ambari网页;
? 网址:http://服务器名(ip地址):8080,如http://ambari-server:8080;
? 默认用户名密码:admin/admin
2) 利用ambari向导一步步进行安装
? 输入集群名称,点击下一步;
? 选择HDP的版本
展开“Advanced Repository Options”项进行配置,如果本地有镜像,则配置相关的镜像路径;选择对应的linux系统类型;点击下一步;
? 安装选项填写(这里要保证ssh免除登录认证)
填写各集群机器的名称(如果名称符合FQDN,可以用正则形式,如host[01-10].domain,即配置了host01.domain~host10.domain);
导入ambri-servcie机器上先前配好的ssh免登录私钥,即
~/.ssh/ id_rsa
填写linux用户,默认是root
注意:这里的linux用户一定要是root或者能够sudo的用户
进入下一步;
? 注册节点
安装成功或失败都有相关提示,如果失败,可以点击fail查看日志;
? 选择我们需要安装的模块,内置了依赖检查
? 分配主节点相关
注意:
ResourceManager不和Namenode在一起也会导致启动不起来.
? 分配从节点及客户端
? 定制服务
? 下一步下一步安装完成
记住安装中所新建的用户,接下来需要用到这些用户
1. 解决UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 108: ordinal not in range(128)
在报错的py文件前加入:
import sys
reload(sys)
sys.setdefaultencoding(‘utf8‘)
2. got this error “App TimelineServer Stopped”
If usingHDP 2.1.2 or 2.1.1, use this:
yarn.timeline-service.store-class=org.apache.hadoop.yarn.server.applicationhistoryservice.timeline.LeveldbTimelineStore
If usingHDP 2.1.3, use this:
yarn.timeline-service.store-class=org.apache.hadoop.yarn.server.timeline.LeveldbTimelineStore
Centos5.6下利用Ambari搭建Hadoop集群(Hotonworks框架)
原文地址:http://blog.csdn.net/keyingbo2008/article/details/43764283