当前位置: 首页 > news >正文

网站泛解析湘潭做网站公司选择封象网做网站公司

网站泛解析,湘潭做网站公司选择封象网做网站公司,天津营销网站建设公司,成都哪里有做网站建设的1.黑白名单机制 在HDFS中可以通过黑名单、白名单机制进行节点管理#xff0c;决定数据可以复制/不可以复制到哪些节点。 黑名单通常是指在HDFS中被标记为不可用或不可访问的节点列表#xff0c;这些节点可能由于硬件故障、网络问题或其他原因而暂时或永久性地无法使用。当一…1.黑白名单机制 在HDFS中可以通过黑名单、白名单机制进行节点管理决定数据可以复制/不可以复制到哪些节点。 黑名单通常是指在HDFS中被标记为不可用或不可访问的节点列表这些节点可能由于硬件故障、网络问题或其他原因而暂时或永久性地无法使用。当一个节点被加入黑名单时HDFS会避免将新的数据块复制到该节点上同时也会尝试移动现有的数据块副本到其他可用节点上以确保数据的可靠性和可用性。 白名单通常是指HDFS中被标记为首选节点的列表。这些节点通常是性能较好、可靠性高、网络连接优良的节点HDFS会尽可能地将数据块复制到这些节点上。白名单中的节点可能会被优先用于数据复制和块的放置以提高系统的性能和可用性。 综上黑名单用于标记HDFS不可用的节点而白名单用于标记HDFS首选的节点。可以按照如下步骤配置HDFS中的黑白名单。 1) 创建黑白名单 在node1节点$HADOOP_HOME/etc/hadoop目录下创建blacklist和whitelist黑白名单文件两个文件中分别配置黑名单和白名单如下 blacklist: node5whitelist: node3 node4将以上blacklist和whitelist分发到其他Hadoop节点 [rootnode1 hadoop]# scp ./whitelist ./blacklist node2:pwd [rootnode1 hadoop]# scp ./whitelist ./blacklist node3:pwd [rootnode1 hadoop]# scp ./whitelist ./blacklist node4:pwd [rootnode1 hadoop]# scp ./whitelist ./blacklist node5:pwd2) 配置hdfs-site.xml文件 在node1、node2节点配置hdfs-site.xml文件追加如下配置项 !-- 白名单 --propertynamedfs.hosts/namevalue/software/hadoop-3.3.6/etc/hadoop/whitelist/value/property!-- 黑名单 --propertynamedfs.hosts.exclude/namevalue/software/hadoop-3.3.6/etc/hadoop/blacklist/value /property注意由于前面设置了HDFS异构存储每个节点的额hdfs-site.xml配置不同需要手动配置node3~node5节点的hdfs-site.xml加入以上配置。不能统一分发。 3) 重启HDFS集群 以上配置完成后重启HDFS集群 [rootnode1 hadoop]# stop-all.sh [rootnode1 hadoop]# start-all.sh注意首次配置黑白名单需要重启集群后续修改黑白名单只需要执行“hdfs dfsadmin -refreshNodes”命令即可不需重新启动集群。 4) 观察WebUI及操作HDFS 重启集群后通过HDFS WerUI我们可以看到DataNode信息不再有node5节点信息如下 并且HDFS中目前磁盘文件每个只有2个副本node5节点不能存储block数据。 虽然node5节点不能存储block数据但是不影响在node5节点作为HDFS客户端操作HDFS。在node5节点创建目录 /test 并将data.txt上传到该目录下 #创建/test目录 [rootnode5 ~]# hdfs dfs -mkdir /test#上传data.txt到/test目录下 [rootnode5 ~]# hdfs dfs -put ./data.txt /test/通过WebUI我们发现刚上传的data.txt 也只有2个副本 5) 将node5节点加入白名单 修改所有hadoop节点 $HADOOP_HOME/etc/hadoop下的blacklist将node5节点从blacklist中去掉并加入到whitelist。最终blacklist中没有指定节点whitelist中指定了node3、node4、node5节点。最后在任意NameNode节点执行如下命令重新刷新HDFS 节点 #在任意NameNode节点执行如下命令最好保证所有NameNode进程存在 [rootnode1 hadoop]# hdfs dfsadmin -refreshNodes Refresh nodes successful for node1/192.168.179.4:8020 Refresh nodes successful for node2/192.168.179.5:8020 Refresh nodes successful for node3/192.168.179.6:8020执行如上命令后可以通过HDFS WebUI看到node5节点重新加入了集群中 上传的/test/data.txt也会有3个block块信息 2.HDFS动态扩容  HDFS集群已有DataNode节点不能满足数据存储需求支持在原有集群基础上动态添加新的DataNode节点这就是HDFS动态扩容。 这里准备node6节点节点ip为192.168.197.9该节点基于base快照进行搭建按照如下步骤准备node6节点即可。 1) 基于快照创建node6节点 可以基于centos7 已有的虚拟机快照进行链接克隆创建新的节点这里创建好节点后节点相当于是一台新的机器。 2) 修改node6节点ip 启动该节点在对应的节点路径“/etc/sysconfig/network-scripts”下配置ifg-ens33文件配置IP注意不同机器可能此文件名称不同一般以ifcfg-xxx命名以配置ip为192.168.179.9ifcfg-ens33配置内容如下 TYPEEthernet BOOTPROTOstatic #使用static配置 DEFROUTEyes PEERDNSyes PEERROUTESyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IPV6_DEFROUTEyes IPV6_PEERDNSyes IPV6_PEERROUTESyes IPV6_FAILURE_FATALno ONBOOTyes #开机启用本配置 IPADDR192.168.179.9 #静态IP GATEWAY192.168.179.2 #默认网关 NETMASK255.255.255.0 #子网掩码 DNS1192.168.179.2 #DNS配置 可以与默认网关相同以上只需要修改对应的ip即可配置完成后在每个节点上执行如下命令重启网络服务 systemctl restart network.service检查该节点ip执行如下命令 ip addr3) 配置主机名 在该节点上修改/etc/hostname,配置对应的主机名称为node6。配置完成后需要重启节点才能正常显示各个主机名。 4) 关闭防火墙 执行如下命令确定节点上的防火墙开启情况需要将节点上的防火墙关闭 #检查防火墙状态 firewall-cmd --state#临时关闭防火墙重新开机后又会自动启动 systemctl stop firewalld 或者systemctl stop firewalld.service#设置开机不启动防火墙 systemctl disable firewalld5) 关闭selinx 在节点/etc/selinux/config中将SELINUXenforcing改成SELINUXdisabled即可。 6) 设置自动更新时间 后续基于该节点搭建HDFS时需要各节点的时间同步可以通过设置各个节点自动更新时间来保证各个节点时间一致具体按照以下操作来执行。 a. 修改本地时区及ntp服务 yum -y install ntp rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime /usr/sbin/ntpdate -u pool.ntp.orgb. 自动同步时间 设置定时任务每10分钟同步一次配置/etc/crontab文件实现自动执行任务。建议直接crontab -e 来写入定时任务。使用crontab -l 查看当前用户定时任务。 #各个节点执行 crontab -e 写入以下内容 */10 * * * * /usr/sbin/ntpdate -u pool.ntp.org /dev/null 21#重启定时任务 service crond restart#查看日期 date7) 设置节点ip映射 在node1~node6节点的/etc/hosts文件中加入node6节点的映射配置所有节点IP映射信息。进入每台节点的/etc/hosts下修改hosts文件vim /etc/hosts: 192.168.179.4 node1 192.168.179.5 node2 192.168.179.6 node3 192.168.179.7 node4 192.168.179.8 node5 192.168.179.9 node68) 配置各个节点之间免密 目前node1~node5节点进行了互相免密只需要操作node6节点与其他节点进行免密即可。 a. 创建.ssh目录 node6节点上执行如下命令在节点的“~”目录下创建.ssh目录注意不要手动创建这个目录因为有权限问题。 cd ~ ssh localhost #这里会需要输入节点密码# exitb. 创建公钥和私钥 在node6节点上执行如下命令给当前节点创建公钥和私钥 ssh-keygen -t rsa -P -f ~/.ssh/id_rsanode6节点执行如下命令做到node6节点与其他节点免密 [rootnode6 ~]# ssh-copy-id node1 [rootnode6 ~]# ssh-copy-id node2 [rootnode6 ~]# ssh-copy-id node3 [rootnode6 ~]# ssh-copy-id node4 [rootnode6 ~]# ssh-copy-id node5 [rootnode6 ~]# ssh-copy-id node6分别在node1~node5节点执行如下命令做到各个节点到node6免密 [rootnode1 ~]# ssh-copy-id node6 [rootnode2 ~]# ssh-copy-id node6 [rootnode3 ~]# ssh-copy-id node6 [rootnode4 ~]# ssh-copy-id node6 [rootnode5 ~]# ssh-copy-id node69) node6节点安装jdk 在node6节点上安装JDK8。 a. 在node6节点创建/software目录上传并安装jdk8 rpm包 rpm -ivh /software/jdk-8u181-linux-x64.rpm以上命令执行完成后会在每台节点的/user/java下安装jdk8。 b. 配置jdk环境变量 在node6节点上配置jdk的环境变量 export JAVA_HOME/usr/java/jdk1.8.0_181-amd64 export PATH$JAVA_HOME/bin:$PATH export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar以上配置完成后最后执行“source /etc/profile”使配置生效。 2.1 动态扩容DataNode 按照如下步骤操作即可。 1) 将node1节点配置好的hadoop 安装包发送到node6节点 [rootnode1 ~]# cd /software/ [rootnode1 software]# scp -r ./hadoop-3.3.6 node6:pwd2) node6节点配置Hadoop环境变量 [rootnode6 software]# vim /etc/profile export HADOOP_HOME/software/hadoop-3.3.6/ export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:#使配置生效 source /etc/profile3) node6节点启动DataNode 在node6节点执行如下命令启动DataNode [rootnode6 ~]# hdfs --daemon start datanode4) 在各个节点白名单中加入node6 在node1~node6各个节点 $HADOOP_HOME/etc/whitelist白名单中加入node6。 各个节点whitelist 内容如下 node3 node4 node5 node65) 刷新NameNode 在任意NameNode节点执行如下命令重新刷新HDFS 节点 #在任意NameNode节点执行如下命令最好保证所有NameNode进程存在 [rootnode1 hadoop]# hdfs dfsadmin -refreshNodes Refresh nodes successful for node1/192.168.179.4:8020 Refresh nodes successful for node2/192.168.179.5:8020 Refresh nodes successful for node3/192.168.179.6:8020执行如上命令后可以通过HDFS WebUI看到node6 DataNode节点加入了集群中 测试数据上传 在node6节点创建HDFS目录 /test2 并将data.txt上传到该目录下 #创建/test目录 [rootnode6 ~]# hdfs dfs -mkdir /test2#上传data.txt到/test目录下 [rootnode6 ~]# hdfs dfs -put ./data.txt /test2/通过WebUI我们发现刚上传的data.txt 副本分布如下优先将数据副本存储在HDFS客户端node6上集群DataNode动态扩容完成。 2.1.1DataNode负载均衡  向HDFS集群中加入新的DataNode后可能会导致新DataNode节点上数据分布少其他DataNode节点数据分布多这样导致集群整体负载不均衡我们可以通过命令脚本对HDFS中数据进行负载均衡操作。 #启动HDFS负载均衡操作-threadshold 表示各个节点磁盘使用空间相差不超过5% [rootnode6 ~]# hdfs balancer -threshold 5注意建议在负载不高的一台节点上执行数据负载均衡操作。 2.2HDFS动态缩容 我们希望将一个DataNode节点在HDFS中“退役”下线HDFS也同样支持动态将DataNode下线这就是HDFS动态缩容。 这里将node6 DataNode进行下线演示可以按照如下步骤操作即可。 1) 配置各个节点的黑白名单 在各个Hadoop节点上$HADOOP_HOME/etc/hadoop路径下配置blacklist和whitelist将node6节点从whitelist中删除加入到blacklist中。 blacklist: node6whitelist: node3 node4 node5将以上blacklist和whitelist分发到其他Hadoop节点上。 2) 刷新NameNode 在任意NameNode节点执行如下命令重新刷新HDFS 节点 #在任意NameNode节点执行如下命令最好保证所有NameNode进程存在 [rootnode1 hadoop]# hdfs dfsadmin -refreshNodes Refresh nodes successful for node1/192.168.179.4:8020 Refresh nodes successful for node2/192.168.179.5:8020 Refresh nodes successful for node3/192.168.179.6:8020执行如上命令后可以通过HDFS WebUI看到node6 DataNode节点在集群中下线 3.HDFS数据迁移  HDFS数据迁移是指将Hadoop分布式文件系统HDFS中的数据从一个位置或一个集群移动到另一个位置或另一个集群的过程。数据迁移通常是一种大规模的操作可能涉及跨机房、跨集群并且需要考虑到数据迁移规模的不同导致整个数据迁移的周期也会有所不同。 在HDFS中数据迁移通常用于以下几种场景 冷热集群数据同步、分类存储将冷热数据从一个集群移动到另一个集群以便更有效地管理和存储不同类型的数据。例如将不经常访问的冷数据移动到成本更低的存储层而将热数据保留在性能更高的存储层上。集群数据整体搬迁当公司的业务发展导致当前服务器资源紧张时可能需要将整个HDFS集群的数据迁移到另一个机房或集群以利用更多资源或降低成本。数据的准实时同步确保数据的双备份可用性即将数据实时同步到另一个集群以便在主集群发生故障时能够无缝切换到备份集群。 进行HDFS 数据迁移时我们可以使用DistCp工具DistCp分布式拷贝是Apache Hadoop生态系统中的一个工具用于在Hadoop分布式文件系统HDFS之间或者同一HDFS集群内部进行数据复制和迁移。DistCp底层使用MapReduce进行数据文件复制迁移所以执行DistCp命令后会在对应集群中生成MR Job。 搭建HDFS伪分布式集群做迁移的机器 下面在node6节点上搭建HDFS 伪分布式集群与现有的HDFS集群进行数据迁移同步来进行HDFS数据迁移测试。 1) 下载安装包并解压 我们安装Hadoop3.3.6版本搭建HDFS集群前首先需要在官网下载安装包地址如下Apache Hadoop。下载完成安装包后上传到node6节点的/software目录下并解压到opt目录下。 #将下载好的hadoop安装包上传到node6节点上 [rootnode6 ~]# ls /software/ hadoop-3.3.6.tar.gz#将安装包解压到/opt目录下 [rootnode6 ~]# cd /software/ [rootnode6 software]# tar -zxvf ./hadoop-3.3.6.tar.gz -C /opt2) 在node6节点上配置Hadoop的环境变量 [rootnode6 software]# vim /etc/profile export HADOOP_HOME/software/hadoop-3.3.6/ export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:#使配置生效 source /etc/profile3) 配置hadoop-env.sh 启动伪分布式HDFS集群时会判断$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件中是否配置JAVA_HOME所以需要在hadoop-env.sh文件加入以下配置大概在54行有默认注释配置的JAVA_HOME: #vim /opt/hadoop-3.3.6/etc/hadoop/hadoop-env.sh export JAVA_HOME/usr/java/jdk1.8.0_181-amd64/4) 配置core-site.xml 进入 $HADOOP_HOME/etc/hadoop路径下修改core-site.xml文件指定HDFS集群数据访问地址及集群数据存放路径。 #vim /opt/hadoop-3.3.6/etc/hadoop/core-site.xml configuration!-- 指定NameNode的地址 --propertynamefs.defaultFS/namevaluehdfs://node6:8020/value/property!-- 指定 Hadoop 数据存放的路径 --propertynamehadoop.tmp.dir/namevalue/opt/data/local_hadoop/value/property /configuration注意如果node6节点配置启动过HDFS需要将“hadoop.tmp.dir”配置的目录清空。 5) 配置hdfs-site.xml 进入 $HADOOP_HOME/etc/hadoop路径下修改hdfs-site.xml文件指定NameNode和SecondaryNameNode节点和端口。 #vim /opt/hadoop-3.3.6/etc/hadoop/hdfs-site.xml configuration!-- 指定block副本数--propertynamedfs.replication/namevalue1/value/property!-- NameNode WebUI访问地址--propertynamedfs.namenode.http-address/namevaluenode6:9870/value/property!-- SecondaryNameNode WebUI访问地址--propertynamedfs.namenode.secondary.http-address/namevaluenode6:9868/value/property /configuration6) 配置workers指定DataNode节点 进入 $HADOOP_HOME/etc/hadoop路径下修改workers配置文件加入以下内容 #vim /opt/hadoop-3.3.6/etc/hadoop/workers node67) 配置start-dfs.shstop-dfs.sh 进入 $HADOOP_HOME/sbin路径下在start-dfs.sh和stop-dfs.sh文件顶部添加操作HDFS的用户为root防止启动错误。 #分别在start-dfs.sh 和stop-dfs.sh文件顶部添加如下内容 HDFS_NAMENODE_USERroot HDFS_DATANODE_USERroot HDFS_SECONDARYNAMENODE_USERroot8) 格式化并启动HDFS集群 HDFS完全分布式集群搭建完成后首次使用需要进行格式化在NameNode节点node6上执行如下命令 #在node6节点上格式化集群 [rootnode6 ~]# hdfs namenode -format格式化集群完成后就可以在node6节点上执行如下命令启动集群 #在node6节点上启动集群 [rootnode6 ~]# start-dfs.sh至此Hadoop完全分布式搭建完成可以浏览器访问HDFS WebUI界面NameNode WebUI访问地址为https://node6:9870需要在window中配置hosts。 3.1DistCp集群间数据迁移  DistCp命令的基本用法如下 $ hadoop distcp OPTIONS [source_path...] target_path 其中OPTIONS主要参数有如下 -update拷贝数据时只拷贝相对于源端目标端不存在的文件数据或源端修改的数据。-delete删除相对于源端目标端多出来的文件。 下面对hdfs://node1:8020集群A集群中的数据迁移到hdfs://node6:8020集群B集群中进行测试。 1) 将A集群中 test目录下的数据迁移到B集群 #在A集群中执行迁移命令 [rootnode1 ~]# hadoop distcp hdfs://node1:8020/test/ hdfs://node6:8020/test#在B集群中查询数据 [rootnode6 ~]# hdfs dfs -cat /test/data.txt 1,zs 2,ls 3,ww 4,ml 5,tq2) 测试distcp -update参数 替换A集群中/test/data.txt文件向data.txt文件写入新的数据如下 1,zs 2,ls 3,ww 4,ml 5,tq 6,x1 7,x2A集群中替换HDFS中/test/data.txt文件并通过distcp 命令将追加的数据同步到B集群 [rootnode6 sbin]# hdfs dfs -rm /test/data.txt#再次上传 [rootnode1 ~]# hdfs dfs -put ./data.txt /test/data.txt#同步新的文件数据 [rootnode1 ~]# hadoop distcp -update hdfs://node1:8020/test/ hdfs://node6:8020/test3) 测试distcp -delete参数 向B集群HDFS集群/test目录下上传a.txt 文件内容随意如下 [rootnode6 ~]# hdfs dfs -put ./a.txt /test/ [rootnode6 ~]# hdfs dfs -ls /test /test/a.txt /test/data.txt使用distcp命令指定-delete参数删除B集群指定目录与源端A集群相应目录中相比多出的数据文件delete参数需要结合update参数一起使用 [rootnode1 ~]# hadoop distcp -update -delete hdfs://node1:8020/test/ hdfs://node6:8020/test以上命令执行后B集群中创建的/test/a.txt文件被删除。 4) 如果在同一个集群中使用distcp命令相当于集群内数据复制备份 #在A集群中执行如下命令可以将test目录下数据备份到back目录下 [rootnode1 ~]# hadoop distcp /test/ /back#检查数据 [rootnode1 ~]# hdfs dfs -ls /back /back/data.txt
http://www.hkea.cn/news/14561415/

