hadoop发行版
1. Apache社区版
组件兼容性问题多,集群的部署、安装、配置和运维复杂
2. 第三方版本
2.1. Cloudera发行版(CDH)
最成型的发行版本,拥有最多的部署案例。提供强大的部署、管理和监控工具
2.2. Hortonworks版本(HDP)
不拥有任何私有(非开源)修改地使用了100%开源Apache Hadoop的唯一提供商
管理工具
1. Ambari
创建、管理、监视 Hadoop 集群的整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等)
1.1. 发行版
- Apache Ambari
- Hortonworks Ambari
1.2. 体系结构
Ambari
自身也是一个分布式架构的软件,主要由 Ambari Server
和 Ambari Agent
组成。用户通过 Server
通知 Agent
安装对应的软件,Agent
会定时地发送各个机器每个软件模块的状态给 Server
,最终这些状态信息会呈现在 Ambari GUI
,方便用户了解到集群的各种状态,并进行相应的维护。
2. Cloudera Manager(CM)
2.1. 体系结构
- Agent:安装在每台主机上。该代理负责启动和停止的过程,拆包配置,触发装置和监控主机。
- Management Service:由一组执行各种监控,警报和报告功能角色的服务。
- Database:存储配置和监视信息。通常情况下,多个逻辑数据库在一个或多个数据库服务器上运行。例如,Cloudera的管理服务器和监控角色使用不同的逻辑数据库。
- Cloudera Repository:软件由Cloudera 管理分布存储库。
- Clients:是用于与服务器进行交互的接口:
- Admin Console :基于Web的用户界面与管理员管理集群和Cloudera管理。
- API :与开发人员创建自定义的Cloudera Manager应用程序的API。
安装
1. 机器分配
hostname |
IP |
功能 |
核数 |
磁盘(kb) |
hadoop-nn1 |
10.200.255.1 |
Ambari和hdp安装 |
4 |
131754400 |
hadoop-nn2 |
10.200.255.2 |
Master节点 |
4 |
131754388 |
hadoop-nn3 |
10.200.255.3 |
Slave节点 |
4 |
131754388 |
hadoop-nn4 |
10.200.255.4 |
Slave节点 |
4 |
131754400 |
2. 配置hosts
2.1. 修改 /etc/sysconfig/network
修改本地计算机的计算机名称
1 2 3 4 5
| [root@hadoop-nn1 etc]# vim /etc/sysconfig/network # 启动时激活联网 NETWORKING=yes # 主机名 HOSTNAME=hadoop-nn1
|
2.2. 修改 /etc/hosts
1 2 3 4 5
| [root@hadoop-nn1 etc]# vim /etc/hosts 10.200.255.1 hadoop-nn1 10.200.255.2 hadoop-nn2 10.200.255.3 hadoop-nn3 10.200.255.4 hadoop-nn4
|
2.3. 修改 /etc/hostname
1 2
| [root@hadoop-nn1 etc]# vim /etc/hostname hadoop-nn1
|
3. 相关软件安装与配置
3.1. 安装 openssl
SSL
(Open Secure Sockets Layer
) 开放式安全套接层协议
1 2 3 4
| # 检查是否安装 rpm -qa | grep openssl # 安装 yum install openssl
|
3.2. 安装、检查和开启 ntp
时间同步服务
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 检查是否安装 rpm -qa | grep ntp # 安装 yum install ntp ntpdate -y
# 查看是否开机自启 systemctl is-enabled ntpd
# 设置开机自启 systemctl enable ntpd
# 开启服务 systemctl start ntpd
|
3.3. 检查和关闭防火墙
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| # 查看是否是开机自动开启状态:disable 是开机不自启,enabled 是开机自启 [root@hadoop-nn1 etc]# systemctl is-enabled firewalld disabled
# 查看防火墙状态 [root@hadoop-nn1 etc]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) # 关闭开启防火墙 systemctl stop/start firewalld
# 关闭防火墙开机自动启动 systemctl disable firewalld
|
3.4. 检查和关闭SELinux
SELinux
(Security-Enhanced Linux
) 安全增强型 Linux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统
1 2 3 4 5 6 7
| # 查看 SELinux 状态 [root@hadoop-nn1 etc]# sestatus SELinux status: disabled
# 设置开机不可启动状态 [root@hadoop-nn1 etc]# vim /etc/selinux/config SELINUX=disabled
|
3.5. 安装、检查和开启 httpd
服务
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 检查是否安装 rpm -qa | grep httpd # 安装 yum install httpd -y
# 查看是否开机自启 systemctl is-enabled httpd
# 开启服务 systemctl start httpd
# 设置开机自启 systemctl enable httpd
|
4. 配置机器之间ssh
免密登录
4.1. 确定是否安装ssh
,且是否开启服务
1 2 3 4
| # 是否安装ssh rpm -qa|grep ssh # 是否开启服务 systemctl status sshd
|
4.2. 生成公钥私钥以及本机免密码登录
1 2
| # 生成密钥 ssh-keygen -t rsa
|
打开隐藏文件夹.ssh
,其中有 id_rsa
(私钥) 和 id_rsa.pub
(公钥) 两个文件
4.3. 将公钥 id_rsa.pub
复制到自己和其他机器
1 2 3 4 5 6
| # 把本地主机的公钥复制到远程主机的 authorized_keys 文件上,该文件夹会自动建立 # 同时也会给远程主机的用户主目录(home) 、 ~/.ssh 、 ~/.ssh/authorized_keys 设置合适的权限 [root@hadoop-nn1 etc]# ssh-copy-id hadoop-nn1 [root@hadoop-nn1 etc]# ssh-copy-id hadoop-nn2 [root@hadoop-nn1 etc]# ssh-copy-id hadoop-nn3 [root@hadoop-nn1 etc]# ssh-copy-id hadoop-nn4
|
其他主机也需要相同操作