hdfs完全分布式

本文详细介绍如何在四台CentOS服务器上配置无密码SSH登录、安装JDK及Hadoop,并完成Hadoop集群的搭建过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:环境准备

     1.centOs 4台  ip分别为  192.168.125.201(linux1)、192.168.125.202(linux2)、192.168.125.203(linux3)       192.168.125.204(linux4)
(1)分别修改主机名称为 linux1、linux2、linux3、linux4  /etc/sysconfig/network
(2)分别修改hosts  /etc/hosts 最后一行增加
          
 2.jdk-7u79-linux-x64.rpm  jdk
 3.hadoop-2.5.1_x64.tar.gz 
 4.zookeeper-3.4.8.tar.gz


二:具体步骤

   (1)。配置无密钥登录
             通过命令ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa,在每台机器生成dsa密钥公钥。
    

   将上述命令生成的dsa公钥通过命ssh-copy-id -i ~/.ssh/id_dsa.pub root@ip分别放到4台机器上
         
   测试:如下所示,在远程传输文件时,不需要输入密码,则正证明无密钥登录配置成功。
   注意:要确保没一台机器和其他三台包括自己都能进行无密钥登录
(2)安装jdk并配置环境变量
(3)安装hadoop并配置环境变量
     在linux1上修改
      配置文件core-site.xml
   
    并创建文件夹 /root/tools/hadoop_dir
    配置slaves文件,里面写的是你的所有从节点!
vi etc/hadoop/slaves
linux2
linux3
linux4
   配置masters文件,这里要注意的是里面配置的是Secondary NameNode
      vi etc/hadoop/masters
linux2
   配置这个hadoop-env.sh,里面添加JAVA_HOME
   export JAVA_HOME=/usr/java/default
   将hadoop整个文件夹拷贝到其他三台机器上。
   在linux1上执行 hdfs namenode -format
   之后启动
   start-dfs.sh 
   启动成功后 jps 查看进程
   linux1:namenode   linux2:SecondaryNameNode datenode   linu3、linux4:datenode

    搭建成功!
  
### HDFS分布式存储系统的区别及对比 #### 1. **定义上的差异** HDFSHadoop Distributed File System)是一种具体的分布式文件系统,属于分布式存储的一种实现方式。它专为大规模数据集设计,提供高吞吐量的数据访问能力[^1]。 而分布式存储是一个更广泛的概念,涵盖了多种不同的技术和架构形式,包括但不限于键值存储、文档存储、列族存储等。这些系统可能并不完全遵循HDFS的设计理念。 --- #### 2. **架构特点的区别** - **HDFS架构** HDFS采用了Master/Slave架构,其中NameNode负责管理元数据,DataNode负责实际的数据存储和读写操作[^3]。这种集中式的元数据管理和去中心化的数据存储使得HDFS适合于大文件的顺序读写场景。 - **通用分布式存储架构** 其他类型的分布式存储系统可能采用更为灵活的架构,例如Paxos或Raft一致性协议来管理元数据,或者通过分片(Sharding)的方式提高并发性和扩展性。这类系统通常更适合随机读写的中小规模文件场景。 --- #### 3. **适用场景的不同** - **HDFS的应用场景** 由于其设计理念偏向于批量处理和大文件存储,HDFS非常适合用于离线数据分析、日志收集、ETL流程等领域。它的高容错性和可扩展性使其成为大数据生态的核心组成部分之一[^1]。 - **分布式存储的应用场景** 相比之下,分布式存储系统可以根据具体需求定制化设计,适用于更多样化的场景,如实时查询、事务型数据库、对象存储等。例如Cassandra、MongoDB等NoSQL数据库就是典型的例子。 --- #### 4. **数据一致性的保障机制** - **HDFS的一致性模型** HDFS默认提供了最终一致性模型,在写入过程中可能会存在短暂的时间窗口内数据不可见的情况。为了保证可靠性,HDFS实现了三副本复制策略,并优化了副本放置位置以减少单点故障风险[^4]。 - **分布式存储的一致性模型** 不同类型的分布式存储系统可以选择强一致性、弱一致性或最终一致性等多种模式。例如Google Spanner就实现了全局范围内的强一致性,而Dynamo风格的系统则倾向于牺牲部分一致性换取更高的可用性。 --- #### 5. **性能表现的差异** - **HDFS的性能特征** 针对大批量数据的顺序读写进行了高度优化,但在小文件处理方面效率较低。这是因为每次打开一个小文件都会增加额外开销,同时大量小文件可能导致NameNode内存压力过大[^5]。 - **分布式存储的性能特征** 许多现代分布式存储解决方案能够很好地平衡大小文件间的性能差距。它们往往具备动态调整资源分配的能力,从而适应多样化的负载需求。 --- #### 6. **扩展性和维护成本** - **HDFS的扩展性** 理论上可以通过简单地添加新节点来水平扩展集群容量;然而,随着规模增大,单一NameNode可能成为瓶颈,为此引入了Federation和HA架构加以缓解[^2]。 - **分布式存储的扩展性** 大多数新型分布式存储方案都支持无缝扩容,并且无需依赖特定的角色划分即可完成任务调度与协调工作。这降低了运维复杂度并提升了系统的鲁棒性。 --- ```python # 示例代码展示如何连接至HDFS from hdfs import InsecureClient client = InsecureClient('http://namenode_address:port', user='your_user') with client.write('/example/path/to/file.txt') as writer: writer.write(b'Hello, this is a test.') ``` --- ### 结论 综上所述,虽然HDFS分布式存储的一个重要实例,但它仅覆盖了这一广阔领域的一部分功能。两者之间既有交集也有显著差别,选择哪一种取决于业务的具体需求和技术背景考量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值