相关文章:

  • 网站建设买什么书淘宝联盟个人网站怎么做
  • 北京网站建设北京文化馆网站建设方案
  • html网站支付链接怎么做网站开发主要职责
  • 辽宁省工程造价信息网seo优化关键词排名
  • 佛山网站建设流程福州网站建设平台
  • 同源大厦 网站建设丹东seo优化
  • 免费视频网站怎么赚钱制作照片
  • 站长素材网静宁网站建设
  • 东莞市房管局官方网站中国纪检监察报社地址
  • 网站建设费用是多少钱企查查企业信息
  • 外贸网站商城建设vue vs wordpress
  • 枣庄手机网站建设直播软件apk
  • 钢结构网站工作室是个体户还是公司
  • 山东青岛网站建设seo优化wordpress首页置顶推荐问题
  • 教做flash的网站wordpress 表白主题
  • 无锡公司建立网站苏州展厅设计公司排名
  • 3000元网站建设三年南宁建设职业技术学院招聘信息网站
  • 苏州知名高端网站建设公司网站推广哪种方法最
  • 网站前端怎么做方法做网站比较好的公司有哪些
  • 刷链接浏览量网站友链提交入口
  • 黑龙江省建设厅网站东莞阳光网论坛
  • 哈尔滨多语言网站建设涪陵区小城镇建设管理处网站
  • 和印度做外贸的网站网页制作团队
  • 做闪图的网站五大建设是指什么
  • 多城市分站站群cms广西建设官方网站
  • 建设校园网站必要性国内专门做酒的网站有哪些
  • 影响网站pr的因素有哪些有没有专门做特产的网站
  • 佛山教育平台网站建设简述网站建设在作用
  • 北京上海网站建设公司朋友圈网络营销
  • 二 网站建设的重要性网站开发技术发展史