• 距离老板留给我并行化做属性约简的任务开始到今天,已是一周有余,期间经历过各种呕心沥血,通宵达旦,终于运行出了一个结果。其中在配置过程中,浪费了爷大量的时间,有时回想自己上个周干的事情,会觉得分明的本末倒置。

一会就要开组会了,有时特么的我做报告,把几个周以来整理的RS Review又看了一遍,希望过会不要再出什么幺蛾子,小爷我真是伤不起了啊!!周五晚上只睡了不到两个钟头,关键是还没有觉得很困,果然,,人如果心里有什么事情压身的话,是寝食难安的哟!

一直觉得,磨刀不误砍柴工,所以一直在配置配置配置,希望配置出最好的Eclipse工具,以后可以简便的运行自己的Hadoop程序。人生道路上总是充满了艰辛曲折,配置了几天,重装了N次系统,终于算是配置成功,对MapReduce有了进一步了解,但是对一些Configure等还是一头雾水。

说说我的吐血过程中遇到的问题吧:

  • Hadoop到底该放在哪里?

之前一直是放在/usr/local中,也就是根目录下,但是用过Linux系统的人都知道,进入根目录是需要用户权限的,把它放进去配置一下用"sudo"命令就可以解决了。但是才程序运行中如果需要访问根目录下的东西,就会有些棘手。于是有朋友跟我说,最好把hadoop放在用户目录下,这样就不会出现什么问题,自己配置时也会方便一些。于是我听从建议,将hadoop放在了~/Documents下。很easy的配置完成,兴高采烈的打开Terminal,启动hdfs时却怎么也启动不了。一是说JVM无法启动,二是说找不到相关文件,那个让人上火哟。无奈只好删掉,重新在根目录中解压配置,算是解决了这个问题。所以,到底该把Hadoop放在哪里,我认为还是放在根目录下为妙,防止自己误改,,后面在配置好Eclipse,妥妥哒~

  • hadoop怎么更改键值对类型?

翻看书上和网络上WordCount或者倒排索引的例子,都是用的改写的map(Object key, Text value, Context context)这个方法,相应的最后的输出键值对则是context.write(Text, IntWritable)。那么如果我想把输出键值对更改成其他类型呢,如都是字符串该怎么弄?查了好多博文和API终于明白了,原来在map()方法集成的接口是Mapper(KeyIn, ValueIn, KeyOut, ValueOut)接口,它有四个参数,指定了输入输出键值对的类型,我们可以为它们赋值为各种map中的基本类型,如Text,IntWritable,LongWritable等等,这样,输入输出时就可以自己掌控了。

  • Hadoop的输入输出格式是什么?

现在还没太搞懂FileInputFormat与TextInputFormat等的关系。大概是这样,我们用的是FileInputFormat,它默认使用的是TextInoputFormat,这种方式,一个文件生成一个Mapper。而默认的TextIF的输入格式是(key,value),key代表该文件某一行相对于开头的偏移量,value代表一行的内容,我们可以从context中获取文件名信息。一个Mapper处理一个文件,它的函数map()则只会读入并处理一行数据。不想把文件分得这么散的话可就要注意了。自己就是在如何一次处理一个文件这里犯了愁,想啊想啊想,想到了明代王重阳对着竹子格物致知的样子。。

  • Mapper类中map()函数之后不能再有东西了麽?

是的。这里也是纠结了好久,该开始不知为什么,在map()函数后加入for循环等,老是提示出错,以为是eclipse又出了问题,结果多次实验证明,是map()函数后不能在有内容。map直接写入context,然后传递给reducer处理。

  • 怎么调用含有静态公共变量的类中的函数?

这个问题不止是在Hadoop程序中,一般的java程序也会遇到。简单来说,就是,要保证被调用类中的全局静态变量被赋值,否则会出现空指针错误。

可以抽象出来的问题暂时就这么些了,以后有问题继续补充。。

