(保姆级)Zookeeper+Hadoop+HBase的环境的配置

本学期选修了一门大数据系统,前几天的实验配环境给我折磨个半死,所以决定记录下来,用作一个参考,以后再遇到这个问题的时候不至于无迹可寻。

在配置环境之前需要先知道Zookeeper、Hadoop和HBase都是些什么,不至于配了半天不知道自己在干啥。简单来讲的话我们可以认为对于较大的数据量,一台主机是不足以处理的,所以我们需要搭建一个分布式的平台,使用多台主机对数据进行存储和处理。这样的分布式平台中,Zookeeper担任的角色就是对分布式系统的主机之间进行协调;Hadoop是用在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,在一开始的建立的时候Hadoop有三大核心:分布式文件系统HDFS(Hadoop Distributed File System)、分布式计算框架MapReduce和实时分布式数据库HBase,所以其实HBase是Hadoop框架下的一个数据库系统,只不过是一个“高可靠性的、高性能的、面向列的、可伸缩的分布式系统。”由于本人对分布式和大数据并不是很熟悉,所以这里放几个链接引路,可以更深刻地了解这三样系统:HBase是什么?如果有人问你ZooKeeper是什么,就把这篇文章发给他深入浅出大数据:到底什么是Hadoop?
本文是基于TA提供的配置攻略,然后修改了一下在配置过程中遇到的问题而记录的。

简介完就可以正式开始记录配置过程了。本文的大致配置顺序为:

  • 前置准备——配置hadoop用户以及ssh的免密登录
  • Zookeeper的安装和配置
  • Hadoop的安装和配置
  • HBase的安装和配置
  • 配置环境时遇到的问题以及我的解决办法

前置准备

首先要新建一个用户专门用于Hadoop的使用和连接等,因为在root用户下进行配置多多少少会出问题。在Linux中新建用户并赋予该用户root权限的过程如下:

#新建hadoop用户
sudo adduser hadoop

#配置hadoop的用户群,将hadoop用户加入hadoop用户群中(名字可自取)
sudo usermod -a -G hadoop hadoop

#输入命令查看一下配置效果
cat /etc/group

#把hadoop用户赋予root权限,让其可以使用sudo命令
sudo vi /etc/sudoers
#修改文件如下:
# User privilege specification
root    ALL=(ALL:ALL) ALL
hadoop  ALL=(ALL:ALL) ALL #添加这句话然后保存退出

配置完上面的操作,我们的hadoop用户就创建完毕了,且具有了root权限我们使用命令su hadoop就可以进入hadoop用户操作了。注意⚠️,以上操作均在root用户下进行且从机和主机相同。

然后修改主机名:

#打开hostname文件将文件内容更改为自己的主机名,我自己是将名字命名为了master,从机命名为了slave1
sudo vim /etc/hostname

⚠️然后我们修改hosts文件⚠️,这里很重要,我遇到的大部分问题都是hosts文件没修改好导致的:

#打开hosts文件进行修改
sudo vim /etc/hosts 

#添加主从机的映射(主机和从机都需要添加)这里以master为例修改内容为:
xx.xxx.xxx.xxx(内网ip地址)  master
xx.xxx.xxx.xxx(外网ip地址)  slave1
xx.xxx.xxx.xxx(外网ip地址)  slave2

这里要注意的是,在master主机上配置时,对应的master地址要写内网,从机写外网,同样的,在对应的从机上,自己的网络写内网地址,master和别的从机写外网地址。127.0.0.1或者是127.0.1.1后面的localhost不用修改。然后重启服务器,就可以让连接生效了。

⚠️接下来的操作在hadoop用户中执行。开始配置ssh免密登陆,这个是所有主机都需要做的事情。首先确定自己的机子上是否有ssh:

#测试机子上是否有ssh
ps -e | grep ssh

如果显示如下,则表示ssh安装成功:

如果没有安装就按照下面的流程安装ssh:

#升级一下apt,如果新买的服务器没装apt需要自行安装
sudo apt-get update

#安装ssh
sudo apt-get install openssh-server

验证完毕之后开始生成密钥:

#生成密匙对
ssh-keygen -t rsa

#将公匙(~/.ssh/id_rsa.pub中的内容)复制进authorized_keys中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

在其他分机上进行相同操作后分别将另外两台服务器的密匙存入自己的authorized_keys中。然后远程登录验证一下:

ssh slave1

显示上图则说明连接成功。

到这我们的前期准备就差不多结束了。最后我们关闭一下防火墙,为分布式计算的连接开放更多的窗口:

#关闭防火墙,最好在root用户下进行
sudo ufw disable

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注