1. DataNode

09. DataNode - 图1

2. 数据完整性

奇偶校验位 如果传输数据1为偶数个数则为0 如果为奇数个1则为1

如果原始数据与接收数据发生改变又恰好奇偶性一致 则这个现象我们称为校验碰撞

crc校验位 32位

md5 128位

sha1 160位

09. DataNode - 图2

3. 扩展集群

服役新数据节点

  1. 克隆 修改主机名 ip

    1. #复制module文件夹 在其他集群中复制 和环境变量
    2. sudo rsync -av /opt/module hadoop105:/opt
    3. sudo rsync -av /etc/profile.d hadoop105:/etc
    1. #在扩展机中删除logs data 文件夹
    2. cd /opt/module/hadoop-3.1.3/
    3. rm -rf data logs
    4. source /etc/profile
    5. hadoop version
    1. hdfs --daemon start datanode
    2. yarn --daemon start nodemanager
    3. jps

此方式是手动启动 如果想要群启动则需要配置免密登陆

  1. #在102中配置
  2. vim /opt/module/hadoop-3.1.3/etc/hadoop/workers

追加上地址

  1. hadoop105

同步所有集群

  1. xsync /opt/module/hadoop-3.1.3/etc/hadoop/workers

3.1. 添加黑/白名单

在hadoop文件夹下 新建balcklist和whitelist

  1. #主机上写 102
  2. cd /opt/module/hadoop-3.1.3/etc/hadoop
  3. touch balcklist
  4. touch whitelist

添加白名单 一般whitelist内容和workers相同

  1. vim whitelist
  1. hadoop102
  2. hadoop103
  3. hadoop104
  4. hadoop105

再编辑hdfs-size.xml

  1. vim hdfs-site.xml

添加以下内容

  1. <property>
  2. <name>dfs.hosts.exclude</name>
  3. <value>/opt/module/hadoop-3.1.3/etc/hadoop/balcklist</value>
  4. </property>
  5. <property>
  6. <name>dfs.hosts</name>
  7. <value>/opt/module/hadoop-3.1.3/etc/hadoop/whitelist</value>
  8. </property>

重启集群

  1. stop-dfs.sh

开启

  1. start-dfs.sh

3.2. 黑名单退役

编辑 balcklist 添加黑名单地址

  1. vim balcklist
  2. hdfs dfsadmin -refreshNodes #刷新节点

退役的机器 自动上传文件到服役中的其他主机中

关闭节点

  1. hdfs --daemon stop datanode

4. DateNode 多目录配置

DataNode也可以配置成多个目录,每个目录存储的数据不一样。即:数据不是副本

  1. vim hdfs-site.xml

多个目录之间逗号隔开

  1. <property>
  2. <name>dfs.datanode.data.dir</name>
  3. <value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2</value>
  4. </property>

配置完成后重启

  1. hdfs --daemon stop datanode
  2. hdfs --daemon start datanode