hadoop
bitcarmanlee
这个作者很懒,什么都没留下…
展开
-
Java API操作Hdfs详细示例
从FileStatus中不难看出,包含有文件路径,大小,是否是目录,block_replication, blocksize…可以看出listStatus只需要传入参数Path即可,返回的是一个FileStatus的数组。上面的方法是遍历所有文件以及文件夹。如果只想遍历文件,可以使用listFiles方法。如果判断fileStatus是文件夹,则递归调用tree方法,达到全部遍历的目的。,而listStatus返回的是个数组。同时,listFiles返回的都是文件。而FileStatus包含有以下信息。原创 2022-08-24 11:12:50 · 910 阅读 · 0 评论 -
hadoop hdfs文件给其他账号授权
1.文件账号授权需求hdfs上的目录与文件对应各自的kerberos账号,很多时候需要对另外的账号授予权限。这个时候可以使用setfacl命令来完成相应的需求。2.getfacl命令在了解setfacl之前,我们先看看getfacl命令。hadoop fs -getfacl filepath# file: filepath# owner: xxx# group: supergroupuser::rwxgroup::rwxmask::rwxother::rwx可以看到,此时file原创 2021-02-22 16:25:14 · 4026 阅读 · 0 评论 -
hadoop streaming 按字段排序与输出分割详解
1.默认情况在hadoop streaming的默认情况下,是以”\t”作为分隔符的。对于标准输入来说,每行的第一个”\t” 以前的部分为key,其他部分为对应的value。如果一个”\t”字符没有,则整行都被当做key。这个2.map阶段的sort与partitionmap阶段很重要的阶段包括sort与partition。排序是按照key来进行的。咱们之前讲了默认的key是由”\t”分隔得到的。我原创 2016-07-11 16:13:37 · 11121 阅读 · 0 评论 -
hadoop 代码中获取文件名
在hadoop的MR相关代码中,经常需要获得mapper输入的文件名,从而针对不同的文件进行不同的操作。下面简单地介绍一下如果在MR代码中获取文件名1.在streaming中获取文件名实际中经常用python开发streaming程序,在python代码中可以用如下方式获得文件名:import osfilepath = os.environ["mapreduce_map_input_file"]通过原创 2016-06-22 16:09:01 · 10164 阅读 · 0 评论 -
hadoop 用MR实现join操作
在MR中,类似于join类的操作非常常见。在关系型数据库中,join就是最强大的功能之一。在hive中,jion操作也十分常见。现在,本博主就手把手教会大家怎么在MR中实现join操作。为了方便起见,本文就以left join为视角来实现。1.数据准备关于什么是join,什么是left join,本文就先不讨论了。先准备如下数据:cat employee.txtjd,davidjd,miket原创 2016-07-08 19:05:04 · 7196 阅读 · 1 评论 -
hadoop文件的序列化
1、为什么要序列化?一般来说,”活的”对象只存在内存里,关机断电就没有了。而且”活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。 然而序列化可以存储”活的”对象,可以将”活的”对象发送到远程计算机。2、什么是序列化?序列化就是指将对象(实例)转化为字节流(字符数组)。反序列化就是将字节流转化为对象的逆过程。 于是,如果想把”活的”对象存储到文件,存储这串字节即可,如果想把”活的”转载 2016-12-18 11:10:38 · 1473 阅读 · 0 评论 -
InstantiationException in hadoop map reduce program
在MR代码中有多路输入。代码提交到集群以后,log爆出如下异常:Exception in thread "main" java.lang.RuntimeException: java.lang.InstantiationException at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.jav原创 2017-01-23 15:46:26 · 1306 阅读 · 1 评论 -
Hadoop Partitioner 实战详解
Partitioner是MR中非常重要的组件。Partitioner的作用是针对Mapper阶段的中间数据进行切分,然后将相同分片的数据交给同一个reduce处理。Partitioner过程其实就是Mapper阶段shuffle过程中关键的一部分。在老版本的hadoop中,Partitioner是个接口。而在后来新版本的hadoop中,Partitioner变成了一个抽象类(本人目前使用的版本为2.原创 2017-03-03 12:44:39 · 3665 阅读 · 1 评论 -
mapreduce多路输出实例
1.MultiPleOutputs简介MapReduce job中,可以使用FileInputFormat和FileOutputFormat来对输入路径和输出路径来进行设置。在输出的时候,MR内部会对输出的文件进行重新命名,例如常见的形式为part-r-00000。 但是很多情况下,我们希望将输出的文件分开,即所谓的多路输出。我们希望将输出的内容重新组织,输出到不同的目录或者文件夹中,方便我们后续原创 2017-02-04 14:38:47 · 5946 阅读 · 0 评论 -
java.io.IOException: Filesystem closed
1.问题描述往集群提交任务的时候,需要在hdfs上面读取一个资源文件。在读取该资源文件的时候,代码爆出如下异常:Error: java.io.IOException: Filesystem closed at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:823) at org.apache.hadoop.hdfs原创 2017-03-30 15:42:49 · 12290 阅读 · 2 评论 -
hadoop SequenceFile详解
1. 什么是SequenceFile1.1.sequenceFile文件是Hadoop用来存储二进制形式的[Key,Value]对而设计的一种平面文件(Flat File)。 1.2.可以把SequenceFile当做是一个容器,把所有的文件打包到SequenceFile类中可以高效的对小文件进行存储和处理。 1.3.SequenceFile文件并不按照其存储的Key进行排序存储,Sequenc原创 2017-09-27 11:46:20 · 13834 阅读 · 1 评论 -
MapReduce 1.x VS 2.x架构对比
1.Hadoop 1.X架构Hadoop 1.X的组件主要有两个1.HDFS(HDFS V1)2.MapReduce(MR V1)其中HDFS是分布式文件存储系统,MapReduce是计算框架。MapReduce 1.X是Master/Slave家头,有全局唯一的Jobtracker与多个TaskTracker。其中Master是指唯一的Jobtracker,slave是指TaskTra...原创 2019-04-12 16:06:36 · 1056 阅读 · 0 评论 -
hadoop 压缩工具 比较
hadoop里支持许多压缩算法。压缩的好处主要有两点:1.减少了文件占用的存储空间,原来上T的文件可能压缩完以后只需要两三百G的空间即可;2.文件的体积小了以后,数据传输的速度自然就快了。在现在的大数据环境下,这两点显得更加重要。所以现在hdfs文件系统上存的文件,如果数据量大到一定程度,都需要经过压缩处理。hadoop上常用的压缩格式包括gzip,lzo,snappy,bzip2。以下我们对这四种原创 2016-05-25 10:12:26 · 2269 阅读 · 0 评论 -
Hadoop-Streaming实战经验及问题解决方法总结
看到一篇不错的Hadoop-Streaming实战经验的文章,里面有大部分的情景都是自己实战中曾经遇到过的。特意转载过来,感谢有心人的总结。目录Join操作分清join的类型很重要…启动程序中key字段和partition字段的设定…控制hadoop程序内存的方法…对于数字key的排序问题…在mapper中获取map_input_file环境变量的方法…运行过程中记录数据的方法…多次运转载 2016-07-11 18:01:02 · 4428 阅读 · 0 评论 -
org.apache.hadoop.fs.ChecksumException: Checksum error
想put文件到hdfs上,遇到org.apache.hadoop.fs.ChecksumException: Checksum error的为本土hadoop fs -put cheap_all /tmp/wanglei/cheap16/03/24 09:27:52 INFO fs.FSInputChecker: Found checksum error: b[0, 4096]=313原创 2016-03-24 09:48:08 · 7126 阅读 · 1 评论 -
hadoop 升级
1.停掉HDFS,备份关键数据2.需要备份的数据主要包括 配置文件:${hadoop_home}/conf目录下的所有配置文件 元数据文件:配置文件hdfs-site.xml中的属性“dfs.name.dir”指定的目录下的文件3.下载最新稳定版的hadoop 2.4.1版本,并解压到与现有hadoop同级的目录下。 说明:旧版的配置文件备份成功后,就不再需要和旧原创 2016-03-16 16:20:24 · 1195 阅读 · 0 评论 -
MapReduce Shuffle详解
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce,Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里我尽转载 2016-04-07 22:06:36 · 755 阅读 · 0 评论 -
PipeMapRed.waitOutputThreads(): subprocess failed with code N
经常遇到的exception是:PipeMapRed.waitOutputThreads(): subprocess failed with code N"OS error code 1: Operation not permitted""OS error code 2: No such file or directory""OS error code 3: No such p转载 2016-03-28 21:57:28 · 2962 阅读 · 0 评论 -
hadoop SequenceFile
1 SequenceFile的理解1)SequenceFile是Hadoop用来存储二进制形式的对而设计的一种平面文件(Flat File); (2)可以把SequenceFile当做一个容器,把所有文件打包到SequenceFile类中可以高效的对小文件进行存储和处理; (3)SequenceFile文件并不按照其存储的key进行排序存储,SequenceFile的内部类Writer提供了ap转载 2016-05-25 11:01:05 · 789 阅读 · 0 评论 -
hadoop 注解之 interfaceAudience interfaceStability
在阅读hadoop相关源码的过程中,经常见到类似@InterfaceAudience.Public@InterfaceStability.Stable之类的标识。特意查阅了一下相关资料,在此做一个小结InterfaceAudienceInterfaceAudience 类包含有三个注解类型,用来说明被他们注解的类型的潜在使用范围,即audienceInterfaceAudience的源码如下/*原创 2016-05-14 23:18:47 · 4797 阅读 · 0 评论 -
hadoop 新API与旧API对比
Hadoop现在同时提供了新旧的两套API接口。现在编写MR代码的时候,当然尽可能使用新的API接口。但是旧的API接口暂时也还有保留,也还能使用。实际项目开发的时候,尽量统一标准用一套API较好,以免带来不必要的麻烦。下面我们来简单介绍一下新旧两套API的区别。1.存放的位置这是最令人蛋疼,最需要引起注意的地方之一。博主用的IDE是eclipse,经常写入一个类以后,然后command+shift原创 2016-05-15 20:56:25 · 1608 阅读 · 0 评论 -
hadoop mapper从源码开始 详解
hadoop的mapreduce计算框架中,最重要的两个部分自然就是mapper跟reducer了。写了这么久的MR,一直没有机会研究源码,也挺遗憾的。趁着这波有一些要深入了解的需求,加上周末的一些时间,仔细阅读了一下mapper相关源码,有了自己的一些小小心得,权当笔记。写得不好或者有不对的地方,请童鞋们指出1.mapper源码/** * Licensed to the Apache Softw原创 2016-05-15 22:38:32 · 7931 阅读 · 0 评论 -
hadoop Configured Configrable Configuration Tool 源码详解
在用java写MR的时候,定义类的第一行一般都是如下方式:public class XXX extends Configured implements Toolrun方法的一个实例如下:public int run(String[] args) throws Exception { Configuration conf = getConf(); GenericOpti原创 2016-05-19 16:00:32 · 1472 阅读 · 0 评论 -
hadoop fs.trash 详解
linux系统里,我觉得最大的不方便之一就是没有回收站的概念。由rm -rf引发的血案,估计每个写代码的同学都遇到过。在hadoop或者说hdfs里面,有trash相关的概念,可以使得数据被误删以后,还可以找回来。1.打开trash相关选项hadoop里的trash选项默认是关闭的。所以如果要生效,需要提前将trash选项打开。修改conf里的core-site.xml即可。我们集群的相关配置如下:原创 2016-05-20 22:18:54 · 11760 阅读 · 2 评论 -
Hadoop Configuration 源码详解
hadoop里相关的配置在org.apache.hadoop.conf包里,Configuration类就在里面。关于配置类的相互关系,已经在: http://blog.csdn.net/bitcarmanlee/article/details/51454564中 有过详细的介绍。为了让大家更好地看清楚conf的东东,特意截个图: 1.温习一下前面的内容在前面的文章中,我们已经介绍了这几者的关系原创 2016-05-21 10:13:19 · 4563 阅读 · 0 评论 -
hadoop2.4.1源码在64位系统编译过程中遇到的几个错误及解决方法
hadoop2.4.1源码在64位系统编译过程中遇到的几个错误及解决方法操作系统:Ubuntu 14.04.2 LTS \n \l源码:hadoop-2.4.1-src.tar.gz(apache官网下载)错误1:[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.2.0:proto原创 2016-03-16 16:16:18 · 3968 阅读 · 0 评论