Hadoop实战-part1

简介: Hadoop实战-part1

1.Hadoop优点:

 1)高可靠性-可以传任何数据(历史数据);
 2)高扩展性-可扩展至2500台左右节点(2300台就要做业务的剥离、迁移),到2700台,会出现各种奇怪的错误;
 3)高效性-节点动态平衡,即动态移动数据,保证节点动态平衡,增快处理速度。
 4)高容错性-默认3个副本,什么时候改这个数值?即当应用访问这份数据并发数上升的时候,可扩展副本数;(三份副本,可以供3个应用程序并发访问)
             能够自动将失败的任务重新分配执行,失败4次后终止

2.Hadoop安装

 1)Hadoop企业安装,建议选择版本号x.y.z,z不为0即可;0表示大版本;
    jdk 1.8->hadoop->scala 2.11.x->IDEA免费版(LiteIdea为GO语言开发唯一的免费开发工具)
 2)Hadoop目录
    bin-指令;lib-依赖包;
    sbin-启停;
    etc-配置文件(hadoop-env.sh,core-site.xml,mapred-site.xml,slaves-所有dn的IP地址一行一个,hdfs-site.xml,yarn-site.xml);
    查错:$hadoop_home$/logs中对应节点的日志,.out的是当下启动的日志,1...是历史的
 3)CDH缺陷:配置必须要在CM页面上改(后台改很多时候是不生效的),对其他组件软件版本有限制。版本不兼容问题:XXXX类方法不存在或参数类型不匹配;buffer版本不一样;

3.HDFS的设计目标

 1)理想状态:一个或几个节点失效不影响数据完整性;
 2)设计原则:文件以块存储,把文件切块,每个块128M(可以把块大小调大为256M、512M、SSD甚至可以配成1G,以解决CPU等待的问题;SSD同颗粒读写次数远低于SATA盘,服务器一般只会配128G的SSD盘,其他选择SATA盘)
 3)单一master(NameNode)来协调存储元数据:元数据是描述数据的数据(每一条存在内存中的大小为150byte);所以,根据hdfs的大小,可以推算出namenode该使用多少内存。
 注意:单一master(nn)和slave(dn)---> M/S架构:ms架构图一定是“品”字状。nn怎样存储元数据?nn中有两个文件:edit和fsimage,当第一次启动集群时,dn会以心跳方式将一些信息汇报给nn,nn收到后会构造出拓扑图,再把当下的内存信息写到fsimage中去,即当下的内存信息就等于fsiamge;
 问题:nn挂掉后如何恢复?先读出fsimage信息,再调出edit文件。正常关闭集群时,整个过程nn什么都不做,再启动时dn再重新汇报。
 
      4)客户端对文件没有缓存机制---高版本是有缓存机制的
 问题(1)当DN节点达到百台以上,当hdfs重启后,会经常出现几台节点lost的情况,甚至手动起来后又lost掉了:
    DN 10分钟没有退出交换空间,在Linux机制中,当内存不够用时,就会使用交换空间(swap),此时系统会将对外提供的所有进程全部挂起,所以一般大数据架构一般禁用交换空间;
    起来后又lost:NN认为你已经挂了,会列入NN的黑名单,直接启动自杀进程把这个NN杀掉。——解决办法:去黑名单把这个DN的域名删掉;
 2)NN发送心跳保持给DN,是通过SSH协议做的
 3)如果NN10分钟没有接到DN的心跳,则认为其lost,并copy其上的block至其他DN(找其他副本)。但不会立即拷贝(后面提到的三周时间节点会拷贝)
 4)Block存放策略:副本1随机挑一台磁盘不太满,CPU不太忙的节点;副本2放在副本1不同的机架的节点上;副本3放在副本1同样的机架的不同节点上面;其他随机;
 5)大量的零散文件不适合放hadoop,会撑爆NN的内存空间(每一个文件(即使未达到128M),按block,每一个block会存一个命名空间150字节)
 6)DN在其文件创建后三周验证其checksum——三周是可改的     

