一、安装
操作系统版本:centos7.3
节点部署情况
主机 | 角色 | 数据磁盘 |
---|---|---|
Hadoop1 | master | |
Hadoop2 | matelogger、chunkserver | /dev/sdb,/dev/sdc |
hadoop3 | client |
安装方式一:yum安装
1、add key
# curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
2、添加数据仓库
# curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
3、安装master等相关服务
# yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli
4、安装chunk servers
# yum install moosefs-chunkserver
5、安装metalogger服务
# yum install moosefs-metalogger
6、安装client
# yum install moosefs-client
安装方式2:tar安装
下载地址:
官网最新的支持版本是3.x,所以最好安装3.x版本
1、解压
这里使用普通用户hduser操作
$ tar zxvf moosefs-3.0.115-1.tar.gz -C /data1/hadoop
2、安装
- master安装
$ cd /data1/hadoop/moosefs
$ ./configure --prefix=/usr/local/mfs --with-default-user=hduser --with-default-group=hduser --disable-mfschunkserver --disable-mfsmount
安装报如下错误:
configure: error: zlib development library not found
$ sudo yum install -y zlib-devel
然后重新执行上述安装命令
安装完成可以看到哪些依赖被安装
- matelogger 安装
$ sudo yum install -y zlib-devel && sudo ./configure --prefix=/usr/local/mfs --with-default-user=hduser --with-default-group=hduser --disable-mfschunkserver --disable-mfsmount && make && make install
如果metalogger与chunkserver安装在一台机器,那么可以去掉上诉的--disable-mfschunkserver选项
- chunkservers安装
$ sudo yum install -y zlib-devel && sudo ./configure --prefix=/usr/local/mfs --with-default-user=hduser --with-default-group=hduser --disable-mfsmaster --disable-mfsmount --disable-mfscgi --disable-mfscgiserv && make && make install
出现如下错误:这个错误是在执行make的时候出现的
解决:
$ sudo yum install autoconfig automake libtool -y
$ sudo autoreconf -ivf
- 安装client
$ sudo yum install -y zlib-devel && sudo ./configure --prefix=/usr/local/mfs --with-default-user=hduser --with-default-group=hduser --disable-mfsmaster --disable-mfschunkserver --disable-mfscgi --disable-mfscgiserv && make && make install
client 需要fuse的支持,所以在客户端需要安装fuse
$ sudo yum install fuse-devel -y
tar安装方式借鉴:
安装方式三:源码方式安装3
GitHub地址
二、配置
Hadoop1节点操作(master)
** 1、配置文件的修改 **
cd /usr/local/mfs/etc/mfs
(base) [hduser@hadoop1 mfs]$ sudo cp mfsmaster.cfg.sample mfsmaster.cfg
(base) [hduser@hadoop1 mfs]$ sudo cp mfsexports.cfg.sample mfsexports.cfg
说明:mfsmaster.cfg是master的配置文件,在这里面可以配置向端口,ip,数据存储等这些配置,默认是全部注释的,如果需要修改,可以删除注释进行修改
mfsexport.cfg是配置客户端访问的权限控制,格式如下:
# Allow everything but "meta".
* / rw,alldirs,admin,maproot=0:0
# Allow "meta".
* . rw
第一列:允许的主机,可以是IP地址,可以是ip网段,可以是ip/子网掩码(位数),可以是ip/子网掩码(netmask)
第二列:共享的目录
第三列:权限
详细信息如下:
//地址可以指定的几种表现形式:
- 所有的ip 地址
n.n.n.n 单个ip 地址
n.n.n.n/b IP 网络地址/位数掩码
n.n.n.n/m.m.m.m IP 网络地址/子网掩码
f.f.f.f-t.t.t.t IP 段
//目录部分需要注意两点:
/ 标识MooseFS 根;
. 表示MFSMETA 文件系统
//权限部分:
ro 只读模式共享
rw 读写的方式共享
alldirs 许挂载任何指定的子目录
** 2、启动 **
$ /usr/local/mfs/sbin/mfsmaster start 如果是第一次启动,使用 /usr/local/mfs/sbin/mfsmaster -a
启动cgi服务,通过浏览器查看moosefs使用情况
$ /usr/local/mfs/sbin/mfscgiserv
cgi端口默认是9425
Hadoop2操作(metalogger、clunkserver)
** 1、修改metalogger配置文件 **
修改配置文件
$ cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
ASTER_HOST = mfsmaster 修改成 ASTER_HOST = hadoop1
** 2、启动服务 **
/usr/local/mfs/sbin/mfsmetalogger start
** 3、chunkserver操作 **
1)创建分区
[hduser@hadoop2 mfs]$ sudo parted -s /dev/sdb 'mklabel gpt' # 如果磁盘分区不大于2T,可以不使用parted,使用fdisk也可以创建分区
[hduser@hadoop2 mfs]$ sudo parted -s /dev/sdc 'mklabel gpt'
[hduser@hadoop2 mfs]$ sudo parted -s /dev/sdb 'mkpart mfschunks1 0% 100%' # 表示创建一个分区,使用所有的容量
[hduser@hadoop2 mfs]$ sudo parted -s /dev/sdc 'mkpart mfschunks2 0% 100%'
查看分区信息:
- 格式化
[hduser@hadoop2 mfs]$ sudo mkfs.xfs /dev/sdb1 或者 mkfs.xfs -s size = 4k /dev/sdb1
[hduser@hadoop2 mfs]$ sudo mkfs.xfs /dev/sdc1 或者 mkfs.xfs -s size = 4k /dev/sdbc1
- 挂载
[hduser@hadoop2 mfs]$ sudo mkdir /mfschunks1
[hduser@hadoop2 mfs]$ sudo mkdir /mfschunks2
[hduser@hadoop2 mfs]$ sudo mount /dev/sdb1 /mfschunks1
[hduser@hadoop2 mfs]$ sudo mount /dev/sdc1 /mfschunks2
最好写入到fstab
/dev/sdb1 /mfschunks1 xfs defaults 0 0
/dev/sdc1 /mfschunks2 xfs defaults 0 0
- 修改权限
[hduser@hadoop2 mfs]$ sudo chown hduser:hduser /mfschunks*
[hduser@hadoop2 mfs]$ sudo chmod 770 /mfschunks*
- 修改chunkserver配置文件
[hduser@hadoop2 mfs]$ cp mfshdd.cfg.sample mfshdd.cfg
[hduser@hadoop2 mfs]$ vim mfshdd.cfg # 文件最后添加如下值
/mfschunks1
/mfschunks2
[hduser@hadoop2 mfs]$ cp mfschunkserver.cfg.sample mfschunkserver.cfg
[hduser@hadoop2 mfs]$ vim mfschunkserver.cfg
MASTER_HOST = mfsmaster 修改成MASTER_HOST = hadoop1
6)启动服务
/usr/local/mfs/sbin/mfschunkserver start
7)web界面查看
client
1) 挂载
[hduser@hadoop3 ~]$ sudo chown -R hduser:hduser /mfsclient
[hduser@hadoop3 ~]$ mfsmount /mfsclient -H hadoop1
存在的问题
master存在单点故障,需要配合keepalive配置高可用,当然,商业版(pro)的已经支持多个master了
本文借鉴:
https://blog.csdn.net/qin_weilong/article/details/90639635
https://moosefs.com/support/#documentation