一、前言

目前Hadoop发行版非常多,所有这些发行版均是基于Apache Hadoop衍生出来的,之所以有这么多的版本,完全是由Apache Hadoop的开源协议决定的:任何人可以对其进行修改,并作为开源或商业产品发布/销售。

Hortonworks这个名字源自儿童书中一只叫Horton的大象。雅虎主导Hadoop开发的副总裁,带领二十几个核心成员成立Hortonworks。

Hortonworks有两款核心产品:HDP和HDF

Hortonworks没有对产品收费,而是将这两款产品完全开放,将核心技术放在Hadoop开源社区中,每个人都可以看到并使用这两款产品

企业客户自己开发难度较大的话,就会选择合作。这就是Hortonworks的盈利模式,通过提供支持服务和后期维护,向企业级客户收费。

支持服务主要是通过订阅的方式,客户需要就某些功能预定一年或者几年的服务,提前付费。支持服务覆盖整个周期,从最初的开发和POC阶段,到中间的质量测试,直至产品交付。维护服务主要是对企业级客户的培训和一些咨询业务。

二、相关文档

Cluster Planning
Ambari
HDP

Hortonworks集群的安装过程说难不难说简单也不简单,中间稍有失误基本就得重装系统从头来过,所以实施安装前建议把官方的文档都过一遍,对于后续顺利完成集群安装很有帮助。

三、集群规划

截止当前,Hortonworks官方最新版本是Ambari 2.6.0.0、HDP 2.6.3,不过从之前我曾多次尝试安装Ambari 2.6.0.0+HDP 2.6.3失败的情况来看,基本确定最新版本存在BUG会导致无法顺利完成安装,初步定位BUG应该在包名称不匹配上面。

介于上述情况,我这里选择Ambari 2.5.2.0+HDP 2.6.2的组合经行安装。

操作系统我这里选择CentOS 6.9(2.6.2的支持列表只到6.8,不过2.6.3的支持列表已经更新到6.9),JDK使用的Oracle 1.8,其余组件都是系统自带或者yum安装。

写这篇的时候正好有个生产集群需要部署,故直接使用生产集群作为例子,如果仅仅是想安装测试集群的话可以选择1头节点4数据节点的规划。

   头结点  备用头结点  数据节点1  数据节点2  数据节点3
namenode  是  是      
datanode      是  是  是
 resourcemanager  是  是      
 journalnode  是  是      
 zookeeper  是  是  是    

四、系统安装

除了需要注意系统语言和磁盘格式,其它注意事项官方文档里面都有,自行查阅。
系统语言必须是en_US,否则添加节点安装必备环境的时候就会卡在下图的步骤。

头结点的磁盘需要使用RAID 10,数据节点的磁盘不需要使用RAID,如果部分服务器走了RAID卡无法关闭,那么可以为每个磁盘做一个RAID 0。

磁盘格式官方建议使用ext3而不建议使用ext4,但是从各位运Hadoop维大佬实际运维经验来看,使用ext4比ext3有利,具体怎么抉择各位仁者见仁智者见智。

五、系统级别的基础配置

为了后续能顺利安装Hortonworks集群安装,完系统之后需要进行诸多系统层面的配置和调整,想要了解细节参见官方文档

我这里提供一个基于各方资料汇集而成的自动配置脚本,针对Centos 6.9 Base Server安装方式。

#!/usr/bin/env bash

