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数据块是对输入数据的物理划分。当它们一致时,效率很高。但在实际中从未达到全然一致,记录可能会跨过数据块的边界,处理特定分片的计算节点会从一个数据块中获取记录的一个片段

时间: 2024-08-01 17:03:32

hadoop学习;大数据集在HDFS中存为单个文件;安装linux下eclipse出错解决;查看.class文件插件的相关文章

SQL安装过程中“针对SQL Server 注册表的一致性验证“出错解决方式

1.打开注册表,查找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0804],分别打开Counter 和Help 2.打开Counter,把滚动条拉倒最后,然后记下最大的那个值(不同计算机不一样的),记下后关闭窗口 3.同样的打开Help,滚动到最后记最大的那个值(你们的值不一定跟我一样的哦!!!),记下后关闭窗口 4,再重新定位到Perflib的节点上, 5.双击Last Counter然后在

linux下开发,解决cocos2d-x中编译出现的一个小问题, undefined reference to symbol &amp;#39;[email&#160;protected]@GLIBC_2.2.5&amp;#39;

解决cocos2d-x中编译出现的一个小问题 对于cocos2d-x 2.×中编译中,若头文件里引入了#include "cocos-ext.h",在进行C++编译的时候会遇到例如以下错误: undefined reference to symbol '[email protected]@GLIBC_2.2.5'/lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command li

11.6 MariaDB安装;11.7 Apache安装(上)11.8 Apache安装(中)11.9 Apache安装(下)

11.6 MariaDB安装 1. 进入下载安装包目录: [[email protected] ~]# cd /usr/local/src 2. 下载mariadb安装包: [[email protected] src]# wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz 3. 解包

Hadoop 学习总结之一:HDFS简介

一.HDFS的基本概念 1.1.数据块(block) HDFS(Hadoop Distributed File System)默认的最基本的存储单位是64M的数据块. 和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的. 不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间. 1.2.元数据节点(Namenode)和数据节点(datanode) 元数据节点用来管理文件系统的命名空间 其将所有的文件和文件夹的元数据保存在一个文件系统

Hadoop学习之路(2)Hdfs分布式文件系统

@[TOC] 1.Hadoop架构 Hadoop由三个模块组成:分布式存储HDFS.分布式计算MapReduce.资源调度引擎Yarn 2.HDFS体系架构 2.1NameNode    NameNode负责:文件元数据信息的操作以及处理客户端的请求   NameNode管理:HDFS文件系统的命名空间NameSpace.   NameNode维护:文件系统树(FileSystem)以及文件树中所有的文件和文件夹的元数据信息(matedata)维护文件到块的对应关系和块到节点的对应关系   Na

ORACLE 11G中PLSQL中文显示乱码、Linux下sqlplus查询中文乱码

问题描述: 本地是win7操作系统,cmd里面sqlplus进去连接oracle数据库,中文可以正常显示,但是plsql连接oracle数据库,中文显示乱码,还有xshell远程连接oracle服务器登录进去使用sqlplus登录也显示中文乱码. 1.检查windows7下面cmd里面sqlplus中oracle server端的字符集. 打开cmd,用sqlplus登录,输入下面SQL查询服务端的字符集. SQL> select userenv('language') fromdual; US

Hadoop学习笔记—10.Reduce阶段中的Shuffle过程

一.回顾Reduce阶段三大步凑 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步凑,其中在Reduce阶段总共三个步凑,如下图所示: 其中,Step2.1就是一个Shuffle操作,它针对多个map任务的输出按照不同的分区(Partition)通过网络复制到不同的reduce任务节点上,这个过程就称作为Shuffle. PS:Hadoop的shuffle过程就是从map端输出到reduce端输入之间的过程,这一段应该是Hadoop中最核心的部分,因为涉及到Had

Hadoop学习第二次:HDFS的应用场景 部署 原理与基本框架

1.HDFS的定义与特色 以文件为基本存储单位的劣势:难以实现负载均衡——文件大小不同,负载均衡难实现:用户自己控制文件大小: 难以实现并行化处理——只能利用一个节点资源处理一个文件,无法动用集群资源: HDFS的定义:易于扩展的分布式文件系统:运行在大量廉价机器上,提供容错机制:为大量用户提供性能不错的文件存储服务: 优点:高容错性(数据自动保存多个副本,副本丢失后自动恢复)  适合批处理(移动计算而不是数据,数据位置暴露给计算框架) 适合大数据的处理 流式文件访问 可构建在廉价的机器上 不擅

Hadoop学习1--解决启动过程中的问题

http://www.cnblogs.com/kinglau/p/3270160.html $ bin/start-all.sh-bash: bin/start-all.sh: No such file or directory 解决历程: 1.一堆人说是没权限,把当前登陆用户对Hadoop文件夹的权限,设置为完全控制. 结果:不起作用