hadoop

hadoop简介:

 什么是hadoop:是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

实验环境:

server5: 172.25.254.5

server6: 172.25.254.6

server7: 172.25.254.7

server8: 172.25.254.8

步骤:(本实验在一开始要做好每台机子的解析)

1.一个namenode的部署

在server5上创建hadoop用户,在hadoop用户中下载需要的安装包,并给hadoop用户设置密码

进入到hadoop用户中去,解压jdk包,并做软连接

查看解压后的文件是否在

编写路径文件

jps查看

解压hadoop安装包,编写文件

查看slaves文件

在hadoop-2.7.3目录里创建input文件,并且经hadoop-2.7.3/etc/hadoop部分文件拷贝到input里面

自动生成output文件

进入到input文件里看一下

编写hadoop下的core-site.xml文件,在172.25.254.5(即本机)上加上9000(即hadoop服务)端口

编写hdfs-site.xml文件,1代表

上锁

给172.25.254.5生成密钥

查看.ssh/的key文件和pub文件是否一致,若一致,则成功,若不一致,则可以删除key文件,复制pub文件一份成authorized_keys文件即可

ssh连接172.25.254.5即不需要密码

因为刚才查看的slaves文件里面的内容为localhoat,故ssh连接localhost也可以免密

测试:将slaves文件的内容改为172.25.254.5,则sssh连接0.0.0.0即可免密

创建namenode

开启服务

jps查看,发现生成了secondarynamenode和datanode

此时在浏览器上172.25.254.5:50070就可以查看到hadoop相关信息(若是显示无法连接,则可以退出hadoop用户,用超户查看50070端端口是否开启,若是没开启,则重复步骤sbin/hdfs namenode -format和sbin/start-dfs.sh)

手动新建/user和/user/hadoop

在图形界面可以查看到(Utilities->Browse file system)

 

 

将input文件put到图形界面

手动删除input和output文件

再重新添加,发现目录里面没有生成,而是生成在了图形界面里

命令查看可以看到

通过命令get下来output目录,就可以在本地查看到

jps查看,发现多生成了个namenode

2.两个node的部署

停掉dfs服务

修改文件hdfs-site.xml

修改文件slaves,改成要添加的两个node

jps查看,没有任何node

删除掉/tmp/中所有东西,因为要重新开启服务重新生成

在server6上安装nfs-utils并开启服务,查看端口111

在server7上安装nfs-utils并开启服务,查看端口111

在server6和server7上各创建hadoop用户

在server5上安装nfs-utils并开启服务

server5编写文件

server5showmount -e

server6和server7挂载172.25.254.5的hadoop

server6和server7登陆hadoop,发现和server5同步

server5可以ssh免密登陆server6和server7的hadoop

server5重新部署namenode,重新开启hdfs,jps查看

server6和server7jps查看

此时在图形管理查看,发现文件目录都没有了

手动新建,图形界面可以监测到

将已有的input放到图形界面上去,再创建output

此时依然可以手动删除掉output,然后再get拿下来

3.创建3个node

server8上安装nfs-utils,开启服务,创建hadoop用户

挂载172.25.254.5:/home/hadoop,切换到hadoop用户,发现于与server5同步

现在因为四台机子同步,故在任何一台机子中操作,都会同步到其他三台机子的

编写文件,加入server8的ip

开启server8的datanode

server5远程 ssh连接server8,免密连接

此时在图形界面可以看到有三个node,明显的感觉到了新建的server8已经使用的空间比较少

在server5新建一个空间为500m的一个文件bigfile,并且将这个文件put到图形界面上

做软连接hadoop-2.7.3到hadoop.编写文件hdfs-site.xml

编写home/hadoop/hadoop/etc/hadoop/exclude-hosts文件

编写slaves

在server5上

bin/hdfs dfsadmin -report

bin/hdfs dfsadmin -refreshNodes

此时在图形管理界面就可以看到server8的admin state变成了Decommissioned,之前的状态是Decommision  In Progress

复制一份文件,然后编写

编写yarn-site.xml

开启yarn服务

连接五个node:

server9安装服务

开启服务,创建用户,挂载/home/hadoop/

登陆hadoop用户,同步

hadoop+zookeeper

server5关闭服务yarn,dfs

server8关闭datanode

各机子删除/tmp/*

下载zookeeper安装包,解压

编写文件

开启hfs

在server7,8中写文件,开启hfs

在server5中编写文件core-site.xml

指定 hdfs 的 namenode 为 masters (名称可自定义)

指定 zookeeper 集群主机地址

编写hdfs-site.xml

指定 hdfs 的 nameservices 为 masters,和 core-site.xml 文件中的设置保持一致

masters 下面有两个 namenode 节点,分别是 h1 和 h2 (名称可自定义)

指定 h1 节点的 rpc 通信地址

指定 h1 节点的 http 通信地址

指定 h2 节点的 rpc 通信地址

指定 h2 节点的 http 通信地址

指定 NameNode 元数据在 JournalNode 上的存放位置

指定 JournalNode 在本地磁盘存放数据的位置

开启 NameNode 失败自动切换

配置失败自动切换实现方式

配置隔离机制方法,每个机制占用一行

使用 sshfence 隔离机制时需要 ssh 免密码

配置 sshfence 隔离机制超时时间

在三个 DN 上依次启动 journalnode(第一次启动 hdfs 必须先启动 journalnode)

格式化hdfs集群

ssh远程连接server9

server5中编写slaves

Namenode 数据默认存放在/tmp,需要把数据拷贝到 h2

格式化 zookeeper (只需在 h1 上执行即可)

启动 hdfs 集群(只需在 h1 上执行即可)

查看各节点状态

在浏览器查看各状态

测试故障自动切换

杀掉 h1 主机的 namenode 进程后依然可以访问,此时 h2 转为 active 状态接管 namenode

启动 h1 上的 namenode,此时为 standby 状态

到此 hdfs 的高可用完成,接下来看看 yarn 的高可用:

编辑 mapred-site.xml 文件

指定 yarn 为 MapReduce 的框架

编辑 yarn-site.xml 文件

配置可以在 nodemanager 上运行 mapreduce 程序

激活 RM 高可用

指定 RM 的集群 id

定义 RM 的节点

指定 RM1 的地址

指定 RM2 的地址

激活 RM 自动恢复

配置 RM 状态信息存储方式,有 MemStore 和 ZKStore

配置为 zookeeper 存储时,指定 zookeeper 集群的地址

启动 yarn 服务

RM2 上需要手动启动

最好是把 RM 与 NN 分离运行,这样可以更好的保证程序的运行性能

测试 yarn 故障切换

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值