第一个贴上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 ...
随机推荐
- Centos在虚拟机VMware12上的安装
欢迎评论和更正 虚拟机12的安装 看教程https://blog.csdn.net/yhj19920417/article/details/72891766 centos6.5镜像下载(选minima ...
- typecho博客组插件:openSug.js百度搜索框下拉提示免费代码
Typecho候选搜索增强插件:安装openSug插件即可获得带有“搜索框提示”功能的搜索框,让Typecho搜索更便捷! 支持百度.谷歌.雅虎.Yandex.360好搜.UC神马.酷狗.优酷.淘 ...
- JZOJ 5943. 树
Description
- Java:位移运算符
Java中有三个位移运算符,用于对int类型整数的二进制补码进行操作: 1. "<<": 左移运算符 在二进制补码末尾添加“0”,之前的其他位相当于左移了一位,可看作成 ...
- Linq To Excel使用简介二
目录: 1.常用方法介绍 2.查询符合条件的数据 3.手动添加映射 4.其他用法 1.常用方法介绍 里面有一些常见的方法,如下: Worksheet 获得工作表中的数据 Works ...
- session、token、cookie的区别
token就是令牌,比如你授权(登录)一个程序时,他就是个依据,判断你是否已经授权该软件cookie就是写在客户端的一个txt文件,里面包括你登录信息之类的,这样你下次在登录某个网站,就会自动调用co ...
- Python|花了一天,为大家整理的一套来自外国大佬的密码速查表
简单的HTTPS服务器 检查证书信息 输出 生成自签名证书 输出 准备一个签名注册请求 输出 生成无密码的RSA秘钥文件 用一个私钥给文件签名 输出 从签名验证一个文件 输出 通过pem文件做RSA加 ...
- coia阻止事件上浮
1.阻止事件上浮 选择默认地址li 时 选中整个div使其为默认地址 此时点击编辑按钮也会触发选中默认事件 为事件添加event.stopPropagation();阻止事件上浮 2.js给页面inp ...
- browsersync的安装与基本使用
browser-sync启动命令 Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面. 官网文档:http://www.brows ...
- 孤荷凌寒自学python第七十一天开始写Python的第一个爬虫
孤荷凌寒自学python第七十一天开始写Python的第一个爬虫 (完整学习过程屏幕记录视频地址在文末) 在了解了requests模块和BeautifulSoup模块后,今天开始真正写一个自己的爬虫代 ...