文章目录
一.HDFS存储多目录
1.适用场景:若HDFS存储空间紧张,需要对DataNode进行磁盘扩展
2.操作流程:
-
1)在DataNode节点增加磁盘并进行挂载:
- df 查看系统整体磁盘使用情况:
- 参考:Linux磁盘分区与挂载
- df 查看系统整体磁盘使用情况:
-
2)在Hadoop的
hdfs-site.xml
文件中配置多目录<property> <name>dfs.datanode.data.dir</name> <value>file:///${hadoop.tmp.dir}/dfs/data1,file:///hd2/dfs/data2,file:///hd3/dfs/data3,file:///hd4/dfs/data4</value> </property>
-
3)开启数据均衡
增加磁盘后,保证每个目录数据均衡:开启数据均衡命令:
bin/start-balancer.sh -threshold 10
参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过10%,可根据实际情况进行调整。
-
4)停止数据均衡命令:
bin/stop-balancer.sh
二.Hadoop支持LZO压缩配置
hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件。hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下:
1.hadoop-lzo编译
0.环境准备
- maven(下载安装,配置环境变量,修改sitting.xml加阿里云镜像)
- 安装:
- gcc-c++
- zlib-devel
- autoconf
- automake
- libtool
通过yum安装即可:
yum -y install gcc-c++ lzo-devel zlib-devel autoconf automake libtool
1.下载、安装并编译LZO
yum install -y wget
# 网络下载一个文件并保存在当前目录
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
tar -zxvf lzo-2.10.tar.gz
cd lzo-2.10
#不懂
./configure -prefix=/usr/local/hadoop/lzo/
#不懂
make
make install
2.编译hadoop-lzo源码
1)下载hadoop-lzo的源码:
- 下载地址:https://github.com/twitter/hadoop-lzo/archive/master.zip
2)解压之后,修改pom.xml
<hadoop.current.version>3.1.3</hadoop.current.version>
3)声明两个临时环境变量
export C_INCLUDE_PATH=/usr/local/hadoop/lzo/include
export LIBRARY_PATH=/usr/local/hadoop/lzo/lib
4)编译
#进入hadoop-lzo-master,执行maven编译命令
mvn package -Dmaven.test.skip