用Ambari2管理Hadoop_第一部分:环境
本系列文章说明
当我脑海里萌发要写这系列的文章时候,其实我是抗拒的!因为我觉得呀……这是大数据呀,我一个屌丝码农哪有这个能耐。但是又觉得博客总得写点内容,装逼装逼也得附和社会呀,加上看了看Evernote
记录的内容甚乱,必须写……后来写着写着真觉得很DUANG~DUANG~DUANG~…..
其实在项目中用到Hadoop的功能甚少,一个HDFS来存储非结构数据,一个是Mapreduce来分布计算处理数据。然而,就算写个简单的Hello world
也得把环境搭建起来。所以,本系列的文章,权当我从0开始学习Hadoop的笔记,希望能和像我一样的新手分享经验,同时也希望得到高人指点一二三四五…
本部分内容
生态系统
大量 Apache Software Foundation
项目构成 Hadoop
的生态系统,提供企业部署、集成和使用 Hadoop
所需的服务。这些项目中的每一个都经过部署,提供明确的功能,都有自己的开发人员群体和各自的发布周期。
你肯定也听过YARN、 Apache HBase、Apache Hive或者Apache Spark、Apache Storm,Apache Ambari也是喔,等等等…
没听过没有关系,看看以下的图片:
看不懂图片没有关系,看看这个网址:http://zh.hortonworks.com/hadoop/
反正我是看不懂的。
Hadoop发行版
Hadoop最早是始于Yahoo
,但是现在主要是由 HortonWorks
和 Cloudera
这2家公司在维护者。Hadoop
发行版本将Hadoop生态系统所包含的不同项目打包在一起,提供打包、工具和商业支持。而这些不仅极大地简化了开发,而且也极大地简化了操作。脱颖而出的发行版有:
- Cloudera:最成型的发行版本,拥有最多的部署案例。提供强大的部署、管理和监控工具。Cloudera开发并贡献了可实时处理大数据的Impala项目。
- Hortonworks:拥有任何私有(非开源)修改地使用了100%开源Apache Hadoop的唯一提供商。因为开源,所以我喜欢。
- MapR:百度告诉你…
环境介绍
我是在自建的 Openstack
创建云服务器。
- Ambari Server:用来安装Ambari,一站式部署、管理和监控Hadoop
- DB Server:独立一台服务器用做数据库服务器,安装Mysql6.6
- Node1~Node9:安装Hadoop以及生态系统
所有服务器安装Centos6.6-64Bit-minimal,当然我这里用的是自制的Openstack的Centos6.6-64Bit-minimal镜像。
我创建云服务器时候,登录验证是采用密钥形式无密码SSH的,所以云服务器之间是可以通过秘钥无密码相互访问SSH的,Or not,你需要配置你服务器之间无密码SSH,请问百度君。
环境配置
讲了一堆废话,终于可以上机折腾了,这酸爽…
所有节点基础配置
全体节点的服务器(node1~node9
)都需要配置以下内容。
NND,这么多服务器是否怀念 Puppet
,硬着头皮先续个服务器敲命令吧…
更新系统
yum upgrade -y
禁用Selinux
vi /etc/sysconfig/selinux
编辑/etc/sysconfig/selinux文件,把SELINUX的值设置为disabled
关闭防火墙
chkconfig iptables off
chkconfig ip6tables off
service iptables stop
service ip6tables stop
修改hosts,本地解析DNS
vi /etc/hosts
编辑/etc/hosts,增加内容如下:
192.168.111.5 ambari.hdp.novalocal
192.168.111.8 node1.hdp.novalocal
192.168.111.6 node2.hdp.novalocal
192.168.111.9 node3.hdp.novalocal
192.168.111.10 node4.hdp.novalocal
192.168.111.11 node5.hdp.novalocal
192.168.111.7 node6.hdp.novalocal
192.168.111.12 node7.hdp.novalocal
192.168.111.13 node8.hdp.novalocal
192.168.111.14 node9.hdp.novalocal
192.168.111.15 db.hdp.novalocal
安装JDK
rpm -iv jdk-8u45-linux-x64.rpm
JDK请到官网下载,Java SE Downloads
配置环境变量
vi /etc/profile
编辑/etc/profile文件,在文件结尾增加内容:
#for java by jacken
JAVA_HOME=/usr/java/default
JAVA=$JAVA_HOME/bin
export JAVA_HOME=$JAVA_HOME
export PATH=$PATH:$JAVA
关闭,不使用透明内存。配置transparent huge page
的参数,如果不设置,安装过程会有如下的检验错误:
编辑/etc/rc.local文件
vi /etc/rc.local
在文件结尾增加内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
本地yum源配置
加快安装速度,提高安装成功率,建议配置本地yum源,源内容有两部分:
- Ambari Repositories
- HDP Stack Repositories
安装yum工具
yum install yum-utils createrepo
创建源内容保存的目录
mkdir -p /var/www/html/
确定 Ambari和HDP Stack源是否存在
yum repolist
如果不存在,下载repo文件:
wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.0.1/ambari.repo -O /etc/yum.repos.d/ambari.repo
wget -nv http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.2.4.2/hdp.repo -O /etc/yum.repos.d/HDP.repo
同步源内容到本地
cd /var/www/html
mkdir -p ambari/centos6
cd ambari/centos6
reposync -r Updates-ambari-2.0.1
cd /var/www/html
mkdir -p hdp/centos6
cd hdp/centos6
reposync -r HDP-2.2.4.2
reposync -r HDP-UTILS-1.1.0.20
同步网络上的源内容到本地,还需要生成源的metadata
createrepo /var/www/html/ambari/centos6/Updates-ambari-2.0.1
createrepo /var/www/html/hdp/centos6/HDP-2.2.4.2
createrepo /var/www/html/hdp/centos6/HDP-UTILS-1.1.0.20
编译安装Nginx
把本地源内容,通过http提供对外访问,当时,你任性也可以用Apache HTTP Server
安装gcc编译器及相关工具:
yum -y install gcc make openssl-devel pcre pcre-devel
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
编译安装Nginx
groupadd www
useradd www -g www -M -s /sbin/nologin
./configure --prefix=/opt/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module
make && make install
编辑/opt/nginx/config/nginx.cnf文件,内容请参考nginx.conf
同时,把Nginx增加到系统服务,实现开机自动开启。
编辑/etc/init.d/nginx文件,内容请参考nginx
chmod a+x /etc/init.d/nginx
chkconfig --add nginx
chkconfig nginx on
本地源的信息
URLs for the New Repository,要记住,往后需要用到
Ambari Base URL:
http://ambari.hdp.novalocal/centos6/Updates-ambari-2.0.1
HDP Base URL:
http://ambari.hdp.novalocal/hdp/centos6/HDP-2.2.4.2
HDP-UTILS Base URL:
http://ambari.hdp.novalocal/hdp/centos6/HDP-UTILS-1.1.0.20
把Ambari修改成本地的源。
编辑/etc/yum.repos.d/ambari.repo文件,内容如下:
[Updates-ambari-2.0.1]
name=ambari-2.0.1 - Updates
baseurl=http://ambari.hdp.novalocal/ambari/centos6/Updates-ambari-2.0.1
gpgcheck=0
enabled=1
priority=1
清理yum缓存
yum clean all
Ambari安装
这部分是在ambari.hdp.novalocal
服务器上配置,其他节点无需操作。
安装Ambari
yum install ambari-server
我计划用Mysql作为数据库存储Ambari、hive和oozie数据,下载Mysql的驱动(http://dev.mysql.com/downloads/connector/j/),解压放在/usr/share/java/mysql-connector-java-5.1.35-bin.jar。
在db.hdp.novalocal
节点安装和配置Mysql 5.6,并创建名为ambari
的数据库,执行ambari.hdp.novalocal
上的/var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
SQL脚本来初始化表结构。
配置Ambari Server:
ambari-server setup -j /usr/java/default
根据提示一直按回车,配置数据库时候需要指定db.hdp.novalocal
的连接信息,至此,配置Ambari Server
成功。
启动Ambari
chkconfig ambari-server on
service ambari-server start
一个神奇的网站
http://
your.ambari.server:8080
,例如我的是http://172.16.1.140:8080
你可以通过这个网站来部署、管理和监控你的Hadoop。
对了偷偷告诉你,网站的默认管理员账号和密码是admin/admin
。