导航:首页 > 文件处理 > hadoopgzip压缩

hadoopgzip压缩

发布时间:2022-11-15 06:46:14

① Hadoop集群上使用Lzo压缩和Gzip压缩,谁能给我写一个简单的MapRece来测试,对比两者压缩job时间

Hadoop的书我只看了一章。。

② hadoop sequencefile 怎么使用

1.SequenceFile特点:是 Hadoop 的一个重要数据文件类型,它提供key-value的存储,但与传统key-value存储(比如hash表,btree)不同的是,它是appendonly的,于是你不能对已存在的key进行写操作。

2.SequenceFile 有三种压缩态:
1 Uncompressed – 未进行压缩的状
2.record compressed - 对每一条记录的value值进行了压缩(文件头中包含上使用哪种压缩算法的信息)
3. block compressed – 当数据量达到一定大小后,将停止写入进行整体压缩,整体压缩的方法是把所有的keylength,key,vlength,value 分别合在一起进行整体压缩
3.结构组成:
3.1 header数据:保存文件的压缩态标识;
3.2 Metadata数据:简单的属性/值对,标识文件的一些其他信息。Metadata 在文件创建时就写好了,所以也是不能更改
3.3 追加的键值对数据
3.4 流存储结构:流的存储头字节格式:
Header: *字节头”SEQ”, 后跟一个字节表示版本”SEQ4”,”SEQ6”.//这里有点忘了 不记得是怎么处理的了,回头补上做详细解释
*keyClass name
*valueClass name
*compression boolean型的存储标示压缩值是否转变为keys/values值了
*blockcompression boolean型的存储标示是否全压缩的方式转变为keys/values值了
*compressor 压缩处理的类型,比如我用Gzip压缩的Hadoop提供的是GzipCodec什么的..
*元数据 这个大家可看可不看的

4.扩展实现:
4.1 MapFile 一个key-value 对应的查找数据结构,由数据文件/data 和索引文件 /index 组成,数据文件中包含所有需要存储的key-value对,按key的顺序排列。索引文件包含一部分key值,用以指向数据文件的关键位置
4.2 SetFile – 基于 MapFile 实现的,他只有key,value为不可变的数据。
4.3 ArrayFile – 也是基于 MapFile 实现,他就像我们使用的数组一样,key值为序列化的数字。
4.4 BloomMapFile – 他在 MapFile 的基础上增加了一个 /bloom 文件,包含的是二进制的过滤表,在每一次写操作完成时,会更新这个过滤表。

5.使用如下:主要是Writer和Reader对象完成文件的添加和读功能,应用demo参照下面链接,其中Map端以SequenceFileInputFormat格式接收,Map的key-value应为SequenceFile保持一致。

③ Linux命令中,请问下tar -vxzf hadoop-2.7.0.tar.gz是什么意思尤其是-vxzf

v
:
显示动作,即解压任何文件时均显示其文件名及相对路径
x
:
解压缩
z
:
表名该压缩文件是以gzip格式压缩的
f
:
该参数后面跟着被解压的文件名
注:在Linux中解压tar.gz包可以不加z参数,tar命令会自动识别其支持的任何
压缩格式
,即该命令也可写成如下形式
tar
-vxf
hadoop-2.7.0.tar.gz

④ 如何检测hadoop中gz压缩文件是否损坏

执行hive任务的时候,进入到8088的map详细进度列表,即是RUNNING MAP attempts in job_1456816082333_1354,查看最后出错的map是哪个节点或者在页面直接点击logs进入详细log日志查看,或者进入到节点的Hadoop的logs/userlogs目录
根据jobid找到对应的目录: application_1456816082333_1354,里面有错误的文件id,然后删除掉hdfs的对应的损坏文件。

⑤ 我在解压hadoop压缩包的时候遇到这问题怎么办

