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 之后编译成功
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
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压缩支持
成功支持
6 重新格式化集群
删除之前的hdfs文件目录 然后 重新格式化 遇到点问题 openssl文件缺失
拷贝 hdp1下面的libcrypto.so文件 到 hdp2 hdp3 hdp4 解决问题
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;
去hdfs查询结果 发现成功保存为snappy格式
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)