5.SNN(相当于nn的冷备)

       作用:1、当nn挂了时,可以对外提供服务(Hadoop中只允许一个nn节点对外提供服务);2、定期的从nn中两个文件edit和fsimage抽取过来。
 1)NN-fsimage记录正常启动时的元数据,edits是记录启动后的增量数据,即操作日志,这个文件比fsimage大,启动时最耗时间;
 2)NN到SNN切换过程中,是人为干预的,切换过程中会造成数据丢失;

6.安全模式

 1)系统进入安全模式的两种情况:集群启动,在收集DN的信息时;HDFS磁盘坏损30%-50%(该情况绝对有部分数据丢失,不再能找回),运维人员要手工检查,人工补回,熟悉命令fsck,并把所有参数弄会;
    后一种情况发生时,不能再读了(一半可能性失败)
    如果发生进入安全模式的情况,一定会出现数据丢失。
    引申-当在集群第二次发送format(即不小心执行了format命令)的补救措施:format第一次运行,创建文件,并在nn上创建uuid,并把uuid发到dn上。当format第二次执行时,就在dn上把原来的uuid复制一份粘贴到nn上去。再把第一次创建的文件结构全部删掉。
 2)HDFS Client:发出请求的那台node机器,不管是集群内的还是集群外的,就是客户端。
    HDFS文件写入,设计写入方式是去中心化,减少clientnode的压力。

7.HDFS API

 1)企业应用时:API与指令,首选应该是指令,当指令的性能解决不了的时候,用API;
 2)学生应用时:应首选API,因为要对内部有了解,企业追求效率;

总结:Hadoop应用场景:超大文件;流式数据访问-一次写入,多次读取。传输时间与寻址时间;商用硬件;

  Hadoop生态链比较丰富,可以弥补它的部分缺陷(缺陷:不适用与低延时的数据使用;大量小文件;多用户写入,任意修改文件;)
相关文章
|
SQL 分布式计算 Hadoop
大数据行业部署实战1:Hadoop伪分布式部署
大数据行业部署实战1:Hadoop伪分布式部署
475 0
|
7月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
729 0
|
7月前
|
分布式计算 大数据 Scala
【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)
【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)
338 1
|
6月前
|
存储 分布式计算 Hadoop
Hadoop Distributed File System (HDFS): 概念、功能点及实战
【6月更文挑战第12天】Hadoop Distributed File System (HDFS) 是 Hadoop 生态系统中的核心组件之一。它设计用于在大规模集群环境中存储和管理海量数据,提供高吞吐量的数据访问和容错能力。
682 4
|
2月前
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
45 3
|
2月前
|
分布式计算 Java Hadoop
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
41 2
|
3月前
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
88 3
Hadoop集群配置https实战案例
|
3月前
|
分布式计算 监控 Hadoop
监控Hadoop集群实战篇
介绍了监控Hadoop集群的方法,包括监控Linux服务器、Hadoop指标、使用Ganglia监控Hadoop集群、Hadoop日志记录、通过Hadoop的Web UI进行监控以及其他Hadoop组件的监控,并提供了相关监控工具和资源的推荐阅读链接。
97 2
|
4月前
|
资源调度 分布式计算 监控
【揭秘Hadoop YARN背后的奥秘!】从零开始,带你深入了解YARN资源管理框架的核心架构与实战应用!
【8月更文挑战第24天】Hadoop YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的资源管理器,为Hadoop集群上的应用提供统一的资源管理和调度框架。YARN通过ResourceManager、NodeManager和ApplicationMaster三大核心组件实现高效集群资源利用及多框架支持。本文剖析YARN架构及组件工作原理,并通过示例代码展示如何运行简单的MapReduce任务,帮助读者深入了解YARN机制及其在大数据处理中的应用价值。
100 0
|
7月前
|
分布式计算 数据可视化 Hadoop
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现

相关实验场景

更多