I would go back and re-gzip the tar file though (to save space):
gzip xxxxxx.x.x.tar
tar -zxvf xxxxxx.x.x.tar.gz
想刨根问底的可以查下他的意思,在看下TAR 指令的用法,。
总之:我出现这个错误时,就是把指令改为:
tar -xvf xxxx.tar.gz
然后指令就运行了。。

⑥ 如何在Scala中读取Hadoop集群上的gz压缩文件

(1)一个从文件创建的Scala对象,或(2)一个并行切片(分布在各个节点之间),或(3)从其他RDD转换得来,或(4)改变已有RDD的持久性,如请求将已有RDD缓存在内存中。Spark应用称为driver,实现单个节点或一组节点上的操作。

⑦ 如何安装hadoop本地压缩库

Hadoop安装配置snappy压缩

[一]、 实验环境

CentOS 6.3 64位

Hadoop 2.6.0

JDK 1.7.0_75

[二]、 snappy编译安装

2.1、下载源码

到官网 http://code.google.com/p/snappy/ 或者到 https://github.com/google/snappy
下载源码,目前版本为 1.1.1。

2.2、编译安装

解压 tar -zxvf snappy-1.1.1.tar.gz ,然后以 root 用户 执行标准的三步进行编译安装:

/configure

make

make install

默认是安装到 /usr/local/lib ,这时在此目录下查看:

[hadoop@micmiu ~]$ ls -lh /usr/local/lib |grep snappy

-rw-r--r-- 1 root root 229K Mar 10 11:28 libsnappy.a

-rwxr-xr-x 1 root root 953 Mar 10 11:28 libsnappy.la

lrwxrwxrwx 1 root root 18 Mar 10 11:28 libsnappy.so ->
libsnappy.so.1.2.0

lrwxrwxrwx 1 root root 18 Mar 10 11:28 libsnappy.so.1 ->
libsnappy.so.1.2.0

-rwxr-xr-x 1 root root 145K Mar 10 11:28 libsnappy.so.1.2.0

安装过程没有错误同时能看到上面的动态库,基本表示snappy 安装编译成功。

[三]、Hadoop snappy 安装配置

3.1、hadoop 动态库重新编译支持snappy

hadoop动态库编译参考:Hadoop2.2.0源码编译 和 Hadoop2.x在Ubuntu系统中编译源码 ,只是把最后编译的命令中增加
-Drequire.snappy :

1mvn package -Pdist,native -DskipTests -Dtar -Drequire.snappy

把重新编译生成的hadoop动态库替换原来的。

3.2、hadoop-snappy 下载

目前官网没有软件包提供,只能借助 svn 下载源码:

1svn checkout http://hadoop-snappy.googlecode.com/svn/trunk/
hadoop-snappy

3.3、hadoop-snappy 编译

1mvn package [-Dsnappy.prefix=SNAPPY_INSTALLATION_DIR]

PS:如果上面 snappy安装路径是默认的话,即 /usr/local/lib,则此处
[-Dsnappy.prefix=SNAPPY_INSTALLATION_DIR] 可以省略,或者
-Dsnappy.prefix=/usr/local/lib

编译成功后,把编译后target下的 hadoop-snappy-0.0.1-SNAPSHOT.jar 复制到 $HADOOP_HOME/lib
,同时把编译生成后的动态库 到 $HADOOP_HOME/lib/native/ 目录下:

1cp -r
$HADOOP-SNAPPY_CODE_HOME/target/hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64
$HADOOP_HOME/lib/native/

3.4、编译过程中常见错误处理

① 缺少一些第三方依赖

官方文档中提到编译前提需要:gcc c++, autoconf, automake, libtool, java 6, JAVA_HOME set,
Maven 3

②错误信息:

[exec] libtool: link: gcc -shared
src/org/apache/hadoop/io/compress/snappy/.libs/SnappyCompressor.o
src/org/apache/hadoop/io/compress/snappy/.libs/SnappyDecompressor.o
-L/usr/local/lib -ljvm -ldl -m64 -Wl,-soname -Wl,libhadoopsnappy.so.0 -o
.libs/libhadoopsnappy.so.0.0.1

