热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

qfs集群安装之一metaserver安装

下载程序下载centos6的版本:https:s3.amazonaws.comquantcast-qfsqfs-centos-6.7-master-x86_64.tgz然后解压MetaSe
下载程序

下载centos 6的版本:

https://s3.amazonaws.com/quantcast-qfs/qfs-centos-6.7-master-x86_64.tgz

然后解压


Meta Server

负责保存所有chunk的位置,协调chunk的复制和恢复。

配置文件

需要创建一个配置文件,文件名为meta_server.prp,这是简要配置

# port used by clients to connect to the metaservermetaServer.clientPort = 20000

# port used by chunk servers to connect to the metaserver
metaServer.chunkServerPort = 30000

# chunk placement groups by IP address or first three octets
# metaServer.rackPrefixes =

# create new file system if no transaction logs or checkpoints are found
metaServer.createEmptyFs = 1

# location to write transaction logs
metaServer.logDir = /your-path/qfs_logs

# location to write checkpoints, this needs be pruned periodically
metaServer.cpDir = /your-path/qfs_checkpoint

# unique cluster id
metaServer.clusterKey = dean-qfs



完整配置从这里下载。

注意完整配置文件分成两部分,一部分是静态配置,必须重启服务才生效,一部份是动态配置,可以通过发SIGHUP信号给meta server进程生效。两部分中间有分割说明

# ==============================================================================# The parameters below this line can be changed at runtime by editing the# configuration file and sending meta server process HUP signal.# Note that to restore parameter to default at run time the default value must# be explicitly specified in the configuration file. In other words commenting# out the parameter will not have any effect until restart.


创建qfs用户

创建qfs用户,adduser qfs,然后将之前配置的所有目录都改成qfs为owner。

初始化

切换到qfs用户,运行下面的命令

/your-path/qfs/bin/metaserver -c /your-path/qfs_conf/meta_server.prp
遇到错误:

10-13-2016 02:06:13.083 ERROR - (UserAndGroup.cc:648) getpwent duplicate user id: 0 name: a cur: root group: 0 cur: 010-13-2016 02:06:13.083 ERROR - (UserAndGroup.cc:648) getpwent duplicate user id: 0 name: b cur: root group: 0 cur: 0
这是个意外,服务器上存在a和b两个帐号,使用0为uid,和root一样。

这样不能直接删除用户,需要(用root帐号)先到/etc/passwd中将a和b的uid改成两个新值,然后再用userdel 命令删除a和b

现在再试运行一次命令

继续报错:

10-13-2016 02:10:20.687 ERROR - (TcpSocket.cc:575) 0.0.0.0:30000 Address already in use 9810-13-2016 02:10:20.687 ERROR - (Acceptor.cc:102) failed to bind to:  30000 error: Address already in use 98
30000端口被占用了。换一个,修改配置文件为40000。再来。 这次过了。

Loading key metaServer.clientPort with value 20000Loading key metaServer.chunkServerPort with value 40000Loading key metaServer.rackPrefixes with value Loading key metaServer.createEmptyFs with value 1Loading key metaServer.logDir with value /your-path/qfs_logsLoading key metaServer.cpDir with value /data/slot0/qfs_checkpointLoading key metaServer.clusterKey with value dean-qfsLoading key metaServer.clusterKey with value dean-qfs10-13-2016 02:15:47.171 INFO - (nofilelimit.cc:82) max # of open files: 60000010-13-2016 02:15:47.173 INFO - (metaserver_main.cc:460) meta server client listner:  2000010-13-2016 02:15:47.173 INFO - (metaserver_main.cc:479) meta server chunk server listener:  4000010-13-2016 02:15:47.173 INFO - (metaserver_main.cc:488) path->fid cache disabled10-13-2016 02:15:47.173 INFO - (metaserver_main.cc:351) min chunk servers that should connect: 110-13-2016 02:15:47.173 INFO - (metaserver_main.cc:359) min. # of replicas per file: 110-13-2016 02:15:47.173 INFO - (metaserver_main.cc:520) hard limits: open files: 600000 chunk servers: 4096 clients: 59564810-13-2016 02:15:47.173 INFO - (LayoutManager.cc:1728) rack: prefix:  id: 1010-13-2016 02:15:47.173 INFO - (LayoutManager.cc:2060) max. response size: 268435456 minIoBufferBytesToProcessRequest: 27892121610-13-2016 02:15:47.173 INFO - (metaserver_main.cc:541) creating empty file system10-13-2016 02:15:47.173 INFO - (metaserver_main.cc:706) creating new empty file system10-13-2016 02:15:47.173 INFO - (metaserver_main.cc:729) replaying logs10-13-2016 02:15:47.173 INFO - (metaserver_main.cc:747) updating space utilization

