[专栏]Hadoop原理分析
文章平均质量分 74
pfnie
这个作者很懒,什么都没留下…
展开
-
第一篇---Hadoop1.X版本中HDFS的存储机制理论
HDFS(Hadoop Distributed File System)是Hadoop分布式计算中的数据存储系统,是基于流数据模式访问和处理超大文件的需求而开发的。下面我们首先介绍HDFS中的一些基础概念,然后介绍HDFS中读写操作的过程,最后分析了HDFS的优缺点。1. HDFS中的基础概念Block:HDFS中的存储单元是每个数据块block,HDFS默认的最基本的存储单位是64M的数原创 2016-07-21 15:02:40 · 4033 阅读 · 0 评论 -
简单认识namenode和datanode
一、Hadoop的启动在阅读这篇博客之前,你应该先阅读:Hadoop的安装与环境搭建.1. 首先在npdev1机器上面运行hadoop-daemon.sh start namenode,启动namenode.2. 然后在npfdev2,npfdev3,npfdev4分别运行hadoop-daemon.sh start datanode3. 启动完成之后,我们的Hadoop的原创 2017-04-16 09:37:24 · 663 阅读 · 0 评论 -
Hadoop2.4.1 HDFS的Java客户端开发
我是在linux的环境下的Eclipse中开发这个程序的,如果你是在windows环境下写这个程序,请自行调整。第一步:首先我们确定自己的hadoop的hdfs的环境是好的,我们在linux中启动hdfs,然后在web页面上通过URL测试:http://uatciti:50070第二步:在Linux下打开Eclipse, 写我们的客户端代码。说明:我们在Linux系统的/usr原创 2016-05-08 11:22:10 · 763 阅读 · 0 评论 -
hadoop-2.X 共享日志、隔离机制和自动故障转移
前面学习了使用命令hdfs haadmin -failover手动进行故障转移,在该模式下,即使现役NameNode已经失效,系统也不会自动从现役NameNode转移到待机NameNode,下面学习如何配置部署HA自动进行故障转移。自动故障转移为HDFS部署增加了两个新组件:ZooKeeper和ZKFailoverController(ZKFC)进程。ZooKeeper是维护少量协调数据,通知客户原创 2016-09-04 19:39:13 · 675 阅读 · 0 评论 -
hadoop-2.X HA的基本原理
1 概述 在hadoop2.0之前,namenode只有一个,存在单点问题(虽然hadoop1.0有secondarynamenode,checkpointnode,buckcupnode这些,但是单点问题依然存在),在hadoop2.0引入了HA机制。hadoop2.0的HA机制官方介绍了有2种方式,一种是NFS(Network File System)方式,另外一种是QJM(Quoru原创 2016-09-04 17:29:49 · 3666 阅读 · 0 评论 -
Hadoop2.4.1伪分布式搭建
1. 准备hadoop的安装文件 通过FTP服务器将hadoop-2.4.1.tar.gz上传到linux上的/usr/local/devtool/hadoop目录下。2. 使用命令进入到该目录下,并查看当前目录下的文件信息cd /usr/local/devtool/hadoop/使用tar命令将hadoop的安装包解压tar -zx原创 2016-05-05 21:10:57 · 578 阅读 · 0 评论 -
Hadoop2.4.1 简单的用户手机流量统计的MapReduce程序(一)
1.环境:Centos 6.5 32位, 在linux环境中开发。2.核心代码如下:因为我们需要统计用户的上行流量和下行流量以及总流量,所以很容易的想到Reduce的输 出的值应该是用一个Bean来表示。我们以用户的手机号码来作为key。而这个bean需要在网络中传输,则需要被序列化,需要继承Writable,并且重写write(DataOutput out)和readF原创 2016-06-25 19:50:54 · 2042 阅读 · 0 评论 -
Hadoop2.4.1 RPC实现的底层原理(一)
RPC是远程过程调用(Remote Procedure Call),即远程调用其他虚拟机中运行的java object。RPC是一种客户端/服务器模式,那么在使用时包括服务端代码和客户端代码,还有我们调用的远程过程对象。简单的理解可以看下图:Hadoop的RPC主要是通过Java的动态代理与反射实现,代理类是由java.lang.reflect.Proxy类在运行期时根据接口,采用Ja原创 2016-05-08 16:48:50 · 1225 阅读 · 0 评论 -
RedHat设置SSH免密码登录
如果我们需要远程管理其他机器的话,一般使用远程桌面或者telnet。linxu服务器几乎都是命令行,所以只能使用telnet了。telnet的缺点是通信不加密,非常不安全,只适合于内网访问。为解决这个问题,推出了加密的通信协议,即SSH。SSH的全称是Secure Shell,使用非对称加密方式,传输内容使用rsa或者dsa加密,可以有效避免网络窃听。 hadoop的进程之间通信使用ssh原创 2016-05-06 21:04:03 · 5161 阅读 · 1 评论 -
HDFS的实现思想和概念
1. 分布式存储为什么数据需要存储在分布式的系统中哪,难道单一的计算机存储不了吗,难道现在的几个TB的硬盘装不下这些数据吗?事实上,确实装不下。比如,很多的电信通话记录就存储在很多台服务器的很多硬盘中。那么,要处理这么多数据,必须从一台一台服务器分别读取数据和写入数据,太麻烦了!我们希望有一种文件系统,可以管辖很多服务器用于存储数据。通过这个文件系统存储数据时,感觉不到是存储到原创 2016-05-05 21:04:10 · 767 阅读 · 0 评论 -
hadoop 2.x之HDFS HA讲解之八HDFS HA测试启动NameNode遇见错误分析解决
启动HA的顺序如下图所示:第一步:在各个JournalNode节点上,输入以下命令启动journalNode服务。并使用jps命令确定启动成功。第二步:在[nn1]上,对其进行格式化,并启动。我们格式化出错了,错误的情况如下:经过检查,我们在配置nn2的时候出现了错误,正确的配置应该是下面这样:原创 2016-09-25 11:48:48 · 600 阅读 · 0 评论 -
Hadoop2.4.1 简单的wordCount的MapReduce程序
我也是初学Hadoop,这一系列的博客只是记录我学习的过程。今天写了个自己的wordCount程序。1.环境:Centos 6.5 32位, 在linux环境中开发。2.核心代码如下: 2.1 Mapper类。package com.npf.hadoop;import java.io.IOException;import org.apache.hadoop.io.Long原创 2016-06-12 15:09:30 · 573 阅读 · 0 评论 -
Hadoop的安装与环境搭建
一、Hadoop的安装1. 下载地址:https://archive.apache.org/dist/hadoop/common/ 我下载的是hadoop-2.7.3.tar.gz版本。2. 在/usr/local/ 创建文件夹zookeepermkdir hadoop3.上传文件到Linux上的/usr/local/source目录下3.解压缩运行如下命令:原创 2017-04-01 14:26:30 · 688 阅读 · 0 评论 -
hadoop 2.x之HDFS HA讲解之十WEB UI监控页面分析和查看NN与JN存储的编辑日志
到现在为止,我们已经配置了hadoop的HA,让我们通过页面去查看下hadoop的文件系统。1. 分析active namenode和standby namenode对客户端服务的情况。我们可以清楚看到hadoop文件系统的目录结构:以上我们都是通过active的namenode访问hadoop的,那么如果我们通过standby namenode原创 2016-09-25 15:38:02 · 11984 阅读 · 0 评论 -
hadoop 2.x之HDFS HA讲解之十一测试failover故障转移和隔离、使用sshfence隔离的配置ssh无密钥登陆
1. 现在我们测试手动的将standby namenode转换成active namenode。请看下面:这里发生了一个错误,告诉我们nn1已经是active状态了,我们不能强制的把nn2转换成active namenode了。我们现在换其他的命令尝试一下:提示我们故障转移成功了,接下来我们刷新下页面看看是否成功。我们看到slave01机器变成了ac原创 2016-09-25 16:48:23 · 6813 阅读 · 0 评论 -
hadoop 2.x之HDFS HA讲解之六 HA机器规划
1. 我们预备三台机器。192.168.181.原创 2016-09-24 17:17:37 · 398 阅读 · 0 评论 -
hadoop 2.x之HDFS HA讲解之十二基于已有HDFS集群配置NN HA
原创 2016-09-25 16:59:56 · 376 阅读 · 0 评论 -
hadoop-2.X 版本HA出现的背景
BackgroundPrior to Hadoop 2.0.0, the NameNode was a single point of failure (SPOF) in an HDFS cluster. Each cluster had a single NameNode, and if that machine or process became unavailable, the cl原创 2016-09-04 14:20:00 · 588 阅读 · 0 评论 -
Hadoop2.4.1 简单的用户手机流量统计的MapReduce程序(二)
接着Hadoop2.4.1 简单的用户手机流量统计的MapReduce程序(一),现在我们 又有了新的需求,我们需要根据用户的总流量升序排列。1.环境:Centos 6.5 32位, 在linux环境中开发。原创 2016-07-03 09:29:49 · 3443 阅读 · 1 评论 -
hadoop 2.x之HDFS HA讲解之五 HA管理命令、元数据同步和基于QJM方式存储的硬件配置说明
原创 2016-09-18 16:52:32 · 1192 阅读 · 0 评论 -
hadoop 2.x之HDFS HA讲解之七根据官方文档一步一步的配置HDFS HA
首先我们给出官方配置HA的文档:HDFS High Availability Using the Quorum Journal Manager 。然后我们根据官方的文档一步一步的去配置HDFS HA。根据我的总结,大概分为下面几步:第一:在hdfs-site.xml配置文件中,配置Active NameNode 和 Standby NameNode的地址。首先配置nameservi原创 2016-09-24 19:22:03 · 523 阅读 · 0 评论 -
对集群进行集中管理
一、目前存在的问题在阅读这篇博客之前,你应该先阅读: 简单认识namenode和datanode.在之前,我们启动Hadoop集群的时候,首先是启动namenode,然后启动datanode. 注意:我们之前的做法是手动的将启动datanode的命令发送给所有的datanode,显然如果在集群很庞大的时候,这种做法是不合适的.我们希望通过start-dfs.sh的方式启动所有的节点.那么我原创 2017-04-16 11:07:07 · 789 阅读 · 0 评论 -
hadoop 2.x之HDFS HA讲解之九HDFS HA测试启动服务进程、页面监控查看和解决问题
接着上一篇博客,我们解决了namenode的格式化出现的错误问题,接下来,我们继续格式化namenode。第二步:在[nn1]上,对其进行格式化,并启动。这次,我们已经正常的格式化namenode了。接下来,我们需要启动namenode了:我们通过jps命令查看namenode是否正常启动了:第三步:在[nn2]上,同步nn1的元数据原创 2016-09-25 12:30:45 · 1543 阅读 · 0 评论 -
Hadoop2.x解决Namenode 单点故障问题
Hadoop解决单点故障问题主要是通过两种方式:1、NFS文件共享2、QJM 方式 CLOUDERA提出的在Hadoop2.x中有两个nn,一个是 active namenode,状态是active。另一个是standy namenode,状态是standy。两者是进行切换的,但是有且只有一个active!NFS方式是重量级的需要单独部署维护的,他作为active namenode转载 2016-07-21 09:29:09 · 946 阅读 · 0 评论 -
Hadoop分布式文件系统HDFS的工作原理
Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价 的机器上。它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统。1、分布式文件系统多台计算机联网协同工作(有时也称为一个集群)就像单台系统一样解决某种问题,这样的系统我们称之为分布式系统。转载 2016-07-21 14:17:26 · 690 阅读 · 0 评论 -
Hadoop HDFS负载均衡
Hadoop 分布式文件系统(Hadoop Distributed File System),简称 HDFS,被设计成适合运行在通用硬件上的分布式文件系统。它和现有的分布式文件系统有很多的共同点。HDFS 是一个高容错性的文件系统,提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS副本摆放策略第一副本:放置在上传文件的DataNode上;如果是集群外提交,则随机挑选一台磁盘不太转载 2016-07-20 16:56:51 · 745 阅读 · 0 评论 -
Hadoop-2.4.1学习之Mapper和Reducer
MapReduce允许程序员能够容易地编写并行运行在大规模集群上处理大量数据的程序,确保程序的运行稳定可靠和具有容错处理能力。程序员编写的运行在MapReduce上的应用程序称为作业(job),Hadoop既支持用Java编写的job,也支持其它语言编写的作业,比如Hadoop Streaming(shell、python)和Hadoop Pipes(c++)。Hadoop-2.X不再保留Ha转载 2016-07-21 16:25:31 · 493 阅读 · 0 评论 -
Hadoop-2.4.1学习之如何确定Mapper数量
MapReduce框架的优势是可以在集群中并行运行mapper和reducer任务,那如何确定mapper和reducer的数量呢,或者说Hadoop如何以编程的方式控制作业启动的mapper和reducer数量呢?在《Hadoop-2.4.1学习之Mapper和Reducer》中曾经提及建议reducer的数量为(0.95~1.75 ) * 节点数量 * 每个节点上最大的容器数,并可使用方法转载 2016-07-21 16:29:47 · 557 阅读 · 0 评论 -
hadoop的心脏–shuffle过程解析
再上一次我们提到,shuffle是MapReduce的心脏,是奇迹发生的地方,这次我们来详细的探讨一下shuffle的真个过程。MapReduce确保每一个reducer是的输入都是按照键值Key排序的,这里排序主要是依据当前Key继承了Comparable类,有时候为了加快排序的速度,也会自定义一个内部类Comparator。系统执行排序的过程就是称为shuffle。学习shuffle的工作机制转载 2016-08-14 20:40:54 · 543 阅读 · 0 评论 -
观察分块情况以及文件块的复制和datanode的动态添加
一、将hdfs-site.xml的replication值设为2,通过网页观察分块情况在阅读这篇博客之前,你应该先阅读: 使用hdfs dfs命令对文件进行增删改查操作.1.将hdfs-site.xml的replication值设为2vim hdfs-site.xml添加如下内容: dfs.replication 2修改完成后,你需要重新启动hadoop原创 2017-04-16 15:20:45 · 982 阅读 · 0 评论 -
使用hdfs dfs命令对文件进行增删改查操作
一、put文件到HDFS在阅读这篇博客之前,你应该先阅读: 对集群进行集中管理.1.使用hdfs dfs -put file /解释:file指的是你本地文件路径地址,/指的是hdfs的根路径.例如我现在位于/usr/local/source路径下面,我想把当前路径下的hadoop-2.7.3.tar.gz上传到hdfs上面,hadoop-2.7.3.tar.gz这个文件大概是20原创 2017-04-16 13:45:15 · 6925 阅读 · 0 评论 -
zookeeper的安装
1. 下载地址:http://archive.apache.org/dist/zookeeper/ 我下载的是zookeeper-3.4.5.tar.gz版本。2. 通过FTP服务器将下载好的zookeeper-3.4.5.tar.gz上传到linux上的相关目录。3. 解压到/usr/local/目录下。tar -zxvf zookeeper-3.4.5.tar.gz -C /原创 2016-07-20 21:09:21 · 403 阅读 · 0 评论 -
Hadoop MapReduce Job 提交的多种方案
提交hadoop作业时我们遇到了许多的问题,在网上也查过许多的文章,有许多对hadoop提交作业原理进行分析的文章,却总看不到对具体操作过程讲解的文章,导致我们在eclipse提交的作业总是在eclipse虚拟的云环境中运行。慢慢摸索中,一个一个的作业提交方法被我们发现。方案:1. 用命令行方式提交。2. 在Eclipse中提交作业, 并且读取的是本地文件系统的资源,Job的提交器为l原创 2016-06-12 20:38:08 · 437 阅读 · 0 评论 -
动态上下线datanode节点及副本均衡机制
本篇博客继hadoop-2.4.1 HA 分布式集群安装部署,现在我们的状态如下:此时我们的集群是好的。1.现在我们通过Java程序向HDFS提交文件。package com.npf.hadoop;import java.net.URI;import org.apache.hadoop.conf.Configuration;import org.apache.hado原创 2016-08-06 14:30:17 · 1373 阅读 · 0 评论 -
Hive-0.12.0的安装及简单使用
1. 下载地址hive,这里我下载的版本是hive-0.12.0.2. 我将hive的安装包上传到/usr/local/devtool/hive目录下面了,然后执行下面的命令。3.进入到/usr/local/hive-0.12.04. 执行下面的命令。已经进入了hive的命令窗口。5. 执行show databases;查看hive默认有哪些database原创 2016-08-06 20:17:46 · 1047 阅读 · 0 评论 -
Hadoop2.4.1 简单的用户手机流量统计的MapReduce程序总结
Hadoop2.4.1 简单的用户手机流量统计的MapReduce程序(一)Hadoop2.4.1 简单的用户手机流量统计的MapReduce程序(二) Hadoop2.4.1 简单的用户手机流量统计的MapReduce程序(三)我将会对以上三个程序做出以下的总结:一、hadoop的序列化机制1. 跟jdk自带的比较起来,更加精简,只传递对象中的数据,而不传递如继承原创 2016-07-03 13:01:21 · 1169 阅读 · 1 评论 -
Hadoop2.4.1 简单的用户手机流量统计的MapReduce程序(三)
现在我们又有了新的需求,我们需要根据用户的手机号码所属的不同省份用不同的reduce来进行处理。1.环境:Centos 6.5 32位, 在linux环境中开发。2.核心代码如下:2.1 Mapper类。package com.npf.hadoop.partition;import java.io.IOException;import org.apache.c原创 2016-07-03 12:07:01 · 1738 阅读 · 1 评论 -
hadoop-2.4.1 HA 分布式集群安装部署
一,前期准备。1.修改Linux主机名。2.修改IP。3.修改主机名和IP的映射关系。 4.关闭防火墙。5.ssh免登陆。6.安装JDK,配置环境变量等。7.集群规划。主机名IP安装的软件运行的进程npf1192.168.1.76jdk、hadoopNameNode、DFSZKFailoverController(原创 2016-07-31 11:14:44 · 1490 阅读 · 2 评论 -
MapReduce中Shuffle过程整理
MapReduce中的Shuffle过程分为Map端和Reduce端两个过程。Map端:1.(Hash Partitioner)执行完Map函数后,根据key进行hash,并对该结果进行Reduce的数量取模(该键值对将会由某个reduce端处理)得到一个分区号。2.(Sort Combiner)将该键值对和分区号序列化之后的字节写入到内存缓存区(大小为100M,装载因子为0.原创 2016-07-21 15:55:07 · 548 阅读 · 0 评论 -
Hadoop2.0的HA介绍
1 概述 在hadoop2.0之前,namenode只有一个,存在单点问题(虽然hadoop1.0有secondarynamenode,checkpointnode,buckcupnode这些,但是单点问题依然存在),在hadoop2.0引入了HA机制。hadoop2.0的HA机制官方介绍了有2种方式,一种是NFS(Network File System)方式,另外一种是QJM(Quorum转载 2016-07-22 16:33:15 · 406 阅读 · 0 评论