[exec] /usr/bin/ld: cannot find -ljvm

[exec] collect2: ld returned 1 exit status

[exec] make: *** [libhadoopsnappy.la] Error 1

或者

[exec] /bin/sh ./libtool --tag=CC --mode=link gcc -g -Wall -fPIC -O2 -m64
-g -O2 -version-info 0:1:0 -L/usr/local/lib -o libhadoopsna/usr/bin/ld: cannot
find -ljvm

[exec] collect2: ld returned 1 exit status

[exec] make: *** [libhadoopsnappy.la] Error 1

[exec] ppy.la -rpath /usr/local/lib
src/org/apache/hadoop/io/compress/snappy/SnappyCompressor.lo
src/org/apache/hadoop/io/compress/snappy/SnappyDecompressor.lo -ljvm -ldl

[exec] libtool: link: gcc -shared
src/org/apache/hadoop/io/compress/snappy/.libs/SnappyCompressor.o
src/org/apache/hadoop/io/compress/snappy/.libs/SnappyDecompressor.o
-L/usr/local/lib -ljvm -ldl -m64 -Wl,-soname -Wl,libhadoopsnappy.so.0 -o
.libs/libhadoopsnappy.so.0.0.1

[ant] Exiting
/home/hadoop/codes/hadoop-snappy/maven/build-compilenative.xml.

这个错误是因为没有把安装jvm的libjvm.so 链接到
/usr/local/lib。如果你的系统时amd64,可以执行如下命令解决这个问题:

1ln -s /usr/java/jdk1.7.0_75/jre/lib/amd64/server/libjvm.so
/usr/local/lib/

[四]、hadoop配置修改

4.1、修改 $HADOOP_HOME/etc/hadoop/hadoop-env.sh,添加:

1export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/

4.2、修改 $HADOOP_HOME/etc/hadoop/core-site.xml:

XHTML

io.compression.codecs

org.apache.hadoop.io.compress.GzipCodec,

org.apache.hadoop.io.compress.DefaultCodec,

org.apache.hadoop.io.compress.BZip2Codec,

org.apache.hadoop.io.compress.SnappyCodec

4.3、修改 $HADOOP_HOME/etc/hadoop/mapred-site.xml 中有关压缩属性,测试snappy:

XHTML

maprece.map.output.compress

true

maprece.map.output.compress.codec

org.apache.hadoop.io.compress.SnappyCodec[五]、测试验证

全部配置好后(集群中所有的节点都需要动态库和修改配置),重启hadoop集群环境,运行自带的测试实例
wordcount,如果maprece过程中没有错误信息即表示snappy压缩安装方法配置成功。

当然hadoop也提供了本地库的测试方法 hadoop checknative :

[hadoop@micmiu ~]$ hadoop checknative

15/03/17 22:57:59 INFO bzip2.Bzip2Factory: Successfully loaded &
initialized native-bzip2 library system-native

15/03/17 22:57:59 INFO zlib.ZlibFactory: Successfully loaded &
initialized native-zlib library

Native library checking:

hadoop: true
/usr/local/share/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0

zlib: true /lib64/libz.so.1

snappy: true
/usr/local/share/hadoop/lib/native/Linux-amd64-64/libsnappy.so.1

lz4: true revision:99

bzip2: true /lib64/libbz2.so.1

openssl: true /usr/lib64/libcrypto.so

⑧ 怎样配置hadoop的core-site.xml使能运行hadoop fs

