在Ubuntu上搭建Hadoop群集

前面我搭建的Hadoop都是单机伪分布式的,并不能真正感受到Hadoop的最大特点,分布式存储和分布式计算。所以我打算在虚拟机中同时开启3台机器,实现分布式的Hadoop群集。

Ubuntu X64上编译安装Hadoop

1.准备3台Ubuntu Server 1.1复制出3台虚拟机

我们可以用之前编译和安装好Hadoop的虚拟机作为原始版本,在VirtualBox中复制三台新的虚拟机出来,也可以完全重新安装一台全新的Ubuntu Server,然后在VirtualBox中复制出2台,就变成了3台虚拟机。

1.2修改主机名

主机名保存在/etc/hostname文件中,我们可以运行

sudo vi /etc/hostname

命令,然后为三台机器起不同的名字,这里我们就分别起名:

master

slave01

slave02

1.3修改为固定IP

Ubuntu的IP地址保存到/etc/network/interfaces文件中,我们需要为3台虚拟机分别改为固定的IP,这里我的环境是在192.168.100.*网段,所以我打算为master改为192.168.100.40,操作如下:

sudo vi /etc/network/interfaces

然后可以看到每个网卡的配置,我这里网卡名是叫enp0s3,所以我改对应的内容为:

# The primary network interface
auto enp0s3
iface enp0s3 inet static
address 192.168.100.40
gateway 192.168.100.1
netmask 255.255.255.0

对slave01改为192.168.100.41,slave02改为192.168.100.42。

1.4修改Hosts

由于三台虚拟机是使用的默认的DNS,所以我们需要增加hosts记录,才能直接用名字相互访问。hosts文件和Windows的Hosts文件一样,就是一个域名和ip的对应表。

编辑hosts文件:

sudo vi /etc/hosts

增加三条记录:

192.168.100.40  master
192.168.100.41  slave01
192.168.100.42  slave02

1.5重启

这一切修改完毕后我们重启一下三台机器,然后可以试着各自ping master,ping slave01 ping slave02看能不能通。按照上面的几步操作,应该是没有问题的。

1.6新建用户和组

这一步不是必须的,就采用安装系统后的默认用户也是可以的。

sudo addgroup hadoop

sudo adduser --ingroup hadoop hduser

为了方便,我们还可以把hduser添加到sudo这个group中,那么以后我们在hduser下就可以运行sudo xxx了。

sudo adduser hduser sudo

切换到hduser:

su – hduser

1.7配置无密码访问SSH

在三台机器上首先安装好SSH

sudo apt-get install ssh

然后运行

ssh-keygen

默认路径,无密码,会在当前用户的文件夹中产生一个.ssh文件夹。

接下来我们先处理master这台机器的访问。我们进入这个文件夹,

cd .ssh

然后允许无密码访问,执行:

cp id_rsa.pub authorized_keys

然后要把slave01和slave02的公钥传给master,进入slave01

scp ~/.ssh/id_rsa.pub hduser@master:/home/hduser/.ssh/id_rsa.pub.slave01

然后在slave02上也是:

scp ~/.ssh/id_rsa.pub hduser@master:/home/hduser/.ssh/id_rsa.pub.slave02

将 slave01 和 slave02的公钥信息追加到 master 的 authorized_keys文件中,切换到master机器上,执行:

cat id_rsa.pub.slave01 >> authorized_keys
cat id_rsa.pub.slave02 >> authorized_keys

现在authorized_keys就有3台机器的公钥,可以无密码访问任意机器。只需要将authorized_keys复制到slave01和slave02即可。在master上执行:

scp authorized_keys hduser@slave01:/home/hduser/.ssh/authorized_keys
scp authorized_keys hduser@slave02:/home/hduser/.ssh/authorized_keys

最后我们可以测试一下,在master上运行

ssh slave01

如果没有提示输入用户名密码,而是直接进入,就说明我们配置成功了。

同样的方式测试其他机器的无密码ssh访问。

2.安装相关软件和环境

如果是直接基于我们上一次安装的单机Hadoop做的虚拟机,那么这一步就可以跳过了,如果是全新的虚拟机,那么就需要做如下操作:

2.1配置apt source,安装JDK sudo vi /etc/apt/sources.list 打开后把里面的us改为cn,如果已经是cn的,就不用再改了。然后运行: sudo apt-get update sudo apt-get install default-jdk 2.2下载并解压Hadoop 去Hadoop官网,找到最新稳定版的Hadoop下载地址,然后下载。当然如果是X64的Ubuntu,我建议还是本地编译Hadoop,具体编译过程参见这篇文章。 wget 下载完毕后然后是解压 tar xvzf hadoop-2.7.3.tar.gz 最后将解压后的Hadoop转移到正式的目录下,这里我们打算使用/usr/local/hadoop目录,所以运行命令: sudo mv hadoop-2.7.3 /usr/local/hadoop 3.配置Hadoop 3.1配置环境变量 编辑.bashrc或者/etc/profile文件,增加如下内容:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7476402d6b3ae087ae9d3f7aea72c8bf.html