ToB企服应用市场:ToB评测及商务社交产业平台

标题: 在阿里云和腾讯云的轻量应用服务器上搭建Hadoop集群 [打印本页]

作者: 缠丝猫    时间: 2023-9-25 04:54
标题: 在阿里云和腾讯云的轻量应用服务器上搭建Hadoop集群
引入

本文在两台2核2g的云服务器上搭建了Hadoop集群,两台云服务器分别是阿里云(hjm)和腾讯云(gyt),集群部署规划如下:
hjm
gytHDFSNameNode\SecondaryNameNode\DataNodeDataNodeYARNResourceManager\NodeManagerNodeManager经实验,目前可以正常实现文件上传下载,但跑mapreduce程序还出现服务器资源不够的情况
搭建过程

新增用户
  1. useradd hujinming
  2. passwd hujinming
复制代码
配置用户sudo权限
  1. vim /etc/sudoers
复制代码
  1. ## Allow root to run any commands anywhere
  2. root ALL=(ALL) ALL
  3. ## Allows people in group wheel to run all commands
  4. %wheel ALL=(ALL) ALL
复制代码
下面新增一行
  1. hujinming ALL=(ALL) NOPASSWD:ALL
复制代码
创建目录并更改权限

在/opt 目录下创建 module、software 文件夹
  1. mkdir /opt/module
  2. mkdir /opt/software
复制代码
切换到root用户下,修改 module、software 文件夹的所有者和所属组均为hujinming用户
  1. chown hujinming:hujinming /opt/module
  2. chown hujinming:hujinming /opt/software
复制代码
查看 module、software 文件夹的所有者和所属组
  1. ll
复制代码
安装JDK

  1. tar -zxvf jdk-8u212-linux.x64.tar.gz -C /opt/module/
复制代码
安装hadoop

服务器IP映射

  1. vim /etc/hostname
复制代码
分别把两台服务器的名字改成hjm和gyt,这里以gyt举例,直接在hostname文件上输入
  1. gyt
复制代码
  1. vim /etc/hosts
复制代码
在linux中键入ifconfig命令可以查看内网ip。在两台服务器中,填写自己的私网,访问别人的填写公网,这里以gyt为例,gyt的公网IP是175.178.236.48,内网IP是10.0.12.1。这里要注意一点,阿里云在hosts文件中已经将本地IP映射成了一串英文,把这行信息删掉再进行上面的操作
  1. 47.115.207.108 hjm
  2. 10.0.12.1 gyt
复制代码
ssh免密登录

分别要配置4种免密登录:
注意切换对应用户操作。先cd到~/.ssh,生成公钥和私钥
  1. ssh-keygen -t rsa
复制代码
这里以gyt -> hjm或hjm -> hjm为例:
  1. ssh-copy-id hjm
复制代码
修改配置文件

cd到$HADOOP_HOME/etc/hadoop目录
core-site.xml
  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://hjm:8020</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/opt/module/hadoop-3.1.3/data</value>
  9. </property>
  10. <property>
  11. <name>hadoop.http.staticuser.user</name>
  12. <value>hujinming</value>
  13. </property>
  14. </configuration>
复制代码
hdfs-site.xml
  1. <configuration>
  2. <property>
  3. <name>dfs.namenode.http-address</name>
  4. <value>hjm:9870</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.secondary.http-address</name>
  8. <value>hjm:9868</value>
  9. </property>
  10. </configuration>
复制代码
yarn-site.xml
  1. <configuration>
  2. <property>
  3. <name>yarn.nodemanager.aux-services</name>
  4. <value>mapreduce_shuffle</value>
  5. </property>
  6. <property>
  7. <name>yarn.resourcemanager.hostname</name>
  8. <value>hjm</value>
  9. </property>
  10. <property>
  11. <name>yarn.nodemanager.env-whitelist</name>
  12. <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
  13. NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
  14. RED_HOME</value>
  15. </property>
  16. </configuration>
复制代码
mapred-site.xml
  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>
复制代码
workers
  1. hjm
  2. gyt
复制代码
去服务器上启动对应端口

问题与解决

​        解决方法:
​        在两台服务器的/etc/hosts中,填写自己的私网,访问别人的填写公网
​        解决方法:
​        把所有节点logs和data删掉,重新格式化namenode,在hjm机子上,执行下面命令:
  1. hdfs namenode -format
复制代码
​        解决方法:改windows下面的主机名映射
​        解决方法:在两台服务器的core-site.xml加入下面代码
  1.         
  2.         <property>
  3.             <name>hadoop.http.filter.initializers</name>
  4.             <value>org.apache.hadoop.security.HttpCrossOriginFilterInitializer</value>
  5.         </property>
  6.         <property>
  7.             <name>hadoop.http.cross-origin.enabled</name>
  8.             <value>true</value>
  9.         </property>
  10.         <property>
  11.             <name>hadoop.http.cross-origin.allowed-origins</name>
  12.             <value>*</value>
  13.         </property>
  14.         <property>
  15.             <name>hadoop.http.cross-origin.allowed-methods</name>
  16.             <value>*</value>
  17.         </property>
  18.         <property>
  19.             <name>hadoop.http.cross-origin.allowed-headers</name>
  20.             <value>X-Requested-With,Content-Type,Accept,Origin</value>
  21.         </property>
  22.         <property>
  23.             <name>hadoop.http.cross-origin.max-age</name>
  24.             <value>1800</value>
  25.         </property>
复制代码
​        解决方法:还得看DataNode的数量。因为目前只有2台设备,最多也就2个副本,HDFS默认是3个副本,只有节点数的增加到10台时,副本数才能达到10。详细请看https://www.yii666.com/article/664023.html
​         解决方法:在master主机的slaves文件中删除localhost即可。详细请看https://blog.csdn.net/Mr_ZNC/article/details/80700652
​        解决方法:暴露服务器所有端口给对方

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4