分布式平台前期规划

完成上一篇文章《服务器批量安装》的内容后,我们已经拥有了4台Linux服务器,且相互之间网络可以互通,并且正常运行SHH服务。硬件环境已经准备完成,这篇文章我们将开始讲述Hadoop前期规划的准备工作。Hadoop是一系列工具的集合,如何合理的规划这些工具以及分配服务器资源,是一个非常重要的工作

Quick Start

主机名配置

我将分别修改主机名为node0,node1,node2,node3。方便教程的讲述,也方便ssh中的操作。选择其中一台服务器,root用户登陆。

查看主机名

1
hostname

修改主机名

  • 方法一:修改network文件,将HOSTNAME后面的值改为node0,重启后生效。
1
vim /etc/sysconfig/network
  • 方法二:修改当前的主机名,立即生效。
1
hostname node0

配置hosts文件

修改/etc/hosts文件,ip0为你自己机器的ip地址

1
2
3
4
ip0 node0
ip1 node1
ip2 node2
ip3 node3

分发hosts文件

将hosts文件分发到其他3台机器中,以保证所有服务器识别主机名。

1
2
3
scp /etc/hosts root@node1:/etc/
scp /etc/hosts root@node2:/etc/
scp /etc/hosts root@node3:/etc/

批量管理工具推荐

如果你想更快,更省力的完成批量操作,有兴趣的童鞋可以安装Linux集群批量管理工具parallel-ssh(PSSH),该工具需要Python环境安装及操作点击此处链接,该教程中还是采用普通命令进行讲述。

配置免密码登录

之后的服务器命令都需要免密码才能正常操作,这是一个必须而重要的步骤。我以node0批量操作其他服务器为例。此步骤需要在所有服务器中完成一边,以方便任意两台机器可以互相登陆。

创建本机的公钥与私钥

1
2
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

分发公钥到其他3台服务器

我以node1为例

1
scp ~/.ssh/id_rsa.pub root@node1:~/

公钥追加

进入node1的root账户的home目录下,运行如下命令。完成后,就可以从node0免密码登录到node1了。

1
cat id_rsa.pub >> ~/.ssh/authorized_keys

安装Java环境

hadoop整套工具都以Java环境为基础,所以4台机器都需要安装。我们以node0为例。

查看是否安装

1
syum list installed | grep java

查看yum库中的Java安装包

1
yum -y list java*

安装Java

我们以版本1.8.0为例

1
yum -y install java-1.8.0-openjdk*

配置环境变量

  1. 将jdk文件夹移动到opt文件夹下
  2. 在/etc/profile文件中追加如下内容:
1
2
export JAVA_HOME=/opt/jdk1.8.0_65
export PATH=$JAVA_HOME/bin:$PATH

JSP进程集

工具集介绍

在此篇基础工具集的规划中,我们主要安装Hadoop, ZooKeeper, HBase, Spark, Jupiter, Thrift。之后的教程中还会讲到Hive,MySQL等。每种工具都对应着一些Java进程,我们将规划这些进程分别部署到哪个服务器上。(话说,分布式应用,总不能把所有的进程都安装在一台服务器中吧。。。 - -!)

注:如果你对上述工具还不熟悉,请跳转到《Hadoop 基础教程》

JSP进程

JSP是Java Virtual Machine Process Status Tool的缩写,在JVM中所有具有访问权限的Java进程的具体状态, 包括进程ID,进程启动的路径及启动参数等等,与Linux上的ps命令类似,只不过jps是用来显示java进程,可以把jps理解为ps的一个子集。

工具 JPS进程
ZooKeeper QuorumPeerMain
HDFS NameNode, DataNode, JournalNode, ZKFailoverController
MapReduce, Spark ResourceManager, NodeManager
HBase HMaster, HRegionServer
Thrift ThriftServer

系统进程

工具 系统进程
Jupyter jupyter-notebook

进程规划

规划图

根据上一篇的教程,我们准备了4台服务器,我们将把上面介绍的进程部署在这4台服务器中,方案如下:
planning

图中勾选的位置对应着进程将部署在哪台服务器。

缩写对照表

缩写 进程全称
NN NameNode
DN DataNode
ZK QuorumPeerMain
ZKFC ZKFailoverController
JN JournalNode
RM ResourceManager
NM NodeManager
HM HMaster
HR HRegionServer
TS ThriftServer

小结

此篇主要介绍平台安装前的准备工作,以及要部署的工具集与JSP进程的规划方案,当然这个规划方案是以4台服务器为基础,如果你的服务器数量超过4台(无论怎样要大于等于3台,原因可以在《Hadoop 基础教程》中了解,此处不在赘述!)规划方案可以相应调整,下篇《ZooKeeper 部署》

本系列文章《目录》

显示 Gitment 评论