一、前言
hadoop 在分布式计算,大数据领域一直享有盛名,也零零碎碎看过一些 hadoop 相关的东西,但却没有真正实战过,一是工作还暂时未涉及到 hadoop ,二是安装 hadoop 集群没有那个硬件基础。
现在换了一个内存大点的电脑,不能浪费这个资源,于是便来搭个 hadoop 集群吧。
二、hadoop 集群环境
这里准备3个虚拟机节点。
我是用 VMware10 虚拟了一个 Ubuntu16.04 环境,然后再克隆两个 Ubuntu16.04 节点环境。
因为是在同一台机器上搭建 hadoop 集群,所以虚拟机网络设置是NAT模式。(Vmware虚拟机三种网络模式详解
三个节点准备好,通过 ifconfig 命令查看 ip , 三个节点的 ip 分别为:
192.168.184.131
192.168.184.133
192.168.184.134
这里打算 131 当作 master 节点,用于运行hadoop程序中的namenode、secondorynamenode和jobtracker任务。 133 和 134 当作 slave 节点,主要将运行hadoop程序中的datanode和tasktracker任务。
在准备好这3个结点之后,分别将主机名重命名,命名主机名的方法,修改 /etc/hostname 文件:
gedit /etc/hostname
我这里对三个节点分别命名为:master, slave1, slave2。
三、搭建过程记录
在做好上述准备后,正式开始。
3.1、创建 hadoop 账户
首先创建 hadoop 账户,并配置管理员权限。
安装 Hadoop 那么需要创建一个 Hadoop 用户,毕竟创建一个新的用户,配置环境相对更加干净一些。
创建一个hadoop 用户,并使用 /bin/bash作为shell:
sudo useradd -m hadoop -s /bin/bash
设置密码:
sudo passwd hadoop
增加管理员权限:
sudo adduser hadoop sudo
三个节点都执行相同操作。
3.2、配置hosts文件
配置 hosts 文件主要用于确定每个结点的 IP 地址,方便后续 master 结点能快速查到并访问各个结点。
三个节点都需要修改,内容一致,如下:
sudo gedit /etc/hosts
3.3、配置ssh免密码连入
1.Hadoop 中的集群,单点模式是需要使用到SSH登录,Ubuntu默认参数了 SSH client, 还需要安装SSH Server:
sudo apt-get update
sudo apt-get install openssh-server
2.安装之后就可以使用 SSH 登录本机,生成 master 的公钥,在 master 节点终端运行:
ssh localhost # 使用此命令登录一次 (会输入一次 yes),用于生成 ~/.ssh 目录
cd ~/.ssh
ssh-keygen -t rsa # 执行此命令后一直按回车即可,会在 ~/.ssh 下生成 id_rsa 私钥文件 和 id_rsa.pub 公钥文件。