HDFS开LZO on redhat/el4/en/x86_64/

su root
wget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el4/en/x86_64/dag/RPMS/lzo-2.04-1.el4.rf.x86_64.rpm
wget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el4/en/x86_64/dag/RPMS/lzo-devel-2.04-1.el4.rf.x86_64.rpm
rpm -ivh lzo-2.04-1.el4.rf.x86_64.rpm
rpm -ivh lzo-devel-2.04-1.el4.rf.x86_64.rpm
exit

cd ~
wget http://labs.renren.com/apache-mirror//ant/binaries/apache-ant-1.8.2-bin.tar.gz
tar zxvf apache-ant-1.8.2-bin.tar.gz
export JAVA_HOME=~/jdk1.6.0_24/
export PATH=$JAVA_HOME/bin:$PATH
export ANT_HOME=~/apache-ant-1.8.2/
export PATH=$ANT_HOME/bin:$PATH

wget http://hadoop-gpl-compression.apache-extras.org.codespot.com/files/hadoop-gpl-compression-0.1.0-rc0.tar.gz
tar -zxvf hadoop-gpl-compression-0.1.0-rc0.tar.gz
cd hadoop-gpl-compression-0.1.0
cp ~/hadoop-0.20.2-cdh3u0/hadoop-core-0.20.2-cdh3u0.jar lib/
vi src/java/com/hadoop/compression/lzo/LzoCompressor.java

此处添加:
public void reinit(org.apache.hadoop.conf.Configuration conf) {
     // do nothing
    }   

su root
ant compile-native tar

chmod -R 777 *
cp build/hadoop-gpl-compression-0.1.0-dev.jar ~/hadoop-0.20.2-cdh3u0/lib/
cp build/hadoop-gpl-compression-0.1.0-dev.jar ~/hbase-0.90.4/lib/
rsync -auPv lib/native ~/hadoop-0.20.2-cdh3u0/lib/
rsync -auPv lib/native ~/hbase-0.90.4/lib/
vi ~/hadoop-0.20.2-cdh3u0/conf/core-site.xml

此处添加:
<property>
    <name>io.compression.codecs</name>
    <value>com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value>
</property>
<property>
    <name>io.compression.codec.lzo.class</name>
    <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

在Hadoop分布式文件系统(HDFS)删除超过三个月未使用的文件,需要结合Shell脚本以及Hadoop的相关命令。由于HDFS本身并不提供直接的日期检查和删除功能,我们需要借助外部工具如`find`或Hadoop的`hadoop fs -ls`命令获取文件修改时间,然后基于这个时间戳判断是否过期。这里是一个基本的步骤: 1. **安装必要的工具** (如果尚未安装): 如果你的Hadoop集群上没有预装`find`命令,你需要确认它已经安装或通过Hadoop的工具包安装。 2. **设置环境变量**: - 首先,你需要确保你的脚本有权限访问HDFS。这通常意味着你正在运行的用户应该具有`hadoop`用户组的权限。 - 然后,设置`HADOOP_HOME`环境变量指向Hadoop的安装目录,例如: ``` export HADOOP_HOME=/path/to/hadoop ``` 3. **编写shell脚本**: 使用`find`命令查找并列出指定路径下超过三个月未修改的文件。这里的示例假设一天是86400秒(即24小时 * 60分钟 * 60秒): ```bash #!/bin/bash hdfs_save_path="hdfs://xxx/bak/" three_months_ago=$(( $(date +%s) - 3*30*86400 )) # 3个月前的时间戳 find "$hdfs_save_path" -type f -mtime +90 -exec hadoop fs -rm {} \; ``` 这里 `-mtime +90` 表示查找修改时间超过90天(约等于3个月)的文件。 4. **运行脚本**: 保存脚本文件(例如`delete_old_files.sh`),赋予执行权限 (`chmod +x delete_old_files.sh`),然后执行: ``` ./delete_old_files.sh ``` 5. **确认结果**: 查看HDFS的日志文件(比如`logs/hadoop-hdfs/master.out`)以确认操作是否成功,或者检查`hdfs_save_path`下的文件是否有变化。 **注意事项**: - 请谨慎操作,因为`hadoop fs -rm`是不可逆的,并且可能会永久删除数据。 - 如果HDFS的配置不允许直接删除文件,可能需要额外的权限或配置调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值