Centos7下编译CDH版本hadoop源码支持Snappy压缩

时间:2023-03-08 22:12:05
Centos7下编译CDH版本hadoop源码支持Snappy压缩

1 下载snappy包并编译

wget https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz

tar xvfz snappy-1.1.3.tar.gz

cd snappy-1.1.3/

./configure
 make
sudo make install
ls -lh /usr/local/lib |grep snappy

2 编译hadoop源码

 cd hadoop-2.6.0-cdh5.7.0

mvn package -DskipTests -Pdist,native,docs -Dtar

异常

    第一个异常 jdk版本不对  修改编译版本为jdk1.7

    第二个异常 ssl远程连接关闭  SSLHandshakeException: Received fatal alert: handshake_failure 

      修改环境变量 增加maven参数 export MAVEN_OPTS='-Dhttps.protocols=TLSv1.2'

      [root@hdp1 /mnt/software/hadoop-2.6.0-cdh5.7.0]#source /etc/profile 

3 之后编译成功

    Centos7下编译CDH版本hadoop源码支持Snappy压缩

4 重新解压编译好的hadoop tar包 部署

[root@hdp1 /mnt/software/hadoop-2.6.0-cdh5.7.0/hadoop-dist/target]#pwd

/mnt/software/hadoop-2.6.0-cdh5.7.0/hadoop-dist/target

Centos7下编译CDH版本hadoop源码支持Snappy压缩

cp hadoop-2.6.0-cdh5.7.0.tar.gz /mnt/software/

tar -zvxf hadoop-2.6.0-cdh5.7.0.tar.gz

5 检查snappy压缩支持

Centos7下编译CDH版本hadoop源码支持Snappy压缩

成功支持

6 重新格式化集群

  删除之前的hdfs文件目录 然后 重新格式化 遇到点问题 openssl文件缺失

Centos7下编译CDH版本hadoop源码支持Snappy压缩

拷贝 hdp1下面的libcrypto.so文件 到 hdp2 hdp3 hdp4 解决问题

Centos7下编译CDH版本hadoop源码支持Snappy压缩

Centos7下编译CDH版本hadoop源码支持Snappy压缩

7 最后自己用之前的Sqoop导出mysql数据到hdfs启用snappy压缩 验证

sqoop import --connect jdbc:mysql://hdp1:3306/company --username root --password yourpasswd --target-dir /temp --delete-target-dir --num-mappers 1 --fields-terminated-by "\t" --query 'select name,sex from staff where id <=1 and $CONDITIONS;' --compression-codec org.apache.hadoop.io.compress.SnappyCodec;

Centos7下编译CDH版本hadoop源码支持Snappy压缩

去hdfs查询结果 发现成功保存为snappy格式