第一个贴上XMT标签的Hadoop程序的更多相关文章

  1. 在Hadoop1.2.1上运行第一个Hadoop程序FileSystemCat

  2. 史上最详细的Hadoop环境搭建(转)

    转载的文章,请告知侵删.本人只是做个记录,以免以后找不到. 前言 Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的扎实程度,会决定在大数据技 ...

  3. 转 史上最详细的Hadoop环境搭建

    GitChat 作者:鸣宇淳 原文:史上最详细的Hadoop环境搭建 关注公众号:GitChat 技术杂谈,一本正经的讲技术 [不要错过文末活动哦] 前言 Hadoop在大数据技术体系中的地位至关重要 ...

  4. 马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动(转)

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

  5. 大数据学习——点击流日志每天都10T,在业务应用服务器上,需要准实时上传至(Hadoop HDFS)上

    点击流日志每天都10T,在业务应用服务器上,需要准实时上传至(Hadoop HDFS)上 1需求说明 点击流日志每天都10T,在业务应用服务器上,需要准实时上传至(Hadoop HDFS)上 2需求分 ...

  6. (linux shell)第一章--小试牛刀(上)

    来源:(linux shell)第一章--小试牛刀(上) 从今天開始,我们一起来学习<linux shell脚本攻略>这本书. 1.1简单介绍 shell脚本一般是一个以#!起始的文本文件 ...

  7. HTML中的上下标标签的演示

    HTML中的上下标标签的演示 #table_head>td { font-weight: bold } tr { text-align: center } 作用 标签 演示代码 呈现效果 上标 ...

  8. input file 文件上传标签的样式美化

    input file 文件上传标签的样式美化 将<input type="file">的透明度设置为0: <input type="file" ...

  9. UI标签库专题四:JEECG智能开发平台 Upload(上传标签)

     1. Upload(上传标签) 1.1.  參数 属性名 类型 描写叙述 是否必须 默认值 id string 上传控件唯一标示 是 null name string 控件name 是 null ...

随机推荐

  1. Keepalived搭建主从架构、主主架构实例

    实例拓扑图: DR1和DR2部署Keepalived和lvs作主从架构或主主架构,RS1和RS2部署nginx搭建web站点. 注意:各节点的时间需要同步(ntpdate ntp1.aliyun.co ...

  2. 构造HTTP请求Header实现“伪造来源IP”

    在阅读本文前,大家要有一个概念,在实现正常的TCP/IP 双方通信情况下,是无法伪造来源 IP 的,也就是说,在 TCP/IP 协议中,可以伪造数据包来源 IP ,但这会让发送出去的数据包有去无回,无 ...

  3. 点按钮ajax get方法修改0或1状态封装成函数

    最终效果 列表页面表格里点击按钮修改状态 按钮样式要引入bootstrap才可以用 本文件用的是laravel框架环境 larave路由里 Route::get('category/changesta ...

  4. Source Insight的使用

    1. source insight查看函数的上一级调用的位置(函数) --> 鼠标放在函数上,右键 选择 Jump To caller,就可以看到有哪些函数调用它了:

  5. fsync体会

    看这个链接:http://www.postgresql.org/docs/9.1/static/runtime-config-wal.html 是这样说的: fsync (boolean) If th ...

  6. Git中从远程的分支获取最新的版本到本地——两种命令

    Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge Git fetch origin master git log ...

  7. 爬取图片过程遇到的ValueError: Missing scheme in request url: h 报错与解决方法

    一 .scrapy整体框架 1.1 scrapy框架图 1.2 scrapy框架各结构解析 item:保存抓取的内容 spider:定义抓取内容的规则,也是我们主要编辑的文件 pipelines:管道 ...

  8. Python 学习笔记之—— PIL 库

    PIL,全称 Python Imaging Library,是 Python 平台一个功能非常强大而且简单易用的图像处理库.但是,由于 PIL 仅支持到Python 2.7,加上年久失修,于是一群志愿 ...

  9. CentOS7安装Jenkins Master

    一.安装java环境 1.查看服务器版本 cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 升级操作系统 yum update ...

  10. 第十一次ScrumMeeting会议

    第十一次ScrumMeeting 时间:2017/11/18 4:00-4:30 地点:主203 人员:全体人员 照片: 工作情况 名字 今日计划 明天的工作 遇到的困难 蔡帜 讨论策划详情\确定WB ...