第一个贴上XMT标签的Hadoop程序
- 距离老板留给我并行化做属性约简的任务开始到今天,已是一周有余,期间经历过各种呕心沥血,通宵达旦,终于运行出了一个结果。其中在配置过程中,浪费了爷大量的时间,有时回想自己上个周干的事情,会觉得分明的本末倒置。
一会就要开组会了,有时特么的我做报告,把几个周以来整理的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程序的更多相关文章
- 在Hadoop1.2.1上运行第一个Hadoop程序FileSystemCat
- 史上最详细的Hadoop环境搭建(转)
转载的文章,请告知侵删.本人只是做个记录,以免以后找不到. 前言 Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的扎实程度,会决定在大数据技 ...
- 转 史上最详细的Hadoop环境搭建
GitChat 作者:鸣宇淳 原文:史上最详细的Hadoop环境搭建 关注公众号:GitChat 技术杂谈,一本正经的讲技术 [不要错过文末活动哦] 前言 Hadoop在大数据技术体系中的地位至关重要 ...
- 马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动(转)
马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...
- 大数据学习——点击流日志每天都10T,在业务应用服务器上,需要准实时上传至(Hadoop HDFS)上
点击流日志每天都10T,在业务应用服务器上,需要准实时上传至(Hadoop HDFS)上 1需求说明 点击流日志每天都10T,在业务应用服务器上,需要准实时上传至(Hadoop HDFS)上 2需求分 ...
- (linux shell)第一章--小试牛刀(上)
来源:(linux shell)第一章--小试牛刀(上) 从今天開始,我们一起来学习<linux shell脚本攻略>这本书. 1.1简单介绍 shell脚本一般是一个以#!起始的文本文件 ...
- HTML中的上下标标签的演示
HTML中的上下标标签的演示 #table_head>td { font-weight: bold } tr { text-align: center } 作用 标签 演示代码 呈现效果 上标 ...
- input file 文件上传标签的样式美化
input file 文件上传标签的样式美化 将<input type="file">的透明度设置为0: <input type="file" ...
- UI标签库专题四:JEECG智能开发平台 Upload(上传标签)
1. Upload(上传标签) 1.1. 參数 属性名 类型 描写叙述 是否必须 默认值 id string 上传控件唯一标示 是 null name string 控件name 是 null ...
随机推荐
- DevOps - 版本控制 - GitHub
README Badges 徽章 Shields.io: Quality metadata badges for open source projects 徽章 官网:https://shields ...
- npm cnpm npx nvm 傻傻分不清
用过 npm cnpm吗?知道 npx nvm 吗? 唔~ npm npm 的全称是 Node Package Manager 是 JavaScript 世界的包管理工具,并且是 Node.js 平台 ...
- intellij IEDA 从svn拉环境到正常运行
intellij IEDA 从svn拉环境到正常运行 1.svn拉项目 在项目选择界面点击Check out from Version Control 从中选择Subversion(SVN) 2.选 ...
- centos 安装java1.8
https://www.cnblogs.com/xuliangxing/p/7066913.html
- C++ vector二维数组
C++ 构建二维动态数组 int **p; p = ]; //注意,int*[10]表示一个有10个元素的指针数组 ; i < ; ++i) { p[i] = ]; } 这样就构成10*5的数组 ...
- 二叉树和二叉查找树--数据结构与算法JavaScript描述(10)
二叉树和二叉查找树 概念 树是一种非线性的数据结构,以分层的方式存储数据. 树被用来存储具有层级关系的数据,比如文件系统的文件: 树还被用来存储有序列表. 一棵树最上面的节点称为根节点. 如果一个节点 ...
- grunt in webstorm
1.install grunt sudo npm install -g grunt-cli npm install grunt --save-dev
- WPF中InkCanvas(墨水面板)用法
原文:WPF中InkCanvas(墨水面板)用法 WPF中InkCanvas(墨水面板)用法 ...
- c++实验3类和对象
实 验 3: part 1:验证 part 2:graph #include <iostream> #include "graph.h" using namespac ...
- django 解决cors问题
首页 博客 学院 下载 GitChat TinyMind 论坛 问答 商城 VIP 活动 招聘 ITeye CSTO 写博客 发Chat 登录注册 AFei0018-博客 穷则思变,差则思勤.Pyth ...