Hadoop学习笔记(一)——(使用java API操作HDFS中遇到的问题)

1、文件树中缺少文件

(1)关于创建Maven project后文件树下没有Maven Dependencies文件

主要原因:pom.xml文件中的开头报错

错误提示:Missing artifact jdk.tools:jdk.tools:jar:1.8

如图:

image

分析:tools.jar包是JDK自带的,pom.xml中以来的包隐式依赖tools.jar包,而tools.jar并未在库中,

只需要将tools.jar包添加到jdk库中即可。

解决方案:在pom文件中添加如下代码即可。

    <dependency>
            <groupId>jdk.tools</groupId>
            <artifactId>jdk.tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
    </dependency>

解决完成后的效果如下图所示:

image

2、pom.xml文件报错

错误提示:Missing artifact jdk.tools:jdk.tools:jar:1.8

如图:

image

分析:tools.jar包是JDK自带的,pom.xml中以来的包隐式依赖tools.jar包,而tools.jar并未在库中,

只需要将tools.jar包添加到jdk库中即可。

解决方案:在pom文件中添加如下代码即可。

    <dependency>
            <groupId>jdk.tools</groupId>
            <artifactId>jdk.tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
    </dependency>

解决完成后的效果如下图所示:

image

注意:1、2两个问题的错误原因是一致的,只要解决了tools.jar包的问题,所有出错的问题都会被解决。

3、从HDFS下载文件到本地时报错且所下载的文件内容为空

错误提示:java.io.IOException: (null) entry in command string: null chmod 0644 F:\testFile

如图:

image
image

源代码如下图所示:

image

分析:因为我们的Hadoop集群搭建在Linux环境下,而开发环境是在Windows环境下,此时如果不设置Hadoop开发环境,就会报以上错误。

解决方案

  • 第一种方案:安装配置Windows平台下的Hadoop。(注意:配置完成后必须重启电脑)
  • 第二种方案:将Linux上进行Hadoop安装的Hadoop压缩包下载并解压,然后在解压包bin目录下额外添 Windows相关依赖文件(winutils.exe、winutils.pdb、hadoop.dll),然后进行Hadoop 环境变量配置。(注意:配置完成后必须重启电脑)
  • 第三种方案:使用FileSystem类自带的方法,即便不对Hadoop的环境变量配置也可正常实现代码功能, 缺点是本地路径下没有附带一个xxx.crc的校验文件。

这里推荐使用第三种方案,可以避免在配置Windows下的Hadoop环境时出现其他的错误。

采用第三种方案解决问题

这里只需要将上图所示中的这条代码

fs.copyToLocalFile(new Path("/testFile"), new Path("F:/"));

改为下面这种方式即可

fs.copyToLocalFile(true, new Path("/testFile"), new Path("F:/"),true);

解决完成后的效果如下图所示:

image

拓展学习

1、关于eclipse中的单元测试@Test的相关概念

单元测试定义

单元测试是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义(例如:C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等)。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。通俗来讲就是只针对一个函数或类等进行单独的运行调试。

相关知识链接:单元测试

这里我们在Java中用到的单元测试方法,采用了java中的JUnit单元测试工具。JUnit 是 Java 社区中知名度最高的单元测试工具。主要用于白盒测试和回归测试。

注意:并不是所有的方法都适合用JUnit进行单元测试,JUnit对所测试的方法有一定的要求。在使用JUnit进行测试时,有下面这几条注意点

  • @Test 不能加在静态方法上
  • 所测试的方法不能有返回值
  • 方法不能有参数。
  • 不选择方法而去执行JUnit , 相当于所有的@Test注解下的方法都会运行一遍。

2、关于偏移量的相关概念

关于偏移量的概念早在学习C语言、汇编语言、计算机组成原理的时候就有接触,但这个概念相对于其他具象的概念而言要相对难以理解,因为偏移量本身便是一个抽象的概念。最近在研究深度学习、大数据的时候,又接触到了偏移量这个概念,这里再将其拿出来作以具象化,深度理解偏移量这个问题。

在计算机汇编语言中,把偏移量的定义为:存储单元的实际地址与其所在段的段地址之间的距离称为段内偏移,也称为“有效地址或偏移量”。

其实通俗来讲,计算机只要知道了首地址和偏移量,就相当于知道了这个数据的存储位置。

不同的语言中对于偏移量的定义略有不同,只要理解了偏移量最本质的含义,无论何种语言它所代表的意思基本相同。

这里提供三个链接,需要的小伙伴课可自行阅读。

关于Java IO流中偏移量

关于偏移量的理解

什么是偏移量

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容