namevalue description fs.default.namehdfs://hadoopmaster:9000定义hadoopmaster的uri和端口 fs.checkpoint.dir/opt/data/hadoop1/hdfs/namesecondary1定义hadoop的name备份的路径,官方文档说是读取这个,写入dfs.name.dir fs.checkpoint.period1800定义name备份的备份间隔时间,秒为单位,只对snn生效,默认一小时 fs.checkpoint.size33554432以日志大小间隔做备份间隔,只对snn生效,默认64m io.compression.codecs
org.apache.hadoop.io.compress.defaultcodec,
com.hadoop.compression.lzo.lzocodec,
com.hadoop.compression.lzo.lzopcodec,
org.apache.hadoop.io.compress.gzipcodec,
org.apache.hadoop.io.compress.bzip2codec
(排版调整,实际配置不要回车)
hadoop所使用的编解码器,gzip和bzip2为自带,lzo需安装hadoopgpl或者kevinweil,逗号分隔,snappy也需要单独安装 io.compression.codec.lzo.classcom.hadoop.compression.lzo.lzocodeclzo所使用的压缩编码器 topology.script.file.name/hadoop/bin/rackaware.py机架感知脚本位置 topology.script.number.args1000机架感知脚本管理的主机数,ip地址 fs.trash.interval10800hdfs垃圾箱设置,可以恢复误删除,分钟数,0为禁用,添加该项无需重启hadoop hadoop.http.filter.initializers
org.apache.hadoop.security.

(排版调整,实际配置不要回车)
需要jobtracker,tasktracker
namenode,datanode等http访问端口用户验证使用,需配置所有节点
hadoop.http.authentication.typesimple | kerberos | #authentication_handler_classname#验证方式,默认为简单,也可自己定义class,需配置所有节点 hadoop.http.authentication.
token.validity
(排版调整,实际配置不要回车)36000验证令牌的有效时间,需配置所有节点 hadoop.http.authentication.
signature.secret
(排版调整,实际配置不要回车)默认可不写参数默认不写在hadoop启动时自动生成私密签名,需配置所有节点 hadoop.http.authentication.cookie.domaindomian.tldhttp验证所使用的cookie的域名,ip地址访问则该项无效,必须给
此文来自: 马开东博客 转载请注明出处 网址:http://www.makaidong.com
所有节点都配置域名才可以。 hadoop.http.authentication.
simple.anonymous.allowed
(排版调整,实际配置不要回车)true | false简单验证专用,默认允许匿名访问,true
hadoop.http.authentication.
kerberos.principal
(排版调整,实际配置不要回车)
http/localhost@$localhostkerberos验证专用,参加认证的实体机必须使用http作为k的name hadoop.http.authentication.
kerberos.keytab
(排版调整,实际配置不要回车)/home/xianglei/hadoop.keytabkerberos验证专用,密钥文件存放位置 hadoop.security.authorizationtrue|falsehadoop服务层级验证安全验证,需配合hadoop-policy.xml使用,配置好以后用dfsadmin,mradmin -refreshserviceacl刷新生效 io.file.buffer.size131072用作序列化文件处理时读写buffer的大小 hadoop.security.authenticationsimple | kerberoshadoop本身的权限验证,非http访问,simple或者kerberos hadoop.logfile.size1000000000设置日志文件大小,超过则滚动新日志 hadoop.logfile.count20最大日志数 io.bytes.per.checksum1024每校验码所校验的字节数,不要大于io.file.buffer.size io.skip.checksum.errorstrue | false处理序列化文件时跳过校验码错误,不抛异常。默认false io.serializations
org.apache.hadoop.io.
serializer.writableserialization
(排版需要。实际配置不要回车)
序列化的编解码器 io.seqfile.compress.blocksize1024000块压缩的序列化文件的最小块大小,字节 webinterface.private.actionstrue | false设为true,则jt和nn的tracker网页会出现杀任务删文件等操作连接,默认是false

⑨ hadoop文件格式和压缩

Hadoop中的文件格式大致上分为面向行和面向列两类:

面向行:TextFile、SequenceFile、MapFile、Avro Datafile

二进制格式文件大小比文本文件大。

