《haddop集群搭建详解》
Hadoop完全分市式集群是典型的主从架构(master-slave),一般需要使用多台服务器来组建。我们准备3台服务器(关闭防火墙、静态IP、主机名称)。如果没有这样的环境,可以在一台电脑上安装VMWare Workstation。在VM上安装三台Linux,分别是1个主节点,2个从节点,如下图所示。
节点类型 IP地址 主机名
NameNode 192.168.86.150 master
DataNode 192.168.86.160 slave1
DataNode 192.168.86.170 slave2
注意:这3个节点的IP地址在实际搭建时会有所不同。
12.2集群搭建步骤
12.2.1在VMware Workstation上创建3台虚拟机
(1)找到桌面的虚拟机图标,双击后,启动VMware界面,选择“创建新的虚拟机”,如下图,即会弹出向导。
(2)点击下一步,初学者使用典型配置。
(3)点击浏览,找到我们给的iso镜像文件。
(4)选择镜像文件。
(5)打开虚拟机向导。
(6)填写用户信息。
备注:写上全名,用户名,密码(用户名是用来登录Linux系统的,配合密码可以完成登录。全名只是对用户名的一个备注说明。)
(7)设置虚拟机名称和位置。
(8)设置虚拟机磁盘容量,磁盘容量默认即可 20G已够用。
(9)安装完成。
(10)启动虚拟机。
虚拟机已开始启动
等待几分钟
启动完成
12.2.2配置网络
(1)在Linux系统命令终端,执行命令cd /etc/sysconfig/network-scripts,切换到该目录并查看该目录下的文件ifcfg-eth0,如图所示。
(2) 在Linx系统命令终端,执行命令 vim ifcfg-eth0,并修改文件的内容,按“键入编辑内容编译完成后按Esc键退出编译状态,之后执行命令wq,保存并退出。IPADDR、 NETMASK、 GATEWAY、DNS1的值可以根据自己的本机进行修改,如下所示。
DEVICE=“eth0” #设备名字
BOOTPROTO=“static” #静态ip
HWADDR=“00:0C:29:ED:83:F7” #mac地址
IPV6INIT=“yes”
NM_CONTROLLED=“yes”
ONBOOT=“yes” #开启自启动
TYPE=“Ethernet” #网络类型
UUID=“28354862-67a7-4a5b-9f9a-54561401f614”
rePADDR=192.168.11.10 #IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.11.2 #网关
DNS1=192.168.11.2 # dns
单击编辑菜单下的虚拟网络编辑器菜单,打开虚拟网络编辑器窗体,如下图所示。
(3)配置iP地址完毕之后,在命令终端的任意目录下,执行命令 ifconfig,查看配置效果,如图所示。
(4)在命令终端的任意目录下重启服务,执行命令reboot。
(5) ping ip地址看是否安装成功,如图所示。
(6)剩下两台都按步骤配置。
12.2.3修改主机名和域名映射
(1)启动命令终端,在任何目录下执行命令cd/ etc/sysconfig,切换到该目录并查看目录下的文件,可以发现存在文件 network,如图所示。
(2)在/etc/sysconfig目录下找到文件 network,然后执行命令 vim network,按“i”进入编辑内容,编译完成后按Esc退出编译状态,之后执行命令wq保存并退出,后面两台也都这样,如下图所示。
(3)修改主机名和iP地址具有映射关系,执行命令vim/ etc/hosts,按“i”进入编辑内容,编译完成后按Esc退出编译状态,之后执行命令wq保存并退出,把三台的ip和主机名都编辑,如图所示。
(4)scp命令传送文件
scp /etc/hosts root@slave1:/etc/hosts
scp /etc/hosts root@slave2:/etc/hosts
把修改好的发送给slave1,再用相同的方法,发送给slave2。
下面我们详细介绍一下scp命令,scp是secure copy的缩写,是用于Linux之间复制文件和目录的。scp是Linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
scp数据传输可以使用ssh1或ssh2。scp命令可以使用IPv4寻址或IPv6寻址。
复制文件语法:
scp /源文件完整路径 远程用户名@IP地址: /目标文件完整路径
或者
scp /源文件完整路径 远程用户名@机器名: /目标文件完整路径
scp /home/space/music/1.mp3 root@slave1:/home/root/others/music
scp /home/space/music/1.mp3 root@192.168.86.153:/home/root/others/music/001.mp3
复制目录语法:
scp -r /源目录完整路径 远程用户名@IP地址: /目标目录所在路径
或者
scp -r /源目录完整路径 远程用户名@机器名: /目标目录所在路径
scp -r /home/space/music/ root@slave3:/home/root/others/
scp -r /home/space/music/ root@192.168.86.153:/home/root/others/
从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可。
scp root@slave3:/home/root/others/music/1.mp3 /home/space/music
参数:
-r 递归复制整个目录。
-v 和大多数linux命令中的-v意思一样,用来显示进度。可以用来查看连接、认证、或是配置错误。
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)。
-1 强制scp命令使用协议ssh1。
-2 强制scp命令使用协议ssh2。
-4 强行使用IPV4地址。
-6 强行使用IPV6地址。
-q 不显示传输进度条。
12.2.4在linux下安装Java
(1)启动 Linux命令终端,分别在三台虚拟机上创建目录,执行命令mkdir /usr/java,切换到该目录下执行命令cd/usr/java,
[root@hadoop ~] mkdir/usr/java
[root@hadoop ~]cd /usr/java
(2)把JDK文件jdk-8u181-linux-x64.tar.gz上传到该目录下
(3)然后对/usr/java目录下的JDK压缩文件jdk-8u181-linux-x64.tar.gz,执行命令
对jdk-8u181-linux-x64.tar.gz进行解压
[root@hadoop java]#tar -xzvf jdk-8u181-linux-x64.tar.gz
(4)解压之后,执行命令 Il,可以看到该目录下多了一个解压后的Jdk文件,如图2-43所示。
(5)把jdk文件上传到其他两台,通过命令上传到其他两台虚拟机上,指定命令
scp –r /usr/java root@主机名:/usr
[root@master ~]scp –r /usr/java root@slave1:/usr
[root@master ~] scp –r /usr/java root@slave2:/usr
(6)然后到slave1和slave2的/usr目录下看,是否有java这个目录
(7)完成上一步之后,可以执行cd jdk.1.7.0_80,进入JDK安装目录
(8)确定解压无误之后,此时需要配置JDK环境变量,执行命令 vim /etc/profile单击”i“进入编辑内容,编译完成后按Esc退出编译状态,之后执行命令wq保存并退出。如图
(9)编辑完后进行配置文件刷新,执行命令 source /etc/profile,刷新配置,配置的信息才会生效,如图所示。
[root@hadoop jdk1.7.0_80]# source /etc/profile
(10)完成以上步骤之后,需要测试环境变量是否配置成功,只需要在任何目录下执行Java –version ,如图,出现下图情况就是配置成功。
12.2.5关闭防火墙
关闭Linux防火墙有以下3个步骤:
1.查看防火墙状态
service iptables status
2. 关闭防火墙
service iptables stop
3. 永久性关闭防火墙
chkconfig iptables off