Hadoop集群部署
1:软件准备
CentOS-Linux系统:CentOS-7-x86_64-DVD-1511.iso
VirtualBox虚拟机:VirtualBox-5.1.18-114002-Win.exe
xshell远程登录工具:xshell.exe
xftp远程文件传输:xftp.exe
hadoop:hadoop-2.7.3.tar.gz
jdk8:jdk-8u161-linux-x64.rpm
2:物理架构:假设机房有四台机器搭建一个集群环境,Master(ip:192.168.56.100)、Slave1(ip:192.168.56.101)、Slave2(ip:192.168.56.102)、Slave3(ip:192.168.56.103)。在这里简要介绍一下,至于具体内容,我将在Hadoop的Hdfs文章详细介绍。
分布式:将不同地点,不同功能的,用于不同数据的多态计算机通过通信网络连接其他,统一控制,协调完成大规模信息处理的计算机系统。简单说,一块硬盘可以分成两部分:文件索引和文件数据,那么文件索引部署在单独一台服务器上我们称为Master根节点(NameNode),文件数据部署在Master结点管理的孩子结点被称为Slave结点(DataNode)。
3: VirtulBox虚拟机搭建Linux Centos系统
1).安装virtualbox,安装成功以后显示如下界面,选择新建,相当于添加一台Linux机器。
2.设置机器名称、类型、版本。
3.分配内存,选择默认1G。后期不够可扩容,测试基本够用
4. 创建虚拟硬盘,如果第一次装,不会出现问题.
5. 选择默认,点击下一步
6选择动态分配,需要多少系统分配多少,比起固定大小可能运行的慢一些
7: .选择默认,这样就创建完虚拟机,下面开始配置环境
8: 选中刚刚创建的Linux、点击设置网络,选择如下设置名称
9:解释关于网络的设置与配置。如果需要搭建hadoop集群的,特别要注意。
(1)找到自己电脑的网络设置-->选择更改适配器设置-->在这里会产生一块VirtualBox网卡,也就是提供网络连接的接口。 VirtulBox Host-Only Network (ip:192.168.56.1)
(2) VirtualBox网卡,也就是提供网络连接的接口。
假设Windows是客户端、Linux集群是服务器端?现在我们需要上传文件,是不是应该客户端与服务器端在同一个局域网下才能访问?
答:当然必须在同一个网络下,就像学校的教务系统,你不连学校的网络你是没办法访问是一样的道理。而为什么,我们能用流量、wifi访问APP、网站呢?是因为那是通过互联网连接的。
Linux机器的ip在哪里设置呢?
答:我们将通过Linux控制命令修改。
假设Windows的VirtulBox的网卡的ip是192.38.15.1(举例不是真实的),那么Linux机器的ip怎么设置呢?
答:192.38.15.0~255,随便自己设置没有被占用的ip。比如192.38.15.50 51 52 53 54 55 .....
下面是我的VirtulBox网卡的ip
10.添加CentOS系统盘片,启动。
(1)点击下图的按钮选择添加"虚拟光驱"
2)点击右边红色按钮选择"自己CentOs7"的文件路径
3)点击"启动"按钮
4)启动界面如下图默认第二项回车
5)选中文(鼠标移出linux界面,用快捷键ctrl+"→")
6)点击软件选择"基础设施服务器",接着点击开始安装
7)设置账户密码
8) 等待安装完毕、输入用户名密码登录成功。
9) 利用VirtualBox登录,上传文件会比较麻烦,采用Xshell(自己安装)远程登录。
10)采用Xftp(自行安装)上传文件。
上传hadoop-2.7.3.tar.gz、jdk-8u161-linux-x64.rpm到/usr/local目录下。新手提示:在右边窗口选中/usr/local目录,左边双击压缩包就上传成功了。
11: 配置集群在同一虚拟局域网下通信
说明:通过上述操作,已经搭建好master(192.168.56.100)这台机器,开始配置虚拟网络环境在同一虚拟机下。(以下都是在linux中的控制命令;其中编辑或插入数据要按键盘上"Insert"按键;)
比较常用的命令:先按ese在按shift+q退出编辑,q+!退出编辑不保存,w+q保存编辑后的文件
1)vim /etc/sysconfig/network
2)NETWORKING=yes GATEWAY=192.168.56.1(说明:配置意思是,连上VirtualBox这块网卡)
3)vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
4) IPADDR=192.168.56.100 NETMASK=255.255.255.0 BOOTPROTO=static ONBOOT=yes(说明:配置意思是,设置自己ip)
5)修改主机名:hostnamectl set-hostname master
6)重启网络:service network restart
7)查看ip:ifconfig
8)与windows能否ping通、若ping不同,关闭防火墙。master:ping 192.168.56.1 windows:ping 192.168.56.100
9)systemctl stop firewalld.service (关闭linux防火墙,此操作一定要执行)
配置hadoop环境
1)解压jdk-8u161-linux-x64.rpm:rpm -ivh /usr/local/jdk-8u91-linux-x64.rpm-->默认安装目录到/usr/java
2)确认jdk是否安装成功。java -version查看是否安装成功。
3)解压hadoop-2.7.3.tar.gz:tar - zxvf /usr/local/hadoop-2.7.3.tar.gz。(在/usr/local目录下解压)
4)修改目录名为hadoop:mv /usr/local/hadoop-2.7.3 hadoop
5)切换目录到hadoop配置文件目录:cd /usr/local/hadoop/etc/hadoop
vim hadoop-env.sh
6)修改export JAVA_HOME 语句为 export JAVA_HOME=/usr/java/default
退出编辑页面:按esc键 输入:wq
7)vim /etc/profile
8)在文件最后追加 export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
9)source /etc/profile
12. 发散思考-更进一步
问题1:现在只是配置了一台master?那slave1、slave2、slave3也这样一台一台配置吗?
答:潜意识里面,肯定有解决办法避免。当然,VirtualBox也提供了,复制机器的功能。选中master,右键复制。这样的话,就一台跟master一模一样的机器就搞定了。我们只需要修改网络的相关配置即可。注意:搭建集群环境需要自己复制三台。
问题2:如何查看这些linux机器是否在同一个环境下?
答:我重新捋一遍内容。启动四台linux机器(可以右键选择无界面启动)-->利用xshell远程登录-->选择工具(发送键到所用界面)。依次输入ping 192.168.56.100、192.168.56.101、192.168.56.102、192.168.56.103。
13. 配置以上几台机器集群与启动hadoop
1、为四台机器配置域名。vim /etc/hosts
192.168.56.100 master
192.168.56.101 slave1
192.168.56.102 slave2
192.168.56.103 slave3
2、切换到hadoop配置文件目录 /usr/local/hadoop/etc/hadoop vim core-site.xml
3、修改四台linux机器的core-site.xml,在configuration加入property,name,value属性,指名四台机器谁是master(NameNode)。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<configuration>
4、在master结点机器指名它的子节点有哪些:vim /usr/local/hadoop/etc/hadoop/slaves(其实就是指名子节点的ip, 去除默认的localhost)
slave1
slave2
slave3
5、初始化一下master配置:hdfs namenode -format
6、启动hadoop集群并且用jps查看结点的启动情况(此方法启动,本人在web浏览器上访问查看不到datanode,你们自己试下这种是否能行)
启动master:hadoop-daemon.sh start namenode
启动slave:hadoop-daemon.sh start datanode
我用的启动hadoop命令是在master这台机器上输入:start-all.sh,之后会要求依次输入其它3台密码
14. 查看集群启动情况:利用网页http://192.168.56.100:50070/