hadoop是一个海量数据存储和计算的平台,能够存储PB级以上的数据,并且利用MapReduce可以对这些数据进行并发式计算;hadoop平台采用的是主从式架构(master/slave)即一个master和若干个slave,这个master就是namenode节点,该节点负责存储和管理元数据、配置副本策略、管理数据块的映射信息以及处理客服端的读写请求,由此可见namenode节点的压力还是比较大;众所周知,主从结构的框架虽然容易进行集群资源的管理和调度,但是有个很大的问题,也就是单点故障的问题。假如namenode节点宕机,将造成整个集群瘫痪无法工作;设计者虽然设计了Secondnamenode节点帮助namenode进行资源管理,但这毕竟是冷备份,无法做到实时热备。因此,我们利用zookeeper(集群协调者)来实现hadoop的高可用集群,即一个集群中有两个namenode,当其中一个宕机,另一个能够无缝衔接,做到实时的热备,保证大数据集群的稳定性。
1.3 自动故障转移工作机制
这里使用三台机器搭建集群
2. 阿里云服务器的购买
由于我还是学生,资金有限,这里选择简单低配的服务器
我这里选择2核8G的抢占式主机,这个比较便宜
注意:上面的区域应该同一个(例如:可用区K,因为不同地区的实例内网不同,而hadoop集群需要使用内网搭建)。我忘记选了,后面随机给我分到一个区了。
然后点击下面的网络配置
分组设置保持默认即可,不需要配置
最后确认清晰,然后提交订单即可
然后在控制台的左边栏点击ECS云服务器然后点击示例
可以看出,服务器正在创建
2.5 配置服务器远程连接
等待服务器创建完成后,我们需要使用远程连接工具来连接服务器
这里我使用的是xshell进行连接
这里我们可以看到,每个服务器有两个IP地址,一个公网ip,一个是内网ip;我们搭建hadoop集群是使用内网ip
首先检查安全组对外的22号端口是否开放
注意:我这里只有一个安全组,因此所有实例都配置在这个安全组里面。
进去后检查22号端口是否开放,若没够开放,需要自己手动添加一个。
使用公网IP连接ECS
复制这里的公网IP,然后根据自己设置的用户名和密码使用Xshell连接即可。
这里我三台机器已经连接
这里由于主机名已经预设好了,因此不用配置了
需要在三台机器上都配置
一般企业内部的集群之间会关闭防火墙,防止集群间通信被阻挡;企业会在外部网口处统一设置防火墙
阿里云默认的机器防火墙是关闭的,因此可以不用管了
连续按下三次回车,生成公钥和私钥
以此类推,每台机器都要配置。
然后我们使用ssh 主机名 测试能够互相登录
由于hadoop时使用java语言编写的,因此我们需要java的运行环境
经过搜索,没有预装jdk,因此我们不用卸载了
4.2 上传软件安装包
这里将三个安装包都上传
4.3 解压到指定目录
其他两个节点也需要配置
注意:我所有的软件都安装在/opt/module下面,可以按照个人习惯修改
(5)、将zookeeper分发到其他两个节点
(6)、修改各个节点对应的myid中的值
我们需要在三台节点上执行:
出现上面这种,说明成功
注意: 三台机器都要启动
这里需要先去阿里云的安全组开放50070端口,然后才能访问。
上面可以看出,各个组件的webui均能访问。
1、 集群第一次启动由于需要初始化,因此启动比较麻烦。
第一次启动成功后,下次启动,在hadoop001上执行start-all.sh就可以了。
1、 集群第一次启动由于需要初始化,因此启动比较麻烦。
第一次启动成功后,下次启动,在hadoop001上执行start-all.sh就可以了。
}