### 离线安装HADOOP环境
#### 1. 软件下载与准备
在进行Hadoop的离线安装之前,首先需要确保已经获取到了必要的安装包。本章节将详细介绍所需软件的下载地址以及相关注意事项。
##### 1.1 Linux安装包
Linux操作系统的选择对Hadoop的安装至关重要。本教程推荐使用CentOS作为基础操作系统,具体下载地址为:[http://isoredirect.centos.org/centos/6/isos/x86_64/](http://isoredirect.centos.org/centos/6/isos/x86_64/)。如果你已经有了DVD安装包(CentOS-6.5-x86_64-bin-DVD1to2),则无需再次下载。
##### 1.2 Hadoop安装包
Hadoop的安装包可以通过以下链接下载:
- CDH: [http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/](http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/)
- CM: [http://archive.cloudera.com/cm4/redhat/6/x86_64/cm/](http://archive.cloudera.com/cm4/redhat/6/x86_64/cm/)
- Impala: [http://archive.cloudera.com/impala/redhat/6/x86_64/impala/]
Cloudera提供了多种Hadoop相关产品的下载,包括但不限于CDH、CM和Impala。在下载RPM包时,请注意同时下载`noarch`目录下的包,因为这些包包含了跨架构兼容性的组件,对于某些特定组件来说非常重要。
#### 2. Yum源配置
为了使离线安装过程更加顺利,我们需要在内网环境中搭建HTTP服务器,并配置yum源指向该HTTP服务器。这样可以避免因网络问题导致的安装失败。
##### 2.1 搭建HTTP服务器
默认情况下,CentOS系统通常已经安装了Apache HTTP服务。若要启用HTTP服务,可以通过命令行执行以下操作:
```bash
# service httpd start
```
之后,可以在浏览器中通过访问`http://localhost`来验证HTTP服务是否正常启动。
##### 2.2 Linux源配置
在安装Hadoop之前,可能需要额外安装一些Linux组件,因此需要配置Linux安装包的yum源。在进行配置之前,请先删除或备份系统自带的源文件:
```bash
# cd /etc/yum.repos.d/
# rm -rf *.repo
```
接下来有两种方法来配置Linux源:**虚拟机镜像源**和**硬盘源**。
**虚拟机镜像源**:请将镜像加载到虚拟光驱中,在服务器的文件夹中建立软连接,连接到虚拟光驱。例如:
```bash
# cd /var/www/html
# ln -s /media/CentOS_6.5_Final centos
# ln -s /media/CentOS_6.5_Final_centos2
```
**硬盘源**:直接将系统安装盘的内容拷贝到硬盘上,在http服务器目录的文件夹中建立软连接,连接到系统安装盘所在的文件夹上。例如:
```bash
# cd /var/www/html
# ln -s /tmp/CentOS_6.5_Final centos
# ln -s /tmp/CentOS_6.5_Final_centos2
```
创建系统软件源:
```bash
# cd /etc/yum.repos.d/
```
在该目录下创建名为`centos.repo`的源文件,并按照官方文档中的示例填写必要的内容。
##### 2.3 Hadoop源配置
Hadoop源主要由CDH、CM、Impala三个部分组成。本教程使用Cloudera Manager(CM)来进行Hadoop集群的管理和部署。CM不仅可以简化部署过程,还能提供实时监控和管理服务。将下载的CDH、CM、Impala等上传到HTTP服务器,并创建rpm包的系统校验文件`repodata`文件夹。此外,在http目录下创建软链接。
**创建CM源**:如果使用CM进行Hadoop的安装,只需要创建CM源,安装CM后,当用CM进行批量安装时,可以选择系统本地源。例如:
```bash
# cd /var/www/html
# ln -s /tmp/cm4 cm
```
创建CM源的repo文件,内容如下:
```ini
[cm]
name=Cloudera Manager
baseurl=http://localhost/tmp/cm4
enabled=1
gpgcheck=0
```
#### 3. Linux环境配置
在进行Hadoop的具体安装之前,需要对Linux环境进行一系列的基础配置,以确保后续步骤的顺利进行。
##### 3.1 创建用户
在Linux系统中创建用于Hadoop集群管理的专用用户账户,以便于后续操作。
```bash
# useradd hadoop
# passwd hadoop
```
##### 3.2 网络配置
确保所有的节点都能互相通信。这一步通常涉及到修改`/etc/sysconfig/network-scripts/ifcfg-eth0`文件中的网络参数。
##### 3.3 修改主机名
修改主机名称为有意义的名称,便于识别。
```bash
# hostnamectl set-hostname node1
```
##### 3.4 关闭selinux
为了防止SELinux策略阻止Hadoop服务的正常运行,需要关闭SELinux。
```bash
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# setenforce 0
```
##### 3.5 子节点互通配置
确保所有节点之间能够互相ping通,这对于集群内部的通信非常重要。
```bash
# ping node2
```
##### 3.6 用户sudo功能设置
允许hadoop用户无需密码即可执行管理员级别的命令。
```bash
# echo "hadoop ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/hadoop
# chmod 440 /etc/sudoers.d/hadoop
```
##### 3.7 关闭防火墙
关闭防火墙,以确保集群间的通信无障碍。
```bash
# systemctl stop firewalld
# systemctl disable firewalld
```
##### 3.8 配置ssh免key登录
为了方便集群内部节点之间的SSH连接,可以配置免密码登录。
```bash
# ssh-keygen -t rsa -P ""
# ssh-copy-id node2
```
##### 3.9 配置时间同步
确保集群内部的所有节点时间保持一致是非常重要的,可以通过以下几种方式实现:
**2.9.1 修改时区**:根据实际需求修改服务器时区。
```bash
# timedatectl set-timezone Asia/Shanghai
```
**2.9.2 使用pdsh同步**:通过安装pdsh工具来同步集群内部的时间。
```bash
# yum install -y pdsh
# pdsh -w node2 -M -f 10 date +%s
```
**2.9.3 使用NTPserver同步**:安装并配置NTP服务,使得所有节点的时间都能自动同步。
```bash
# yum install -y ntp
# systemctl enable ntpd
# systemctl start ntpd
```
#### 4. Hadoop安装
完成了以上准备工作后,就可以正式开始Hadoop的安装了。
##### 4.1 安装Cloudera Manager
安装Cloudera Manager,作为集群管理的控制中心。
```bash
# yum install -y cloudera-manager-agent cloudera-manager-server cloudera-manager-server-db
```
##### 4.2 安装CDH
使用Cloudera Manager进行CDH的安装,这是一个较为复杂的流程,涉及多个组件和服务的配置和部署。
```bash
# cminstall cdh5
```
至此,Hadoop的离线安装过程基本完成。需要注意的是,上述步骤仅为参考,具体实施过程中可能还需要根据实际情况进行调整和优化。