王丽梅
(甘肃省临夏中学 甘肃 临夏 731100)
基于开源云计算框架Hadoop技术支持的具有数据可靠些高、架构体系可扩展性强、基于大规模廉价计算机集群、兼具故障处理能力和容错机制等特征。云存储体系用五元组表示即:£=
HDFS能够将每一部分数据保存3个副本因子,其相对于其他分布式文件存储系统有着众多共同点,但同时相对于其他文件系统其也有着明显优势。若要在大规模廉价计算机集群上建立云存储技术相对于专业的设备来看,机器的运算稳定性和运算速度都很差。因此,HDFS必须能够通过弥补集群机器的运行能力不足、硬件故障等来保证数据不会出现计算错误或丢失。HDFS采用了数据冗余的方案,相对于其他系统,这样便大大降低了维护难度及存储效率。HDFS还具有一套完整的定期检测机制,其能够快速发现和修复集群中的故障机器,若一些机器的故障难以及时解决,HDFS能够通过转移任务给空闲机器的方式来保证数据的完整性和可靠性,提高内容利用率。HDFS系统有着良好的扩展性,其能够在各个平台直接迁移,有利于其在廉价计算机集群上构建并可以被更多的系统或平台应用。
由于廉价计算机集群结合云存储受一些客观因素的影响,可使存储海量数据的环境发生各种各样的问题,会对存储的完整性、可用性和可靠性产生不良的影响。如下几点:
(1)云存储节点的硬件错误。云储存的基础是大规模的廉价计算机集群,因此云储存要能够兼容存储节点的硬件错误,避免单个或部分节点错误影响整体运行。(2)云存储的过程中会出现软性错误。云存储过程会受到存储节点网络连接情况、存储节点运行情况、网络数据传递情况等因素的影响,因此要求云存储体系具有很强的错误检测和自动恢复功能。(3)云存储体系必须具备很强的可扩展性。可扩展性对于云存储体系具有很强的实用价值,通过动态添加或删除存储节点。(4)必须能够提高海量数据的传输、管理和存储功能。
本研究云储存的设计与实现基于HDFS,廉价计算机集群采用6台服务器组成,DataNode、Secondary NameNode服务器选择MapReduce编程的JobTracker,操作系统采用Ubuntu10.04.主要步骤为:(1)搭建实验环境,包括云存储环境配置。(2)廉价计算机集群上的云存储功能分析,主要包括可扩展性、云存储体系的故障处理能力和容错机制和负载均衡能力,以及HDFS自带故障处理机制。
2.1 实验集群环境的搭建
实验过程中,Secondary Node与NameNode在同一个节点上。实验环境是以一个小型计算机集群为基础,此集群包含6台服务器,选择其中的一台服务器作为NameNode、MapReduce和Secondary Node编程模型中的JobTracker,其他5台则为DataNode 以及TaskTracker。选择的根路径则是通过HADOOP_HOME进行安装的。在集群中所有机器使用相同路径,即HADOOP_HOME。操作系统是Ubuntu。
2.2 对云存储的环境进行配置。
通过两个配置文件对Hadoop进行配置,这两个文件在conf/目录下:
hadoop-default.xml–属于只读配置。
hadoop-site.xml–属于集群特有配置。
HDFS集群在进行配置时,对Hadoop守护进程进行配置,配置运行环境和运行参数。Hadoop的守护进程是NameNode、TaskTracker以及DataNode JobTracker/。
Hadoop守护进程进行配置,配置运行环境
通过配置选项HADOOP_*_OPTS来分别配置各个守护进程。其中的一台机器被选作NameNode,另一选台机器用作JobTracker。剩余机器作为DataNode又可被作为TaskTracker,被称为slaves。
日志
Hadoop记录日志是通过Apache log4j的方式,这一过程的实现需要Apache Commons Logging框架。
全部必要的配置如果已经完成,则将文件分到所有机器的HADOOP_CONF_DIR路径下,通常是${HADOOP_HOME}/conf。
另外,HDFS认为,存储节点主要分DataNode及NameNode(Secondary Node),因此在对云存储体系进行配置时,首先要对NameNode及DataNode进行配置。
主要的两个步骤是:
第一步,对NameNode进行配置。选其中一台计算机的节点作NameNode,修改/etc/hosts,然后将其他4个存储节点的 IP 地址以及计算机名分别添加进来。
第二步,DataNode的配置。添加本机IP地址、计算机名和NameNode 到/etc /hosts 中。
2.3 SSH Server安装完后,进行免密钥的访问配置。
在DataNode中添加复制生成的密钥,并在NameNode的/etc/hosts/中添加计算机集群中所有节点的IP以及计算机名,然后覆盖DataNode中的文件使 用NameNode上的authorized_keys,保证DataNode能够访问NameNode免密码的。
2.4 在NameNode上安装HDFS云存储环境。
设置conf/hadoop-env.sh中的变量作集群的特有值,就能够控制Hadoop脚本,隶属于bin/目录下的。在配置NameNode时,首先要对Hadoop环境变量进行配置,解压Hadoop的安装包,然后对HDFS相关参数进行配置,对conf/hadoop-site.xml的文件进行修改,把dfs.replication的值设为2。然后对云存储体系的主从结构(master/slave)进行设置,master计算机名(lib_namenode)被设置为conf/masters,slave的计算机名(lib_datanode01、……、lib_datanode04)被设置为将conf/slave。
2.5 将所有HDFS云存储环境安装到DataNode,命令是:
$scp–r hadoop-0.21.0 lib_namenode:/home/
2.6 安装结束后,可以对云存储体系进行检测,观察构建是否完成。
第一步,将NameNode进行格式化,执行的命令是:$bin/hadoopnamenode–format
第二步,HDFS云存储系统执行命令进行启动:
若$bin /start-all.sh的测试比较成功,用户可对整个云存储体系的运行状况进行观察,通过http://192.168.1.3: 8090查看。
本研究针对廉价计算机集群上云计算环境下云存储的业务需求,实现构建负载能力较均衡的、并且能够扩展的性能较高的云存储体系,而且针对研究中存在的问题进行具体分析,制定相应的解决措施,提出构建于廉价计算机集群上的云存储的实现方法。未来云存储服务的发展有较大的研究空间,特别是对云存储体系副本的选择策略研究,将是未来研究的重点问题。
[1] O.Pandithurai.High-Performance Multipath Routing Algorithm Using CPEGASIS Protocol in Wireless Sensor Cloud Environment[J].Circuits and Systems,2016,7(10):3246-3252.