SetConfig()
{
#主机名
input_hostname=$ #切换默认软件源为阿里云
tar -zcvf /etc/yum.repos.d/${starDate}_bak.tgz /etc/yum.repos.d/*.repo
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo
rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
yum makecache #安装YUM源优先级插件
yum install -y yum-priorities
echo "[info] update yum repo end." #关闭IPV6
echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf
echo "[info] disabled ipv6 end." #关闭桌面版网络管理程序
service NetworkManager stop
chkconfig NetworkManager off
echo "[info] disabled NetworkManager end." #修改ulimit
echo "* soft nofile 10000" >> /etc/security/limits.conf
echo "* hard nofile 32832" >> /etc/security/limits.conf
echo "* soft nproc 10000" >> /etc/security/limits.conf
echo "* hard nproc 32832" >> /etc/security/limits.conf sed -i 's/1024/10000/g' /etc/security/limits.d/90-nproc.conf
echo "* hard nproc 32832" >> /etc/security/limits.d/90-nproc.conf
echo "[info] set ulimit end." #关闭iptables
chkconfig iptables off
/etc/init.d/iptables stop
chkconfig ip6tables off
/etc/init.d/ip6tables stop
echo "[info] disabled iptables end." #关闭 SELinux
setenforce 0
sed -i "/^SELINUX=/ c SELINUX=disabled" /etc/selinux/config
echo "[info] disabled SELinux end." #关闭 PackageKit
sed -i "/^enabled=/ c enabled=0" /etc/yum/pluginconf.d/refresh-packagekit.conf
echo "[info] disabled PackageKit end." #关闭 HUP
#sed -i "s/quiet/quiet transparent_hugepage=never/" /etc/grub.conf
echo "" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
echo "[info] disabled HUP end." #打开从节点时间同步(所有的主机都需要打开)
sed -i "s/0.centos.pool.ntp.org iburst/time.pool.aliyun.com prefer/" /etc/ntp.conf
chkconfig ntpd on
service ntpd start
echo "[info] enabled ntpd end." #设置net.core.somaxconn和vm.swappiness参数
echo "net.core.somaxconn = 32768" >> /etc/sysctl.conf
echo "vm.swappiness = 0" >> /etc/sysctl.conf #修改节点HostName名称
echo "......InputHostName:${input_hostname}......"
hostname ${input_hostname}
sed -i "/^HOSTNAME=/ c HOSTNAME=${input_hostname}" /etc/sysconfig/network
#写入所有节点HostName到hosts文件
sed -i "1i\节点1IP地址 节点1hostname" /etc/hosts
sed -i "1i\节点2IP地址 节点2hostname" /etc/hosts
sed -i "1i\节点3IP地址 节点3hostname" /etc/hosts
sed -i "1i\节点4IP地址 节点4hostname" /etc/hosts
sed -i "1i\节点5IP地址 节点5hostname" /etc/hosts
} #没有参数
if [ x$1 == x ] ; then
echo "[error] please enter the parameters."
exit -1
fi SetConfig $1 reboot

使用方法:./666.sh 当前节点hostname

六、配置SSH免密登陆

通过Ambari安装各节点的时候,需要让运行Ambari的节点能SSH免验证登陆到各节点(包括它本身)。

#登录头节点利用以下命令生成RSA密钥
ssh-keygen -t rsa #登录数据节点从头节点复制秘钥,并继续执行后续操作(头节点也需要执行此步骤)
mkdir /root/.ssh
scp root@头结点hostname:/root/.ssh/id_rsa.pub /root/.ssh/
cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
#启动公钥登录配置
sed -i "s/#PubkeyAuthentication/PubkeyAuthentication/"
/etc/ssh/sshd_config
sed -i "s/#AuthorizedKeysFile/AuthorizedKeysFile/" /etc/ssh/sshd_config
service sshd restart

七、搭建本地源

由于部署Ambari+HDP过程中需要安装大量组件,而且体积都比较大,因此选择在头节点搭建源服务器。

安装Apache
yum install -y httpd
service httpd start
chkconfig httpd on

手动下载下面几个压缩包到 /var/www/html/ 目录:
http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.5.2.0/ambari-2.5.2.0-centos6.tar.gz
http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.6.2.14/HDP-2.6.2.14-centos6-rpm.tar.gz
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos6/HDP-UTILS-1.1.0.21-centos6.tar.gz

解压缩
cd /var/www/html/
tar -zxvf ambari-2.5.2.0-centos6.tar.gz
tar -zxvf HDP-2.6.2.14-centos6-rpm.tar.gz
mkdir HDP-UTILS-1.1.0.21
tar -zxvf HDP-UTILS-1.1.0.21-centos6.tar.gz -C HDP-UTILS-1.1.0.21

配置repo源,把ambari.repo里面的源地址改成实际地址
cp /var/www/html/ambari/centos6/ambari.repo /etc/yum.repos.d/
vi /etc/yum.repos.d/ambari.repo

配置完成之后运行 yum repolist 检查一下

准备工作到此结束,下一步就是安装Ambari+HDP了。

相关文章

Hadoop 发行版本 Hortonworks 安装详解(一) 准备工作

Hadoop 发行版本 Hortonworks 安装详解(二) 安装Ambari

Hadoop 发行版本 Hortonworks 安装详解(三) 通过Ambari添加主机并安装服务

Hadoop 发行版本 Hortonworks 安装详解(四) 开启Kerberos集群安全验证

Hadoop 发行版本 Hortonworks 安装详解(一) 准备工作的更多相关文章

  1. Hadoop 发行版本 Hortonworks 安装详解(二) 安装Ambari

    一.通过yum安装ambari-server 由于上一步我们搭建了本地源,实际上yum是通过本地源安装的ambari-server,虽然也可以直接通过官方源在线安装,不过体积巨大比较费时. 这里我选择 ...

  2. hadoop 0.20.2伪分布式安装详解

    adoop 0.20.2伪分布式安装详解 hadoop有三种运行模式: 伪分布式不需要安装虚拟机,在同一台机器上同时启动5个进程,模拟分布式. 完全分布式至少有3个节点,其中一个做master,运行名 ...

  3. gcc5.2版本安装详解

    gcc5.2版本安装详解 1.下载gcc-5.2安装包 gcc各版本浏览地址:http://ftp.gnu.org/gnu/gcc/gcc-5.2浏览地址:http://ftp.gnu.org/gnu ...

  4. Hadoop发行版本介绍

    前言 从2011年开始,中国进入大数据风起云涌的时代,以Hadoop为代表的家族软件,占据了大数据处理的广阔地盘.开源界及厂商,所有数据软件,无一不向Hadoop靠拢.Hadoop也从小众的高富帅领域 ...

  5. CentOS 6.5的安装详解

    CentOS 6.5的安装详解 主流: 目前的Linux操作系统主要应用于生产环境, 主流企业级Linux系统仍旧是RedHat或者CentOS 免费: RedHat 和CentOS差别不大,Cent ...

  6. Phoenix和SQuirrel安装详解

    Phoenix安装详解 描述 现有hbase的查询工具有很多如:Hive,Tez,Impala,Shark/Spark,Phoenix等.今天的主角是Phoenix. phoenix,中文译为“凤凰” ...

  7. CentOS 7的安装详解

    不多说,直接上干货! CentOS 6.5的安装详解 主流:  目前的Linux操作系统主要应用于生产环境, 主流企业级Linux系统仍旧是RedHat或者CentOS. 免费: RedHat 和Ce ...

  8. Hadoop 新 MapReduce 框架 Yarn 详解

    Hadoop 新 MapReduce 框架 Yarn 详解: http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ Ap ...

  9. 【转】Linux下Android ADB驱动安装详解

    原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...

随机推荐

  1. 移动端H5制作安卓和IOS的坑 持续更新...

    移动端H5制作安卓和IOS的坑 持续更新... 前言:最近参加公司的H5页面创意竞赛,又遇到不少页面在不同系统上的坑.踩坑之余,觉得很多之前遇到的知识点都忘了,索性开一篇博文,把这些坑都统一归纳起来, ...

  2. SpringMvc+JavaConfig+Idea 搭建项目

    1.介绍 之前搭建SpringMvc项目要配置一系列的配置文件,比如web.xml,applicationContext.xml,dispatcher.xml.Spring 3.X之后推出了基于Jav ...

  3. UWP 显示图片到Image控件

    要想显示图片,前提是要有一个空间的啦 <Image x:Name="imageHidden"/> 然后一个响应选择图片得事件,注意使用asynchronous方法哦 F ...

  4. google软件测试之道读后感(一)

    这几天在抽空读一本新书,久负盛名的<google软件测试之道>.之前在网络上一点一点地看过它的英文版,很受触动,还做了很长的读书笔记,现在看到了中文版,才恍觉之前的好些理解存在不恰当的地方 ...

  5. java学习笔记之集合家族2

    集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4& ...

  6. Android开发之漫漫长途 Ⅷ——Android Binder(也许是最容易理解的)

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  7. Oracle中用户(User)和模式(Schema)的概念

    数据库理论中数据库用户和数据库模式并没有必定的联系.具体的数据库模式解释能够在这里找到: http://stackoverflow.com/questions/2674222/what-is-purp ...

  8. 7、创建ROS msg和srv

    一.msg和srv介绍 msg: msg文件使用简单的文本格式声明一个ROS message的各个域. 仅须要创建一个msg文件,就能够使用它来生成不同语言的message定义代码. srv:srv文 ...

  9. Python笔记·第五章—— 列表(List) 的增删改查及其他方法

    一.列表的简介   列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li = ...

  10. 初识homebrew

    homebrew是MAC上的一个包管理工具,用于软件安装,非常方便. homebrew安装: 命令行执行: ruby -e "$(curl -fsSL https://raw.githubu ...