@SmartSi
Stay Hungry, Stay Foolish
展开
-
大数据高分笔记
1. hadoop Hadoop 2.7.3 安装与启动 Hadoop 2.10.1 安装与启动 Hadoop 第一个应用程序 WordCount Hadoop MapReduce 新旧 mapred 与 mapreduce API Hadoop 利用 ToolRunner 运行 MapReduce Hadoop MapReduce Block 与 InputSplit 的区别与联系 Hadoop MapReduce 多路径输入与多个输入 Hadoop MapReduce 多文件输出 M原创 2022-07-24 08:38:48 · 1224 阅读 · 0 评论 -
Hadoop 2.10.1 安装与启动
可以直接从官网上下载 https://archive.apache.org/dist/hadoop/common/ 你需要的版本,在这我们使用的是 2.10.1 版本 hadoop-2.10.1.tar.gz。Hadoop 早期版本采用一个配置文件hadoop-site.xml来配置Common,HDFS和MapReduce组件。从0.20.0版本开始该文件以分为三,各对应一个组件。如果在 mapred-site.xml 中设置数据处理框架为 yarn,同时也需要配置 yarn-site.xml 文件。原创 2023-08-22 08:18:58 · 299 阅读 · 0 评论 -
Hadoop Initialization failed for Block pool <registering>
两者的 clusterID 不一致导致最终 datanode 没有启动。这个问题一般是由于两次或两次以上的格式化 NameNode 造成的。目录,查看 VERSION 文件,可以发现 datanode 的 clusterID 为。从上面异常中可以发现 namenode 的 clusterID 为。从上面可以看到我们的 dataNode 已经跑起来了。,而 datanode 的 clusterID 为。重启 Hadoop 即可。原创 2023-08-22 08:16:18 · 111 阅读 · 0 评论 -
Hadoop 二次排序
事后看来,回顾我们应用于复合 key 的不同工具的效果,除了 “在多个字段上进行排序” 外,我们还可以给出二次排序的更一般而精确的定义:二次排序是一种技术,用于控制 Reducer 的输入对如何传递给 reduce 函数。上面的如何可以理解为以何种顺序()以及基于 key 的对值进行分组的方式()根据这个定义,使用,我们可以对Reducer内的数据进行全面控制,这就是输出文件内部始终排好序的原因。翻译 2022-11-04 08:17:31 · 601 阅读 · 0 评论 -
Hadoop MapReduce 2.0 架构详解
比以前的版本有了很大的改进。以下是MapReduce的一些亮点;请注意,HDFS也有一些主要的改进,这些不在本文的讨论范围之内。(又名MRv2或YARN)。新的架构将JobTracker管理计算资源到应用程序的全局分配的(RM)。每个应用程序的(AM),用于管理应用程序的生命周期。每个节点上还有一个(NM),用于管理该节点上的用户进程。RM和NM构成集群的计算框架。该设计还允许在NM中运行长时间的辅助服务;这些都是特定于应用程序的服务,作为配置的一部分进行指定,并在启动期间由NM加载。对于YARN。翻译 2022-11-03 22:29:39 · 880 阅读 · 0 评论 -
Hadoop MapReduce 2.x 工作原理
对于节点数超出 4000 的大型集群,MapReduce 1 的系统开始面领着扩展性的瓶颈。在 2010 年雅虎的一个团队开始设计下一代 MapReduce。由此,YARN(Yet Another Resource Negotiator)应运而生。YARN 将 Jobtracker 的职能划分为多个独立的实体,从而改善了经典的 MapReduce 面临的扩展瓶颈问题。Jobtracker 负责作业调度和任务进度监视、追踪任务、重启失败或过慢的任务和进行任务登记,例如维护计数器总数。原创 2022-11-02 23:17:50 · 471 阅读 · 0 评论 -
Hadoop MapReduce 1.x 工作原理
下面解释一下作业在经典的 MapReduce 1.0 中运行的工作原理。原创 2022-08-02 23:05:32 · 285 阅读 · 0 评论 -
Hadoop MapReduce 文件路径过滤 GlobStatus 与 PathFilter
举例来说,处理日志的MapReduce作业可能会分析一个月的文件,这些文件可能会包含在很多目录中。针对这样的需求,可以在一个表达式使用通配符来匹配多个文件,从而不需要列举每个文件和目录来指定输入。比如,使用通配格式排除一个特定的文件就不太可能。globStatus()返回了路径格式指定模式与相匹配的所有FileStatus对象组成的数组,并按路径排序。在通配符选出一组要包含的初始文件之后,RegexExcludePathFilter过滤器再进行一次结果的优化,排除匹配正则表达式的路径。...原创 2022-08-01 23:39:15 · 432 阅读 · 0 评论 -
Hadoop MapReduce Block 与 InputSplit 的区别与联系
从上面的分析可以得出以下的总结InputSplit和HDFSBlock是一对多的关系;HDFSblock是数据的物理表示,而InputSplit是Block中数据的逻辑表示;满足数据本地性的情况下,程序也会从远程节点上读取少量的数据,因为存在行被切割到不同的Block上。HDFS块和InputSplits的区别与联系httpshttps。...转载 2022-07-24 16:19:04 · 302 阅读 · 0 评论 -
Hadoop 第一个应用程序 WordCount
使用 Java 语言编写 MapReduce 非常方便,因为 Hadoop 的 API 提供了 Mapper 和 Reducer 的抽象类,只需要继承这两个抽象类,然后实现抽象类里面的方法就可以了。原创 2022-07-03 10:10:13 · 274 阅读 · 0 评论 -
Hadoop MapReduce 新旧 mapred 与 mapreduce API
通过上述新旧版MapReduceAPI的变化,我们可以总结出如下几方面的区别。原创 2022-07-23 23:46:50 · 306 阅读 · 0 评论 -
Hadoop 多文件输出 MultipleOutputFormat
FileOutputFormat 及其子类产生的文件放在输出目录下。一个 reducer 就会输出一个文件,文件名称的输出格式为 name-r-nnnnn,例如 part-r-00000:name 是由程序设定的任意名字,默认为 partnnnnn 是一个指名块号的整数(从0开始)。块号保证从不同块(mapper 或者 reducer)写的输出在相同名字情况下不会冲突。有时可能要对输出的文件名进行控制或让每个 reducer 输出多个文件。MapReduce 为此提供了 MultipleOutputF原创 2022-07-23 18:50:40 · 407 阅读 · 0 评论 -
Hadoop 利用 ToolRunner 运行 MapReduce
大多数人通常使用通过静态 main 方法执行驱动程序代码创建他们的 MapReduce 作业。这种实现的缺点是大多数特定的配置(如果有的话)通常都是硬编码的(例如:设置 Reducer 的个数)。如果需要随时修改一些配置属性(例如:修改 Reducer 数量),就必须修改代码,然后重新构建你的 JAR 文件并重新部署应用程序。这种方式很浪费时间。...原创 2022-07-03 18:28:47 · 464 阅读 · 0 评论 -
Hadoop MapReduce 多路径输入与多个输入
1. 多路径输入FileInputFormat是所有使用文件作为其数据源的 InputFormat 实现的基类,它的主要作用是指出作业的输入文件位置。因为作业的输入被设定为一组路径, 这对指定作业输入提供了很强的灵活性。FileInputFormat 提供了四种静态方法来设定 Job 的输入路径:public static void addInputPath(Job job,Path path);...原创 2017-01-11 14:33:06 · 7372 阅读 · 1 评论 -
Hadoop 如何使用 Archives 实现归档
1. 什么是Hadoop archives?Hadoop archives是特殊的档案格式。一个Hadoop archive对应一个文件系统目录。 Hadoop archive的扩展名是*.har。Hadoop archive包含元数据(形式是_index和_masterindx)和数据(part-*)文件。_index文件包含了档案中的文件的文件名和位置信息。2. 如何创建archive?2.1...原创 2016-12-26 21:19:16 · 1692 阅读 · 1 评论 -
MapReduce 中的 InputSplit
在查看数据块的如何处理之前,我们需要更仔细地了解Hadoop如何存储数据。在Hadoop中,文件由一个一个的记录组成,最终由mapper任务一个一个的处理。例如,示例数据集包含有关1987至2008年间美国境内已完成航班的信息。如果要下载数据集可以打开如下网址:http://stat-computing.org/dataexpo/2009/the-data.html。每一年都会生成一个大文件(...原创 2017-01-11 16:04:21 · 2585 阅读 · 0 评论 -
Hadoop 推测执行
Hadoop 不会去诊断或修复执行慢的任务,相反它会试图检测任务的运行速度是否比预期慢,并启动另一个等效任务作为备份(备份任务称为)。原创 2022-07-06 08:26:23 · 320 阅读 · 0 评论 -
Hadoop HDFS Trash 回收站使用指南
我们在删除一个文件时,遇到如下问题,提示我们不能删除文件放回回收站:sudo -uxiaosi hadoop fs -rm -r tmp/data_group/test/employee/employee_salary.txt17/12/06 16:34:48 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion in...原创 2017-12-22 09:37:49 · 12249 阅读 · 0 评论 -
Hadoop Yarn上的调度器
1. 引言Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。上图是Yarn的基本架构,其中 ResourceManager 是整个架构的核心组件,负责集群上的资源管理,包括内存、CPU以及集群上的其他资; ApplicationMaster 负责在生命周期内的应用程序调度; NodeManager 负责本节点上资源的供给和隔离;Con...翻译 2018-05-10 09:47:29 · 1423 阅读 · 0 评论 -
[Hadoop]数据复制DistCp
1.需求我们项目中需要复制一个大文件,最开始使用的是hadoop cp命令,但是随着文件越来越大,拷贝的时间也水涨船高。下面进行hadoop cp与hadoop distcp拷贝时间上的一个对比。我们将11.9G的文件从data_group/adv/day=20170116下所有文件复制到tmp/data_group/adv/day=20170116/文件下1.1 查看文件大小hadoop fs原创 2017-01-22 13:38:25 · 3751 阅读 · 0 评论 -
[Hadoop]那些年踩过的Hadoop坑
(1)问题一 Hadoop DataNode未启动问题描述:dataNode未启动问题原因:这个问题一般是由于两次或两次以上的格式化NameNode造成的。jps命令发现没有datanode启动,所以去Hadoop的日志文件下查看日志(/opt/hadoop-2.7.2/logs/hadoop-xiaosi-datanode-Qunar.log),每个人...原创 2016-06-13 17:02:16 · 5026 阅读 · 1 评论 -
[Hadoop]Hadoop单元测试MRUnit
1. 设置开发环境从(https://repository.apache.org/content/repositories/releases/org/apache/mrunit/mrunit/)下载最新版本的MRUnit jar,例如如果你使用的hadoop版本为1.0.3,则需要下载mrunit-x.x.x-incubating-hadoop2.jar。同时还需要下载JUnit最新版本jar。如原创 2016-12-08 20:12:17 · 4074 阅读 · 2 评论 -
[Hadoop]Hadoop本地调试
1. Maven依赖dependency> groupId>org.apache.hadoopgroupId> artifactId>hadoop-clientartifactId> version>2.7.2version>dependency>dependency> groupId>junitgroupId> artifactId>junitart原创 2017-06-08 11:57:32 · 1681 阅读 · 0 评论 -
Hadoop 大量小文件问题及解决方案
1. HDFS上的小文件问题小文件是指文件大小明显小于HDFS上块(block)大小(默认64MB)的文件。如果存储小文件,必定会有大量这样的小文件,否则你也不会使用Hadoop(If you’re storing small files, then you probably have lots of them (otherwise you wouldn’t turn to Hadoop)),这样翻译 2016-12-25 15:34:09 · 29408 阅读 · 5 评论 -
[Hadoop]输入路径过滤,通配符与PathFilter
1. 丢失文件路径过滤应用场景:我们想查询一个月以来度假的订单数据,但是HDFS中可能因为业务故障,导致某一天的订单数据不存在:FileInputFormat.setInputPaths(job, inputPath);上述代码在遇到路径不存在的时候会报错。所以在设置路径之前需要进行一次判断,判断这个路径在HDFS上是否存在,如果存在,使用addInputPath方法添加:FileSystem f原创 2016-12-21 16:10:58 · 12242 阅读 · 3 评论 -
[Hadoop]MapReduce中的Partitioner
A partitioner works like a condition in processing an input dataset. Partition阶段发生在Map阶段之后,Reduce阶段之前。partitioner的个数等于reducer的个数(The number of partitioners is equal to the number of reducers)。这就意味着一个p翻译 2017-01-03 20:39:57 · 1928 阅读 · 1 评论 -
[Hadoop]MapReduce中的Partitioner与Combiner
Partitioners负责划分Maper输出的中间键值对的key,分配中间键值对到不同的Reducer。Maper输出的中间结果交给指定的Partitioner,确保中间结果分发到指定的Reduce任务。在每个Reducer中,键按排序顺序处理(Within each reducer, keys are processed in sorted order)。Combiners是MapReduce翻译 2017-01-07 18:18:59 · 3269 阅读 · 0 评论 -
[Hadoop]Reducer总是能复用为Combiner?
Combiner函数是一个可选的中间函数,发生在Map阶段,Mapper执行完成后立即执行。使用Combiner有如下两个优势:Combiner可以用来减少发送到Reducer的数据量,从而提高网络效率。Combiner可以用于减少发送到Reducer的数据量,这将提高Reduce端的效率,因为每个reduce函数将处理相对较少记录,相比于未使用Combiner之前。Combiner与Reduce翻译 2017-01-08 13:39:56 · 1637 阅读 · 0 评论 -
[Hadoop]HBase物理模型
Client包含访问HBase的接口并维护cache,加快对HBase的访问Zookeeper保证任何时候,集群中只有一个master存贮所有Region的寻址入口。实时监控Region server的上线和下线信息。并实时通知给Master存储HBase的schema和table元数据Master为Region server分配region负责Region server的负载均衡发现失效转载 2015-05-12 17:00:24 · 1387 阅读 · 0 评论 -
[Hadoop]Hadoop添加节点datanode
部署hadoop 和普通的datanode一样。安装jdk,ssh修改host 和普通的datanode一样。添加namenode的ip修改namenode的配置文件conf/slaves 添加新增节点的ip或host在新节点的机器上,启动服务[root@slave-004 hadoop]# ./bin/hadoop-daemon.sh start datanode [root@sl转载 2015-05-06 15:35:25 · 1228 阅读 · 0 评论 -
[Hadoop]序列化机制
传统的计算机系统通过I/O操作与外界进行交流,Hadoop的I/O由传统的I/O系统发展而来,但又有些不同,Hadoop需要处理P、T级别的数据,所以在org.apache.hadoop.io包中包含了一些面向海量数据处理的基本输入输出工具。1 序列化对象的序列化(Serialization)用于将对象编码成一个字节流,以及从字节流中重新构建对象。“将一个对象编码成一个字节流”称为序列化该对象(Se转载 2015-06-18 09:33:04 · 1244 阅读 · 0 评论 -
[Hadoop]SSH免密码登录以及失败解决方案
1. 创建ssh-key这里我们采用rsa方式,使用如下命令:xiaosi@xiaosi:~$ ssh-keygen -t rsa -f ~/.ssh/id_rsaGenerating public/private rsa key pair.Created directory '/home/xiaosi/.ssh'.Enter passphrase (empty for no pa原创 2016-06-16 08:16:46 · 29006 阅读 · 1 评论 -
[Hadoop]Hadoop YARN的发展史与详细解析
带有 MapReduce 的 Apache Hadoop 是分布式数据处理的骨干力量。借助其独特的横向扩展物理集群架构和由 Google 最初开发的精细处理框架,Hadoop 在大数据处理的全新领域迎来了爆炸式增长。Hadoop 还开发了一个丰富多样的应用程序生态系统,包括 Apache Pig(一种强大的脚本语言)和 Apache Hive(一个具有类似 SQL 界面的数据仓库解决方案)。不幸的转载 2016-11-08 20:20:22 · 1302 阅读 · 0 评论 -
[Sqoop]Sqoop导入与导出
1. 导入实例1.1 登陆数据库查看表xiaosi@Qunar:~$ mysql -u root -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 8Server version: 5.6.30-0ubuntu0.15.10.1-log (Ub原创 2016-11-13 19:59:43 · 8479 阅读 · 0 评论 -
[Sqoop]Sqoop安装
1. 下载http://www.apache.org/dyn/closer.lua/sqoop/1.4.62. 解压xiaosi@Qunar:~$ sudo tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt进行重命名:xiaosi@Qunar:/opt$ sudo mv sqoop-1.4.6.bin__hadoop-2.0.原创 2016-11-13 16:13:48 · 3189 阅读 · 0 评论 -
[Sqoop]Sqoop使用
Sqoop的本质还是一个命令行工具,和HDFS,MapReduce相比,并没有什么高深的理论。我们可以通过sqoop help命令来查看sqoop的命令选项,如下:16/11/13 20:10:17 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6usage: sqoop COMMAND [ARGS]Available commands: codege原创 2016-11-14 20:05:10 · 15151 阅读 · 2 评论 -
Hadoop 安装与启动
1. SSH参考博文:[Hadoop]SSH免密码登录以及失败解决方案(http://blog.csdn.net/sunnyyoona/article/details/51689041#t1)2. 下载(1)直接从官网上下载http://hadoop.apache.org/releases.html(2)使用命令行下载:xiaosi@yoona:~$ wget http://mirrors.hu原创 2016-12-04 15:19:39 · 1550 阅读 · 1 评论 -
[Hadoop]MapReduce多输出
FileOutputFormat及其子类产生的文件放在输出目录下。每个reducer一个文件并且文件由分区号命名:part-r-00000,part-r-00001,等等。有时可能要对输出的文件名进行控制或让每个reducer输出多个文件。MapReduce为此提供了MultipleOutputFormat类。MultipleOutputFormat类可以将数据写到多个文件,这些文件的名称源于输出原创 2016-12-06 14:03:14 · 3209 阅读 · 0 评论 -
[Hadoop]Hadoop上Data Locality
Hadoop上的Data Locality是指数据与Mapper任务运行时数据的距离接近程度(Data Locality in Hadoop refers to the“proximity” of the data with respect to the Mapper tasks working on the data.)1. why data locality is imporant?当数据集存翻译 2016-12-26 17:47:14 · 2219 阅读 · 0 评论 -
Hadoop MapReducer工作过程
1. 从输入到输出一个MapReducer作业经过了input,map,combine,reduce,output五个阶段,其中combine阶段并不一定发生,map输出的中间结果被分到reduce的过程成为shuffle(数据清洗)。在shuffle阶段还会发生copy(复制)和sort(排序)。在MapReduce的过程中,一个作业被分成Map和Reducer两个计算阶段,它们由一个或者多个M原创 2016-12-30 10:28:55 · 6578 阅读 · 1 评论