第四课 云实验配置分布式模式

第四课 云实验配置分布式模式 Hadoop1Hadoop2Hadoop3Hadoop4NameNodeDataNodeDataNodeDataNodeSecondaryNameNodeNodeManagerNodeManagerResourceManagerNodeManagerNodeManager当Hadoop采用分布式模式部署和运行时存储采用分布式文件系统HDFS。而且HDFS的名称节点NameNode1个和数据节点DataNode多个SecondaryNameNode1个尽量不跟NameNode放在同一个服务器上位于不同的机器上。这时数据就可以分布到多个节点上不同数据节点上的数据计算可以并行执行这使得MapReduce分布式计算能力才能真正发挥作用。YarnResource Manager1个很消耗内存尽量不要和NameNodeSecondaryNameNode配置在同一台机器上NodeManager多个安全拷贝1.从102服务器上将本服务器的文件推给103scp -r jdk1.8.0__212/ lotushadoop103:/opt/module2.在103服务器上操作将102的文件拿过来scp -r lotushadoop102:/opt/module/jdk1.8.0__212/ ./同理Hadoop也可以这么操作scp -r lotushadoop102:/opt/module/hadoop-3.1.3/ ./3.在103服务器上将102的文件拷贝到104scp -r lotushadoop102:/opt/module/* lotushadoop104:/opt/module/本节使用4个节点搭建集群环境1个Master节点和3个Slave节点这4个节点可以看做是4台物理机器。节点的IP地址可以在对应的命令行中使用ifconfig命令查看Hadoop集群的安装配置大致包括以下步骤1选定1个节点作为Master2在Master节点上安装Hadoop并完成配置。3将Master节点上的Hadoop目录复制到其他Slave节点上4在Master节点上开启Hadoop配置hosts文件本次演示中4个节点的ip地址如下1master 172.18.0.22slave1 172.18.0.33slave2 172.18.0.44slave3 172.18.0.5由于我们在docker的启动命令里已经加入了host配置所以检查发现/etc/hosts文件里映射关系齐全则可以略过此步骤。执行如下命令打开并修改master节点中的/etc/hosts文件vim /etc/hosts确保在hosts文件中有如下IP和主机名映射关系172.18.0.2 master 172.18.0.3 slave1 172.18.0.4 slave2 172.18.0.5 slave3上面完成了master节点的配置接下来在3个slave节点中使用同样步骤配置hosts文件。在各个节点上执行如下指令测试节点之间是否已经联通ping master -c 3 ping slave1 -c 3 ping slave2 -c 3 ping slave3 -c 3如果都能连通则配置成功。ping ip地址ICMP协议测试两台计算机之间的连通性OSI第三层配置SSHSecuer Shell安全贝壳协议无密码登录需要让master节点可以SSH无密码登录到各个slave节点上。首先生成master节点的公钥如果之前已经生成过公钥锁必须删除原来的公钥重新生成一次。私钥钥匙具体命令如下cd ~/.ssh #如果没有该目录先执行一次 ssh localhost密码默认为83953588abc rm -f ./id_rsa* #删除之前生成的公钥 ssh-keygen -t rsa #执行该命令后遇到提示信息均按Enter即可生成公钥和私钥ssh-keygen -t rsaknown_hosts记录ssh访问过计算机的公钥id_rsa生成的私钥id_rsa.pub生成的公钥authorized_keys存放授权过的无密登录服务器的公钥为了让master节点能无密码SSH登录到本机需要在master节点上执行如下命令将公钥文件追加到另一个文件authorized_keys中cat ./id_rsa.pub ./authorized_keys完成后可以执行ssh master来验证一下可能会遇到提示信息只要输入yes即可测试成功后执行exit命令返回原来的终端。接下来在master节点上将公钥传输到3个slave节点scp ~/.ssh/id_rsa.pub rootslave1:/root scp ~/.ssh/id_rsa.pub rootslave2:/root scp ~/.ssh/id_rsa.pub rootslave3:/root执行scp复制文件时会要求输入相应的slave的密码默认为83953588abc传输完成后在3个slave节点上将SSH公钥加入授权mkdir -p ~/.ssh #如果slave节点上已存在该目录则先删除该目录再执行该命令 cat ~/id_rsa.pub ~/.ssh/authorized_keys rm -f ~/id_rsa.pubslave1的操作过程如下图所示slave2的操作过程如下图所示slave3的操作过程如下图所示这样就可以在master节点上无密码SSH登录到各个slave节点了。注意由于启动Hadoop集群时master节点需要通过ssh登录自身节点(ssh localhost)为了去掉ssh的交互式认证提示需要在master节点上执行以下命令ssh-keyscan localhost ~/.ssh/known_hosts上述执行过程如下图所示