实验

目的

要求

目的:

  1. 理解HDFS在Hadoop体系结构中的角色;
  2. 熟练使用HDFS操作常用的Shell命令;
  3. 了解Hadoop集群MapReduce程序的简单使用;

(上传WordCount的jar执行程序;使用WordCount进行MapReduce计算)

要求:

  1. 完成Hadoop的高可用完全分布模式的安装;
  2. Hadoop的相关服务进程能够正常的启动;
  3. HDFS能够正常的使用;
  4. MapReduce示例程序能够正常运行;

  1. 五台独立PC式虚拟机。
  2. 主机之间有有效的网络连接
  3. 每台主机内存2G以上,磁盘50G。
  4. 所有主机上安装CentOS7-64位操作系统。
  5. 所有主机已完成网络属性配置
  6. 所有主机已安装JDK
  7. 已完成Hadoop平台的搭建;

集群规划:

* Hadoop的高可用完全分布模式中有HDFS的主节点和数据节点、MapReduce的主节点和任务节点、数据同步通信节点、主节点切换控制节点总共6类服务节点,其中HDFS的主节点、MapReduce的主节点、主节点切换控制节点共用相同主机Cluster-01和Cluster-02,HDFS的数据节点、MapReduce的任务节点共用相同主机Cluster-03、Cluster-04,Cluster-05,数据同步通信节点可以使用集群中的任意主机,但因为其存放的是元数据备份,所以一般不与主节点使用相同主机。

*高可用完全分布模式中需要满足主节点有备用的基本要求, 所以需要两台或以上的主机作为主节点,而完全分布模式中需要满足数据有备份和数据处理能够分布并行的基本要求,所以需要两台或以上的主机作为HDFS的数据节点和MapReduce的任务节点,同时数据同步通信节点工作原理同Zookeeper类似,需要三台或以上的奇数台主机,具体规划如下:

主机名

IP地址

服务描述

Cluster-01

192.168.10.111

Hadoop主节点

Hadoop主节点控制切换服务

YARN主节点

Cluster-02

192.168.10.112

Hadoop备用主节点

Hadoop主节点控制切换服务

YARN备用主节点

Cluster-03

192.168.10.113

Hadoop数据服务

Hadoop同同步通信服务

YARN节点管理服务

Cluster-04

192.168.10.114

Hadoop数据服务

Hadoop同同步通信服务

YARN节点管理服务

Cluster-05

192.168.10.115

Hadoop数据服务

Hadoop同同步通信服务

YARN节点管理服务

练习内容

练习一:熟悉常用的HDFS操作;

1、向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由于用户指定是追加到原有文件末尾还是覆盖原有的文件;(追加文件内容以编程方式进行)

2、从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;

3、将HDFS中指定文件的内容输出到终端中;

4、显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;

5、给定HDFS中某一个目录,输出改目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;

6、提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录;

7、提供一个HDFS的目录的路径,对该目录进行创建和删除操作,创建目录时,如果目录文件所在目录不存在则自动创建相应的目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录;

8、向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或者结尾;

练习二:MapReduce-WordCount程序练习;

1、上传jar包;

1.1、现在以“admin”普通用户登录“Master。Hadoop”服务器。即在主节点操作;

a)创建本地示例文件;

首先在“/home/admin”目录下创建文件夹“file”.

命令:

$mkdir ~/file

接着创建两个文本文件file1.txt和file2.txt。

使fiel1.txt内容为“Hello World”,而file2.txt的内容为“Hello Hadoop”。

命令:

$cd file

$echo “Hello World”>file1.txt

$echo “Hello Hadoop”>file2.txt

b)在HDFS上创建输入文件夹;

命令:

$hadoop fs -mkdir input

c)上传本地file中文件到集群的input目录下;

命令:

$hadoop fs -put ~/file/file*.txt input

$hadoop fs -ls input

1.2、上传jar包

先使用Xftp工具把WordCount的jar执行程序包,上传到“~/hadoop/hadoop-2.7.3/share/Hadoop/mapreduce”目录下;

命令:

$ls

2、示例运行;

2.1、在集群上运行WordCount程序;

注:以input作为输入目录,output目录作为输出目录。

命令:

