Hadoop大数据挖掘从入门到进阶实战

第 1 章 集群及开发环境搭建

Hadoop的项目开发需要掌握 Hadoop 生态圈中其他套件的集成与使用.
本章介绍如何搭建一个高可用的Hadoop集群.

  1. Hadoop2.7版本的安装
  2. Zookeeper套件的集成
  3. Hadoop应用程序的运行

1.1 环境准备

  1. Hadoop 设计之初便是以 Linux 操作系统为前提,因而其在 Linux 操作系统中具有完美的支持.
  2. Hadoop 的源代码是基于 Java语言编写的。虽然 Java语言具有跨平台的特性,但由于 Hadoop 的部分功能对 Linux 操作系统有一 定依赖,因而 Hadoop 对其他平台(如 Windows 操作系统)的兼容性不是很好 。

接下来介绍如何在 Linux操作系统下完成基础软件的配置与部署.

1.1.1 基础软件下载

由于 Hadoop采用的开发语言是 Java编程语言,所以首要任务是先安装 Java语言的基础开发包 Java Development Kit (简称 JDK).

本书JDK版本是Oracle官方的JDK8, 版本号为8u144. rpm 安装包和 tar.gz 安装包均可 。本书是 x64.tar.gz 安装包(下载地址:https://www.oracle.com/java/technologies/downloads/)。

1.1.2 准备 Linux 操作系统

Linux 操作系统的版本有很多 ,如 RedHat、 Ubuntu、 CentOS 等。本书的操作系统是基于64bitCentOS 6.6类型的。关系不大。

1. 安装配置 jdk

CentOS 会自带 OpenJDK 环境,安装 Oracle 官网下载的 JDK 版本之 前,先检查 CentOS 中是否存在 OpenJDK 环境 ,如果存在,则需先行卸载自带的 JDK环境,步骤如下:

#(1)卸载 CentOS 操作系统自带的 JDK 环境
[hadoop@nna ~] $rpm -qa | grep Java #查找 Java 安装依赖库
[hadoop@nna ~]$ yum - y remove Java* #卸载 Java 依赖库
#(2)将下载的 JDK 安装包解压缩到指定目录下:
[hadoop@nna ~]tar -zxvf jdk-8ul44-linux-x64.tar.gz
[hadoop@nna ~]mv jdk-8ul44- linux x64 /data/soft/new/jdk
#(3)编辑环境变量,打开全局环境变量配置文件 
[hadoop@nna ~]vi /etc/profile
export JAVA_HOME=/data/soft/new/jdk
export $PATH : $JAVA_HOME/bin 
#(4)保存刚刚编辑完成后的文件,若要配置的内容立即生效,执行如下命令:
[hadoop@nna ~]$ source /etc/profile
#(5)验证安装的 JDK 环境是否成功:
[hadoop@nna ~]$ java -version
# 若操作终端上显示对应的 JDK 版本号,即可认为 JDK 环境配置成功 
1.2 同步安装包

将该节点上的 JDK 安装包,传输到其他节点上 :

# 将 nna 节点的 JDK 文件复制到 nns 节点
[hadoop@nna ~]$ scp -r /data/soft/new/jdk hadoop@nns:/data/soft/new

1.2 安装 hadoop

1.2.1 基础环境配置

Hadoop集群的硬件配置如表 1-2所示
在这里插入图片描述

1. 创建 hadoop 账号

搭建 Hadoop集群环境时,不推荐使用 root账号来操作,可以创建一个 Hadoop账 号用来专 门 管理集群环境。

# 创建 Hadoop账号的过程均在 root账号下完成
[root@nna ~]# useradd hadoop # 创建名为 hadoop 的账号
[root@nna ~]# passwd hadoop #给名为 hadoop 的账号设置密码

给 Hadoop 账号设置免密码登录权限,也可以自行添加其他权限:

#给 sudoers 文件赋予写权限
[root@nna ~]# chmod +w /etc/sudoers
#打开 sudoers 文件并进行编辑,添加以下内容
[root@nna ~]# vi /etc/sudoers
hadoop ALL=(root)NOPASSWD:ALL 
#取消 sudoers 文件的写权限
[root@nna ~]# chmod -w /etc/sudoers
2. 安装 Java 环境-JDK

前面已经介绍

3. 配置 hosts 系统文件

所有节点的 hosts配置都是相同的(推荐这样配置) ,用别名取代 IP, 可以避免很多不必要的麻烦,方便操作与配置。

[hadoop@nna ~] $ v i /etc/hosts 
#然后在 hosts 文件中添加以下内容 
10.211.55.5 nna
10.211.55.6 nns
10.211.55.7 dn1
10.211.55.8 dn2 
10.211.55.9 dn3 

完成该节点 hosts 文件的编辑后,使用 scp 命令将 nna 节点的 hosts 文件分发到其他节点

[hadoop@nna ~]$ scp /etc/hosts hadoop@nns:/etc
4. 安装SSH

( 1)创建密钥
Hadoop 集群需要保证各个节点互相通信,这里需要用到 SSH。

#生成该节点的私钥和公钥
[hadoop@nna ~]$ ssh-keygen -t rsa

只需按键盘上的回车键 ,不用设置任何信息,命令操作结束后会在~/ .ssh/目录下生成对应的私钥和公钥等文件。

(2)认证授权
将公钥 (id_rsa.pub)文件中的内容追加到 authorized_keys 文件中 :

[hadoop@nna ~]$ cat ~/.ssh/id_rsa .pub >> ~/.ssh/authorized_keys

(3 )文件赋权
hadoop账号下, 需要给 authorized_keys文件赋予 600权限, 否则由于权限限制会导致免密码登录失败 :

[hadoop@nna ~]chmod 600 ~/ .ssh/authorized_keys

(4)其他节点创建密钥
其他 Hadoop 集群节点下,通过使用 hadoop 账号登录,使用 ssh-keygen -t rsa命令 ,生成对应的公钥,然后将各个节点的公钥 id_rsa.pub文件中的内容追加到 nna 节点的 authorized_keys 中。
完成所有节点的公钥追加之后,将 nna 节点下的 authorized_keys 文件分发到其他节点的 hadoop 账号的~/.ssh/目录下:

[hadoop@nna ~]$ scp ~/.ssh/authorized_keys hadoop@nns:~/.ssh/

完成所有节点的分发任务后,使用 ssh命令进行互相登录,验证是否能够 实现免密码登录 :

#以从 nna 节点免密码 登录 nns 节点为例子 
[hadoop@nna ~]$ ssh nns

在这里插入图片描述

5.关闭防火墙 (或端口限制〉

由于 Hadoop 集群各个节点之间需要进行通信( Hadoop RPC 机制〉,因而需要监控系统对应的端口。在学习阶段,可以将各个节点的防火墙直接关闭,本书的环境都是直接将防火墙关闭了:

#关闭防火墙
[hadoop@nna ~]chkconfig iptables off
#输入以下命令验证系统的防火墙是否均己关闭:
[hadoop@nna ~]$ chkconfig iptables --list

notes:若用于生产环境, 直接关闭防火墙是存在安全隐患的,可通过配直防火墙的过滤规则,即将 Hadoop 集群 需要监听的端口配直到防火墙接受 的规则当中 。

6. 修改时区

Hadoop 集群的各个节点上的时间如果不同步,会出现启动异常或者其他异常,可以将时间统一设置为 Shanghai 时区:

#这里以 nns 节点为例子,其他节点操作相同
[hadoop@nna ~]cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp : overwrite 、/etc/local time ’ ? yes
#修改为中国的东八区
[hadoop@nna ~]$ vi /etc/sysconfig/clock
#添加以下内容
ZONE="Asia/Shanghai"
UTC=false
ARC=false

1.2.2 zookeeper部署

1.2.3 Hadoop 部署

1.2.4 效果验证

1.2.5 集群架构详解

1.3 Hadoop 版 hello world

1.4 开发环境

1.5 小结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值