生产环境常用,作为原始表的存储格式,会占用更多磁盘资源,对它的 解析开销一般会比二进制格式高 几十倍以上。

Hadoop API 提供的一种二进制文件,它将数据以<key,value>的形式序列化到文件中。这种二进制文件内部使用Hadoop 的标准的Writable 接口实现序列化和反序列化。它与Hadoop API中的MapFile 是互相兼容的。

MapFile即为排序后的SequeneceFile,它会额外生成一个索引文件提供按键的查找。文件不支持复写操作,不能向已存在的SequenceFile(MapFile)追加存储记录,在执行文件写操作的时候,该文件是不可读取的。

Avro是一种用于支持数据密集型的二进制文件格式。它的文件格式更为紧凑,若要读取大量数据时,Avro能够提供更好的序列化和反序列化性能。并且Avro数据文件天生是带Schema定义的,所以它不需要开发者在API 级别实现自己的Writable对象。最近多个Hadoop 子项目都支持Avro 数据格式,如Pig 、Hive、Flume、Sqoop和Hcatalog。

面向列:Parquet 、RCFile、ORCFile

RCFile是Hive推出的一种专门面向列的数据格式。 它遵循“先按列划分,再垂直划分”的设计理念。当查询过程中,针对它并不关心的列时,它会在IO上跳过这些列。

ORCFile (Optimized Record Columnar File)提供了一种比RCFile更加高效的文件格式。其内部将数据划分为默认大小为250M的Stripe。每个Stripe包括索引、数据和Footer。索引存储每一列的最大最小值,以及列中每一行的位置。

Parquet 是一种支持嵌套结构的列式存储格式。Parquet 的存储模型主要由行组(Row Group)、列块(Column Chuck)、页(Page)组成。

1、行组,Row Group:Parquet 在水平方向上将数据划分为行组,默认行组大小与 HDFS Block 块大小对齐,Parquet 保证一个行组会被一个 Mapper 处理。

2、列块,Column Chunk:行组中每一列保存在一个列块中,一个列块具有相同的数据类型,不同的列块可以使用不同的压缩。

3、页,Page:Parquet 是页存储方式,每一个列块包含多个页,一个页是最小的编码的单位,同一列块的不同页可以使用不同的编码方式。

一般原始表数据使用文本格式存储,其他的都是列式存储。

目前在Hadoop中常用的几种压缩格式:lzo,gzip,snappy,bzip2,主要特性对比如下:

其性能对比如下:

2.1 lzo

hadoop中最流行的压缩格式,压缩/解压速度也比较快,合理的压缩率,支持split。适用于较大文本的处理。

对于lzo压缩,常用的有LzoCodec和lzopCodec,可以对sequenceFile和TextFile进行压缩。对TextFile压缩后,mapred对压缩后的文件默认是不能够进行split操作,需要对该lzo压缩文件进行index操作,生成lzo.index文件,map操作才可以进行split。如果设置LzoCodec,那么就生成.lzo后缀的文件,可以用LzoIndexer 进行支持split的index计算,如果设置LzopCodec,那么生成.lzo_deflate后缀的文件,不支持建立index。

⑩ Linux命令中,请问下tar -vxzf hadoop-2.7.0.tar.gz是什么意思尤其是-vxzf

v : 显示动作,即解压任何文件时均显示其文件名及相对路径
x : 解压缩
z : 表名该压缩文件是以gzip格式压缩的
f : 该参数后面跟着被解压的文件名

注:在Linux中解压tar.gz包可以不加z参数,tar命令会自动识别其支持的任何压缩格式,即该命令也可写成如下形式
tar -vxf hadoop-2.7.0.tar.gz

阅读全文

与hadoopgzip压缩相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:672
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:486
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:382
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:779
im4java压缩图片 浏览:362
数据查询网站源码 浏览:151
伊克塞尔文档怎么进行加密 浏览:893
app转账是什么 浏览:163