$hadoop jar ~/ hadoop/hadoop-2.7.3/share/Hadoop/mapreduce/Hadoop-0.20.2-examples.jar wordcount input output

Hadoop命令会启动一个JVM来运行达个MapReduce程序,并自动获得Hadoop的配置,同时把类的路径(及其依赖关系)加入到Hadoop的库中。

以上就是Hadoop Job的运行记录,从达里可以看到,达个Job被赋予了一个ID号:job_1533748123309_0002,而且得知输入文件有两个(Totalinput paths to process:2),同时还可以了解map的输入输出记录(record数及字节数),以及reduce输入输出记录。比如说,在本例中,map的task数量是2个,reduce的task数量是一个。map的输入record数是2个,输出record数是4个等信息。

2.2、查看结果;

a)查看HDFS上output目录内容;

命令:

$hadoop fs -ls output

从上图中知道生成了两个文件,我们的结果在“part-r-00000”中。

b)查看结果输出文件内容;

命令:

$hadoop fs -cat output/part-r-00000

3、Hadoop的Web验证练习;

3.1、使用浏览器访问192.168.10.111:8088,ResourceManager状态查看;

3.2、使用浏览器访问192.168.10.111:50070,查看HDFS情况;

3.3、使用浏览器访问192.168.10.112:50070,在从节点上查看NodeManager信息:

出现的问题与解决方案

问题:

1、Namenode没有启动;

2、在使用 -rmr 递归删除命令时报错;

3、追加到文件的开头(-copyFromLocal)

a)如图,向HDSFS中的file2.txt中导file2.txt的类容,提示文件已经存在,直接写一个不存在的文件file3.txt,发现导入成功,再次向file3.txt导入类容,又提示文件已经存在

b).hadoop fs -copyFromLocal -f产看文件file2.txt中的类容

向文件fil2.txt 导入类容,然后产看,发现文件中之前的类容被覆盖了

解决方案:

  1. 格式化namenode,命令“hdfs namenode -format”;
  2. -rmr命令不适配CentOS7环境,应改为“-rm -R”;
  3. a)此方法只适用于把一个文件中的类容导入到一个不存在的文件中;

b) 此方法导入到文件开头时会覆盖源文件类容;

知识拓展

1、Hadoop是一种分布式系统的基础构架。

核心是HDFS和MapReduce,hadoop2.0还包括YARN

2、HDFS:Hadoop Distributed FileSystem 分布式文件系统。

//很多时候的数据量超过了单台机器允许存储的范围……故而需要分布式

前身是GFS,谷歌开源的分布式存储系统。

是一个高容错(允许错误发生)的系统,能检测应对硬件故障。

适用于低成本的通用硬件(比如树莓派么)

通过流式数据访问,提供高吞吐量应用程序的访问功能。

3、异常处理:

因为数量多,所以出故障是常态。

【可靠性】存在故障的时候也能较为有效地存储数据。(名字节点故障,数据节点故障,网络断开)

【重新复制】定时会发送“心跳包”检测节点是否健康,失去联系标记为死亡状态,需要重新复制到其他节点。

【数据正确性】校验数据是否有坏块(类似于葡萄的校验?,验证的校验码存储在HDFS命名空间的隐藏文件中)

【元数据失效】FsImage和Editlog是HDFS的核心数据结构。(损坏就崩盘了)名字节点(NameNode)如果崩了就需要人工的干预了。//第二名字节点不支持直接恢复

4、目标

  • 数据访问:适合批量处理而非交互式,重点是数据吞吐量而非反应时间
  • 大数据:支持大文件,单个文件GB-TB级别
  • 简单一致模式:一次写入,多次读,一般写入之后就不再修改了
  • 主从结构:一个名字节点和很多数据节点,通常一台机器一个数据节点。
  • 硬件故障处理:是设计的核心目标之一

