• 上个纪元的赵天师
    2018-11-10
    听过本期音频,我想,在现实的条件下,实现这样的设想非常困难,例如:【1】用户空间(尤其是手机,iPad)不能保障高可用的性能,随时被访问被验证;【2】网络条件要求过高,尤其是被需求或者需要均衡时频繁的文件迁移;【3】要验证HDFS所有备份块的可用性,因此个人中端上不能过多不同用户,过碎的数据块;【4】为了保证系统的高效一般一块数据不会过小,要不然会浪费过多的计算资源(进程),如果单块数据在128M左右,自然会受到终端存储规模的制约【5】等等诸多隐患。因此,稳定的分布式端点还是必要的,不然文件将在诸多节点中频繁移动浪费大量的网络资源。【补】过于复杂的架构网络,对验证的响应延时也造成了麻烦。边走边打字暂时先想到这些😬

    作者回复: 很周全

     2
     54
  • 文大头
    2018-11-12
    1、互联网上用户交分散,需要用CDN的模式,分层分区域部署NameNode,NameNode上数据汇总到上级,上级数据按需分发到下级。同一个区域的用户(DataNode)分配到同一个NameNode
    2、用户DataNode机器可用性极差,按10%算,平均一个数据需要10个备份。不过可以有一定策略改进,比如让用户活跃时间跟用户等级挂钩,等级跟功能挂钩,以鼓励用户增加在线时间;存储数据可以分级别,高级别数据备份更多,可用性安全性速度更高,级别低备份少。
    3、安全性考虑,其他用户存储在NameNode上的数据,不能被宿主机破解查看和修改
    暂时想了这些,感觉再想下去要变成百度网盘或者迅雷了
    展开

    作者回复: 想的很周全

    
     17
  • 方得始终
    2018-11-10
    最近两大Hadoop发行商Cloudera 和Hortonworksg合并,网上包括极客时间也报道过HDFS跟云端对象存储系统已没有性能和价格上的优势.在我工作实践中也碰见过HDFS上存储的文件丢失,虽然只是一个机架(rack)断电.请问老师对此有何看法?
    
     17
  • gogo
    2018-11-26
    老师、我想提一个问题: 主NameNode 向 Sared Edits 写数据的过程中、主Namenade 没洗完的数据是不是会丢失? 那这样 从NameNode被选举为主NameNode 后,是不是会有一部分数据找不见存在哪个DataNode上了? 大家都可以回答哈 另外 一个数据块 在什么情况下、不是一个分区?
    
     8
  • 落叶飞逝的恋
    2018-11-12
    关于思考题的想法:首先这个就是各大厂商的提出的云服务的概念。而对于手机、ipad的这些设备作为分布式容器的一部分,是不可取的。首先不能不确保手机的网速的可用性,而且三大运营商都有流量这个概念。第二,手机无法实时的给NameNode进行发送心跳,因为用户可以主动关闭网络,或者用户在无网区域。
    
     7
  • 鸠摩智
    2018-11-12
    如果在hdfs上存储了大量的小文件,每个文件都不到一个块(128M)大小。而每个文件确实是单独的,比如一张张图片,不能把它们合并为一个大文件,这样即使一个文件namenode只存储几字节的元数据,是不是也有可能超出namenode单台机器限制了呢?
    
     4
  • Jack Zhu
    2018-11-24
    “如果 DataNode 监测到本机的某块磁盘损坏,就将该块磁盘上存储的所有 BlockID 报告给NameNode。”
    有个疑问,望解答:磁盘损坏,怎么获得BlockID,BlockID存在哪?
     1
     3
  • blacksmith.ink
    2018-11-21
    讲技术不讲技术脉络的也都是流氓啊。那些去中心化存储的区块链项目,就没谁写出去中心存储应是借鉴或发展于hdfs等分布式存储方案。raid到hdfs立马好理解多了。我是看过ipfs,storj,sia等几个去中心化的存储方案。通过看今天的内容,我突然感觉开窍了,他们整得太复杂了,基于hdfs加上存储时空证明就能实现去中心化存储,实现高可用的技术细节考虑的当然不同了,而存储时空权益就把终端的高可用工作分散到具体用户了。当然,namenode是中心化部署还是代理节点部署还是要考虑一下。另,通过用户贡献的存储时长和空间换来的受益,这对用户的约束可能会随时间变化而减少,进而存储的可用性是不稳定的,但这里我想了两个方案:1,用户贡献出来的资源是为了储值的,获得权益是要零存整取,加大惩罚成本(这个估计他们实际做的会想到,我当时看时反正没看到);2,整个分布式系统加一套蓝光备份系统,这种低成本数据存储方案是对要求高可用数据的备选项。
    展开

    作者回复: 深刻👍🏻

    
     3
  • 朱国伟
    2018-11-10
    关于DataNode 故障容错感觉处理起来好复杂啊 假设numReplicas=2 由于机器故障导致DataNode 1宕机 此时为了保证numReplicas=2会复制数据 像下面的情况怎么处理呢
    - 等全部复制完了 DataNode1重启了 那此时numReplicas=3 这种情况会处理吗?
    - 或者复制到一半(即有些Block还没来得及复制) DataNode1重启了 这种情况又怎么办
    - 或者集群勉强够用 实在没有多余的机器来复制DataNode1对应的数据了 又该如何

    并且要是掉电或是网络异常 可能不是一个DataNode宕机 可能是怎个机架整个机房的DataNode的都宕机了

    展开

    作者回复: DataNode即使重启也认为其上的数据已经丢失,不会再使用。

    
     3
  • 一步
    2018-11-10
    这个思考题的实现思路是和IPFS的实现思路应该一样的

    作者回复: 是的

    
     2
  • 姜文
    2018-11-10
    首先要部署个name node存储元数据,记录用户数据存储的位置,为保证name node的高可用,必须做备份,通过zookeeper选举主 name node,data node就是全世界的移动设备,用户的数据要做备份,至少三份,用户的app必须和name node的主备服务器做心跳,用于移动设备故障时能主动上报或者name node能及时发现保证数据可用。用户如果要存储数据必须通知name node做好元数据记录及datanode的数据备份。第一次回答,请老师指教。
    
     2
  • 往事随风,顺其自然
    2018-11-10
    可以先通过定位寻找离自己近的人的手机存储容量,如果不够就扩大搜索范围直到可以满足自己需求,然后给对应这些设备设置一个哈稀函数,怎么来存储对应分片数据,根据不同分钱到的对应设备上付钱,并且设置一个校验的设备,定时的去检测设备,哪些可用,哪些不可用,然后进行数据转移备份
    
     2
  • 掌心童话
    2019-04-22
    这讲的诸多点让我想到了区块链,脑裂,不就是共识算法问题引起的经典拜占庭问题( •̥́ ˍ •̀ू )。这把客户端当数据存储节点也是各种币做交易记录数据库的玩儿法
    
     1
  • 张晓生
    2019-01-16
    如果在一台nameNode服务器元数据有修改但是还没来得及热备到从nameNode服务器,这个时候刚好主nameNode服务器挂了,zookeeper选举出新的主服务器(之前的从节点),就会造成当前的主nameNode节点数据不正确。请问这种问题怎么解决呢?

    作者回复: NameNode在本地有操作日志,可以利用这个日志进行恢复操作,但是前提是原来的主NameNode的硬盘没坏,还有就是恢复需要时间。

    
     1
  • Sam.张朝
    2018-12-17
    从第一篇看到第六篇,感觉脑袋有点装不下了。
    
     1
  • dingwood
    2018-12-15
    Shared edits是啥。。网上搜半天没找到,求指点
    
     1
  • wmg
    2018-11-12
    类似于hdfs的机制,只不过将用户设备作为datanode,namenode是中心化的(否则和区块链就比较类似)。有几个问题需要考虑:1.用户设备存储空间有限,所以block的大小不能太大;2.由于block不能太大所以元数据会比较大,对namenode存储空间要求较高;3.由于datanode是不可信的,所以需要对datanode设计身份识别机制,存储的数据也必须是加密,副本数量也要设置的多一些;4.由于所有的datanode都需要和namenode通信,所以datanode的数量会有限制,这样就限制了整个集群的存储空间,可以考虑多集群的方式,用户注册的时候利用负载平衡算法将用户划分到其中一个集群。暂时想到这么多,请老师指教。

    作者回复: 很赞,不过NameNode不应该是存储空间的制约,该怎么办?

    
     1
  • 龙儿快看我的大雕
    2020-02-10
    老师,您说hadoop的hdfs是依赖zookeeper实现的,但是我在网上跟着集群搭建的步骤来弄,都没看到要安装zookeeper,这是咋回事?

    作者回复: 你看的应该是没有实现高可用NameNode的部署方法。https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html#Automatic_Failover

    
    
  • Citizen Z
    2020-02-09
    这个产品复刻 HDFS 原理是可以的。
    NameNode 必须由运营者管理,解决了目录控制权就解决了绝大部分问题。
    用户终端全是 DataNode,架构模型上没问题,但细节问题很多。
    一类客观问题:网络环境、容量、读写速度这种,可以通过市场手段调节分配,比如在分享时可以设置该文件需要分几片、分多少节点、在哪些地域分散、最多存多久,付费者甚至可设置奖金激励存储者提供服务。当然最好的做法的是把这些规则打包成一个花“多少钱享受多少 SLA”的大众可理解的服务套餐,把存储节点的分布规则设成基于大数据统计预测后动态匹配的,淘汰表现不佳的存储节点,促使贡献者买“矿机”哈哈。
    二类安全问题:如何防止存储者作恶,数据加密、校验是基本的安全设计也不难解决,最要命的是如何审计数据,识别用户谎报的信息,这个场景就像网络游戏外挂攻防一样,要做好全方位的通信安全,防止分享者花小钱存大文件,防止存储者用小流量赚大佣金,APP 也不能被破解,否则通信的来源也是不可信的,很容易造成恶意节点发送错误数据。

    这东西要做肯定要费老功夫,如果研发难度太高,还是选择租机房开展云存储服务或卖终端级 CDN 设备(优酷路由宝、迅雷赚钱宝这种),这个容易些,商业逻辑也成立。
    展开
    
    
  • Achilles
    2020-01-14
    如果 DataNode 监测到本机的某块磁盘损坏,就将该块磁盘上存储的所有 BlockID 报告给 NameNode?
    如果已经损坏了,DataNode怎么获取到BlockID的,BlockID与数据不是存在一起的吗?

    作者回复: 不是

    
    
我们在线,来聊聊吧