Hadoop IO

 1.数据在存储和传输过程中出现数据的不完整性,数据传输量越大出错的概论就越高。

2.通过校验的方法可以知道数据是不完整的。

3.检测的思路是通过校验和,在传输之前计算一个校验和传输之后再计算一个校验和,两个校验和进行比较,如果不同的话就说明数据错误。

4.常见的检测手段:CRC(循环冗余校验):常见的CRC32————他会根据32位(4个字节)来计算校验和。还有一中方式就是数据库检测程序

 5.HDFS在数据读 写 存储的时候会出现数据的不完整,在数据在客户端写入的时候计算一个校验和,在往第一个datanode传输的时候在存数据的过程中也会把校验和一快存在节点上,然后再往第二个第三datanode传输,在第三个datanode的时候再计算一个校验和,如果这个校验和和之前的对比一样的话就说明数据是完整的

6.校验和损坏的几率很小,因为校验和占整个数据的比重非常小,一般用比较好的硬件来存储。

7.数据损坏了一般通过副本来恢复。

8.因为开启了校验和功能的时候,当发现数据损坏的时候会把数据干掉,如果说数据是非常重要的数据,损坏的只是其中一部分,可以从里边恢复一些数据,在这种情况我们可以考虑禁用校验和功能。

9.校验和一般放在你的文件同目录下的一个隐藏文件  .filename.crc

 

 

 

 

RPC 远程过程调用

 

Hadoop源码编译并配置Snappy压缩

在root用户下在线下载:

yum -y install gcc-c++


 安装maven
上传解压

环境变量

查看是否安装成功

mvn –v


下载并解压protobuf-2.5.0.tar.gz

tar -zxvf protobuf-2.5.0.tar.gz
mv protobuf-2.5.0 protobuf
cd protobuf
./configure --prefix=/usr/local/protobuf
make
make check
make install


配置环境变量
 

查看是否安装成功


protoc --version




安装cmake

 yum -y install cmake

zlib安装

yum -y install zlib

openssl devel

yum -y install openssl-devel



下载并解压snappy-1.1.3.tar.gz

tar -zxvf snappy-1.1.3.tar.gz
mv snappy-1.1.3 snappy
cd snappy
./configure
make
make install


下载并解压hadoop-2.6.0-src.tar.gz,然后进入hadoop-2.6.0-src目录编码Hadoop源码和Snappy压缩。
///usr/local/lib是Snappy默认安装目录
1、执行mvn package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib
然后一直等待,直到hadoop源码编译成功,
2.进入到这个目录下解压hadoop-2.6.0.tar.gz 
 3.进入目录会发现多了一些和snappy有关的文件。

 4.输入命令cp ./native/* /home/hadoop/app/hadoop-2.6.0/lib/native/  把该native目录下的文件copy到原hadoop安装目录下的native目录里,简单的说就是替换原来的native。

对比替换前后

 5、最后输入命令hadoop checknative -a检查本地库是否安装成功

 

 

Hadoop 配置Snappy压缩

 

添加以下

 

添加以下

添加以下
 
原文地址:https://www.cnblogs.com/braveym/p/7599725.html