启动服务

将刚才的命令去掉 -c,保存为脚本文件,然后运行脚本:(-c只能用一次,以后集群正常运转的时候使用-c会丢失数据)

$ ./start-qfs-meta-server.shLoading key metaServer.clientPort with value 20000Loading key metaServer.chunkServerPort with value 40000Loading key metaServer.rackPrefixes with value Loading key metaServer.createEmptyFs with value 1Loading key metaServer.logDir with value /your-path/qfs_logsLoading key metaServer.cpDir with value /data/slot0/qfs_checkpointLoading key metaServer.clusterKey with value dean-qfsLoading key metaServer.clusterKey with value dean-qfs10-13-2016 02:18:26.080 INFO - (nofilelimit.cc:82) max # of open files: 60000010-13-2016 02:18:26.081 INFO - (metaserver_main.cc:460) meta server client listner:  2000010-13-2016 02:18:26.081 INFO - (metaserver_main.cc:479) meta server chunk server listener:  4000010-13-2016 02:18:26.081 INFO - (metaserver_main.cc:488) path->fid cache disabled10-13-2016 02:18:26.081 INFO - (metaserver_main.cc:351) min chunk servers that should connect: 110-13-2016 02:18:26.081 INFO - (metaserver_main.cc:359) min. # of replicas per file: 110-13-2016 02:18:26.081 INFO - (metaserver_main.cc:520) hard limits: open files: 600000 chunk servers: 4096 clients: 59564810-13-2016 02:18:26.081 INFO - (LayoutManager.cc:1728) rack: prefix:  id: 1010-13-2016 02:18:26.081 INFO - (LayoutManager.cc:2060) max. response size: 268435456 minIoBufferBytesToProcessRequest: 27892121610-13-2016 02:18:26.081 INFO - (metaserver_main.cc:541) starting metaserver10-13-2016 02:18:26.082 INFO - (Restorer.cc:99) restoring from checkpoint of 2016-10-12T18:15:47.174078Z10-13-2016 02:18:26.082 INFO - (Replay.cc:73) open log file: /your-path/qfs_logs/log.010-13-2016 02:18:26.082 INFO - (Restorer.cc:99) restoring from checkpoint of 2016-10-12T18:15:47.174088Z10-13-2016 02:18:26.082 INFO - (metaserver_main.cc:729) replaying logs10-13-2016 02:18:26.082 INFO - (Replay.cc:73) open log file: /your-path/qfs_logs/log.010-13-2016 02:18:26.082 INFO - (Replay.cc:750) log time: 2016-10-12T18:15:47.174020Z10-13-2016 02:18:26.082 INFO - (metaserver_main.cc:747) updating space utilization10-13-2016 02:18:26.082 INFO - (Logger.cc:124) log append: int base: 16 file: /your-path/qfs_logs/log.010-13-2016 02:18:26.082 INFO - (metaserver_main.cc:548) start servicing10-13-2016 02:18:27.083 INFO - (NetDispatch.cc:667) ===request=counters: 1476296307083673 9998 3999 1 0 9 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 9 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 010-13-2016 02:18:27.083 INFO - (NetDispatch.cc:684) ===rusage=self: utime: 9998 stime: 3999 maxrss: 6444 ixrss: 0 idrss: 0 isrss: 0 minflt: 1716 majflt: 0 inblock: 0 oublock: 16 msgsnd: 0 msgrcv: 0 nsignals: 0 nvscw: 18 nivscw: 4 10-13-2016 02:18:27.083 INFO - (NetDispatch.cc:689) ===rusage=chidren: utime: 0 stime: 0 maxrss: 0 ixrss: 0 idrss: 0 isrss: 0 minflt: 0 majflt: 0 inblock: 0 oublock: 0 msgsnd: 0 msgrcv: 0 nsignals: 0 nvscw: 0 nivscw: 0 10-13-2016 02:18:27.083 INFO - (LayoutManager.cc:9391) Initiating a replication check of all chunks


服务器启动了。现在可以修改脚本,加上nohup,保证一直运行。
#!/bin/bash#-c can be used once, do not use it when have impoartand data in cluster#/your-path/qfs/bin/metaserver -c /your-path/qfs_conf/meta_server.prp nohup /your-path/qfs/bin/metaserver /your-path/qfs_conf/meta_server.prp &


注意观察nohup.out的内容,都是INFO就算正常。


chunk server的事下篇再说吧。


官方文档

https://github.com/quantcast/qfs/wiki/Deployment-Guide

参考meta server章节






推荐阅读
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
author-avatar
346182773_20da31
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有