hadoop学习;大数据集在HDFS中存为单个文件;安装linux下eclipse出错解决;查看.class文件插件
sudo apt-get install eclipse
安装后打开eclipse,提示出错
An error has occurred. See the log file
/home/pengeorge/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/1342406790169.log.
查看错误日志然后解决
打开log文件,看到以下的错误
!SESSION 2012-07-16 10:46:29.992 -----------------------------------------------
eclipse.buildId=I20110613-1736
java.version=1.7.0_05
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=zh_CN
Command-line arguments: -os linux -ws gtk -arch x86
!ENTRY org.eclipse.osgi 4 0 2012-07-16 10:46:31.885
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-3740 in java.library.path
no swt-gtk in java.library.path
Can't load library: /home/pengeorge/.swt/lib/linux/x86_64/libswt-gtk-3740.so
Can't load library: /home/pengeorge/.swt/lib/linux/x86/libswt-gtk.so
解决的方法
把相关文件复制到~/.swt/lib/linux/x86下就可以
cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86_64然后重新启动就能够了
eclipse在usr/lib/eclipse下
http://www.blogjava.net/hongjunli/archive/2007/08/15/137054.html 解决查看.class文件
一个典型的hadoop工作流会在别的地方生成数据文件(如日志文件),再将这些拷贝到HDFS中,接着由Mapreduce处理这个数据。通常不会直接读取一个HDFS文件。它们依靠MAPReduce框架读取。并将之解析为独立的记录(键/值对),除非指定数据的导入与导出。否则差点儿用不到编程来读写HDFS文件
Hadoop文件命令既能够与HDFS文件系统交互,也能够和本地文件系统交互,也能够与Amazon S3文件系统交互
hadoop fs -mkdir /user/chuck创建文件夹 hadoop fs -ls/查看 hadoop fs -lsr /查看子文件夹
hadoop fs -put example.txt . 加入文件到/user/chuck后面的点相当于/user/chuck
假设放到一个不存在的目录。那么系统默认是给文件重命名。而不是创建新目录
注意这里的example.txt是放在根文件夹用户下。比方student用户。能够是 /home/student/example.txt 以上操作将本地文件放入hdfs
当你把数据放入HDFS能够执行hadoop处理,处理过程将输出一组新的HDFS文件,查看hadoop fs -cat /user/chuck/pg20417.txt
读取hadoop fs -get /user/chuck/pg20417.txt .读取文件到当前linux目录下,这里的点表示当前目录
能够在hadoop中使用UNIX的管道hadoop fs -cat /user/chuck/pg20417.txt | head 查看最后一千字节hadoop fs -tail /user/chuck/pg20417.txt;
查看文件hadoop fs -text /user/chuck/pg20417.txt
删除文件hadoop fs -rm /user/chuck/pg20417.txt
查看Hadoop命令帮助,比如要了解ls 则能够hadoop fs -help ls
Hadoop命令行有个getMerge用于将HDFS拷贝到本地计算机文件之前进行合并,在Hadoop用于文件操作的主类位于org.apache.hadoop.fs
输入数据被分到不同节点之后,节点间的数据交换在“洗牌”阶段,节点间通信的唯一时间是“洗牌”阶段,这个通信约束对可扩展性有极大的帮助
MapReduce提供了一种序列化键值对的方法。因此仅仅有那些这些序列化的类能够在这个框架中充当键或者值。实现Writable接口的能够是值,实现WritableComparable<T>接口的能够是键和值,键须要比較。一些提前定义的类实现writablecomparable接口ti
实现的方法有:怎样读入数据,怎样写出数据,数据的排序比較
能够開始第一阶段mapper,一个类要作为mapper。须要继承mapreducebase基类和实现mapper接口
构造方法void configure(JobConif job)提取xml配置文件,或者应用程序主类中的參数,在数据处理之前调用该函数
析构方法void close()mapper结束前的一个方法,完毕全部结尾工作,如关闭数据库连接,打开文件等。
mapper仅仅有一个方法map,用于处理一个单独的键值对
reduce函数,通过迭代处理那些与指定键相关联的值。生成一个(可能为空)列表
在mapper和reduce之间还有个极其重要的步骤:将mapper的结果输出给不同的reducer,这就是partitioner的工作
多个reducer实现并行计算,默认的做法是对键进行散列来确定reducer,hadoop通过国HashPartitionner来强制运行这个策略,但有时会让你出错
(上海,北京)和(上海,广州),这两行能够被送到不同的reducer航线离港地,若以上海为key。则处理两次,若以北京为离港地。为key。也是处理两次。若以广州为能够。也是处理两次,这时北京和广州为key的各自两次就是多余的
这时我们应该对partitioner量身定制,仅仅须要对departure进行散列,同样离港地的航线送往同一个reducer
一个partitioner须要实现configure函数(将hadoop作业应用在partitioner上),实现getPartition()函数(返回一个介于0到reduce任务数之间的整数。指向键值对要发送的reducer)
由partitioner决定键放入的位置(哪个reducer)
HDFS支持将多个文件合并成一个大文件到HDFS处理(效率还高点)处理后满足MapReduce使用,MapReduce处理的原则之中的一个就是将输入数据切割成块, 这些快能够在多台计算机上并行处理,在hadoop术语这些被称之为输入分片(Input split),这些分片应足够小实现粒度并行。也不能太小
FSDataInputStream扩展了java.io.DataInputStream以支持随机读,MapReduce须要这个特性,由于一台机器可能被指派从输入文件的中间開始处理一个分片。假设没有随机訪问,则须要从头一直读到分片的位置
HDFS为了存储MapReduce并行切分和处理的数据所做的设计,HDFS按块存储并分布在多个机器上,每一个文件块为一个分片。假设每一个分片/块都由它所在的机器进行处理,就自己主动实现了并行,多个节点负责数据块以实现可靠性。MapReduce能够随意选择一个包括分片/数据块副本的节点
输入分片是一种逻辑划分,而HDFS数据块是对输入数据的物理划分。当它们一致时,效率很高。但在实际中从未达到全然一致,记录可能会跨过数据块的边界,处理特定分片的计算节点会从一个数据块中获取记录的一个片段
hadoop学习;大数据集在HDFS中存为单个文件;安装linux下eclipse出错解决;查看.class文件插件的更多相关文章
- 一次失败的尝试hdfs的java客户端编写(在linux下使用eclipse)
一次失败的尝试hdfs的java客户端编写(在linux下使用eclipse) 给centOS安装图形界面 GNOME桌面环境 https://blog.csdn.net/wh211212/artic ...
- Hadoop学习笔记一(HDFS架构)
介绍 Hadoop分布式文件系统(HDFS)设计的运行环境是商用的硬件系统.他和现存的其他分布式文件系统存在很多相似点.不过HDFS和其他分布式文件系统的区别才是他的最大亮点,HDFS具有高容错的特性 ...
- hadoop学习第二天-了解HDFS的基本概念&&分布式集群的搭建&&HDFS基本命令的使用
一.HDFS的相关基本概念 1.数据块 1.在HDFS中,文件诶切分成固定大小的数据块,默认大小为64MB(hadoop2.x以后是128M),也可以自己配置. 2.为何数据块如此大,因为数据传输时间 ...
- Hadoop学习(2)-- HDFS
随着信息技术的高度发展,数据量越来越多,当一个操作系统管辖范围存储不下时,只能将数据分配到更多的磁盘中存储,但是数据分散在多台磁盘上非常不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,因此诞 ...
- Hadoop学习1--解决启动过程中的问题
方法:http://www.aboutyun.com/thread-12694-1-1.html http://www.linuxidc.com/topicnews.aspx?tid=13 http: ...
- Hadoop 学习总结之一:HDFS简介
一.HDFS的基本概念 1.1.数据块(block) HDFS(Hadoop Distributed File System)默认的最基本的存储单位是64M的数据块. 和普通文件系统相同的是,HDFS ...
- 大数据(5) - HDFS中的常用API操作
一.安装java 二.IntelliJ IDEA(2018)安装和破解与初期配置 参考链接 1.进入官网下载IntelliJ IDEA https://www.jetbrains.com/idea/d ...
- Hadoop学习笔记之五:HDFS功能逻辑(1)
Block Report DataNode会周期性(默认1小时)将自身节点全部block信息发送给NameNode,以让NameNode正确确维护block信息. 在Block Report的数据源D ...
- hadoop学习(三)HDFS常用命令以及java操作HDFS
一.HDFS的常用命令 1.查看根目录下的信息:./hadoop dfs -ls 2.查看根目录下的in目录中的内容:./hadoop dfs -ls in或者./hadoop dfs -ls ./i ...
随机推荐
- u盘安装ubuntu10.04 server.txt
10.04 先将 ubuntu server 的 iso 放到优盘上,然后在提示无法找到光驱时,按 alt+f2 打开一个新的 console 窗口,将 iso mount 上,具体操作如下: ls ...
- Android学习笔记(九)——更复杂的进度对话框
显示操作进度的对话框 1.使用上一篇创建的同一项目.在activity_main.xml文件里加入一个Button: <Button android:id="@+id/btn_dial ...
- [置顶] java Gui 键盘监听事件
简单写一个java Gui键盘监听事件,实现的效果就是按下键盘控制台输出你按下的键.比如:按下A控制台就输出A 效果如图: 以下把实现的效果分为几个步骤: 1.新建一个窗体类继承窗体: 2.给这个窗体 ...
- 九道大型软件公司.net面试题!一定得看(附答案)
1:a=10,b=15,在不用第三方变量的前提下,把a,b的值互换 2:已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组 3:请简述面向 ...
- Wireshark入门与进阶---数据包捕获与保存的最基本流程
Wireshark入门与进阶系列(一) "君子生非异也.善假于物也"---荀子 本文由CSDN-蚍蜉撼青松 [主页:http://blog.csdn.net/howeverpf]原 ...
- 重复数据删除(De-duplication)技术研究(SourceForge上发布dedup util)
dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户存储空间.目前已经在Sourceforge上创建项目,并且源码正在不断更新中.该工具生成 ...
- 积累的VC编程小技巧之图标、光标及位图
1.图标透明 (1).Windows中的图标其实是有两个图像组成的,其中一个用于与它要显示的位置的图像做“AND”操作,另一个作“XOR”操作. 透明:用“白色”AND,用“黑色”XOR 反色:用“白 ...
- find查找大于1M小于10M的文件 $ find . -size +1M -size -10M
查找大于1M小于10M的文件$ find . -size +1M -size -10M
- [C#基础] 继承
虚方法和覆写方法 虚方法可以使基类的引用访问"升至"派生类中 可以使用基类引用调用派生类的方法,只需满足下面的条件 派生类的方法和基类的方法有相同的签名和返回类型 基类的方法使用v ...
- java反射机制 + Method.invoke解释 getMethod + 反射理解
功能: 通过读取另一个Dll去创建一个控件(Form,Button,TextBox,DataGridView),然后对当中一些属性进行检查. 创建控件的大致流程是,Assembly->Modul ...