Hadoop集群的基本操作(一:HDFS操作及MapReduce程序练习)相关推荐

  1. Hadoop集群的基本操作(五:Sqoop的基本操作)

    实验 目的 要求 目的: 掌握ETL工具Sqoop的使用: 掌握MySQL和HDFS之间的数据转换: 要求: 掌握ETL工具Sqoop的使用: 能够正常操作数据库.表.数据: 实 验 环 境 五台独立 ...

  2. Hadoop集群的基本操作(四:Hive的基本操作)

    实验 目的 要求 目的: (1)掌握数据仓库工具Hive的使用: 要求: 掌握数据仓库Hive的使用: 能够正常操作数据库.表.数据: 实 验 环 境 五台独立PC式虚拟机: 主机之间有有效的网络连接 ...

  3. Hadoop集群的基本操作(二:HBase的基本操作)

    实验 目的 要求 目的: 1.HBase的基本应用 要求: 完成HBase的高可用完全分布模式的安装: HBase的相关服务进程能够正常的启动: HBase控制台能够正常使用: 表创建.数据查询等数据 ...

  4. Hadoop集群的基本操作(三:HBase的基本操作)

    实验 目的 要求 目的: MySQL数据库的基本命令: MySQL数据库中使用SQL语句: MySQL数据库中数据库,表,数据的操作: 要求: 完成MySQL的集群版的安装: MySQL集群的相关服务 ...

  5. Hadoop集群添加新节点正确操作步骤

    新加入的节点必须启动相关进程 编辑白名单 执行refresh命令

  6. 大数据平台,Hadoop集群架构,概述及原理

    目录 一,大数据平台架构概述 1,大数据概念 2,大数据的特征 3,大数据的处理流程和相关技术 4,大数据平台架构的特点 5,大数据平台架构原理 二,Hadoop集群概述 1,HDFS 2,MapRe ...

  7. 实战CentOS系统部署Hadoop集群服务

    导读 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高 ...

  8. Hadoop详解(五)——ZooKeeper详解,ZooKeeper伪分布搭建和集群搭建,Hadoop集群搭建,sqoop工具的使用

    ZooKeeper简介 什么是ZooKeeper? ZooKeeper是Google的Chubby一个开源的实现,是Hadoop分布式协调服务. 它包含了一个简单的原语集,分布式应用程序可以基于它实现 ...

  9. Linux查看Hadoop集群,Hadoop实战之Hadoop集群功能简单测试验证

    前几天对Hadoop分布式集群的安装过程进行了总结,对hadoop的集群搭建只是学习hadoop中的艰难的一步,后面还需要学习更多的知识,不知道自己能不能坚持下去,不知道后面还会遇到多少困难,不过,我 ...

最新文章

  1. ajax php加载列表实例,jQuery+PHP+ajax实现加载更多内容列表
  2. centos安装Flash插件
  3. 滴滴哆啦A梦源码解析
  4. Java was started but returned exit code=13
  5. ROA(资产收益率)与TCO(总所有成本)解析
  6. Eclipse安装STS(Spring Tool Suite (STS) for Eclipse)插件
  7. 用python设计学生管理系统_Python实现GUI学生信息管理系统
  8. python list,str的拼接与转换
  9. Java基础---接口的使用
  10. 动脑2017android_2017年最佳Android库
  11. mybatis插件助手的使用
  12. 俄罗斯航空发动机AL-31F(solidworks模型)
  13. EPUB、CAJ 、PDF 格式的区别,windows上有什么好用的epub阅读器
  14. 微信小程序扫码功能的使用
  15. 【达内课程】酷跑项目:百度地图获取定位
  16. 计算机一级中的高级筛选怎么做,详解Excel的高级筛选
  17. python数据分析岗位_python拉勾数据职位分析
  18. 2022年QIMA LVMH Ethical Audit Preparation Document
  19. 【VHDL】【作业】2八选一、半减器、全减器
  20. docker 批量删除无tag标签镜像

热门文章

  1. PHP中阶,PHP进阶
  2. 1小时学会:最简单的iOS直播推流(八)h264/aac 软编码
  3. 样式集(11)注册页面样式,全部代码附效果图
  4. 17-flutter导航栏渐变效果
  5. “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  6. GIT - 拉取其他仓库的某个分支的代码
  7. EMQ学习笔记---Clean Session和Retained Message
  8. 自动化运维之SaltStack,批量安装httpd实战
  9. 人工智能 有信息搜索 (启发式)
  10. 郭为:大数据时代的企业管理挑战