云服务器配置hadoop完全分布式

centOS7.5+jdk8+hadoop3

vim的一些简单命令

i      ---插入进行修改
esc  ---返回
:wq  ---退出并保存

修改主机名
阿里云-master
腾讯云-worker1
百度云-worker2

hostnamectl set-hostname master
hostnamectl set-hostname worker1
hostnamectl set-hostname worker2

修改host文件

vi /etc/hosts

在阿里云服务器中,编辑/etc/hosts文件:
47.98.xx.xxx master     ---阿里云私网IP地址    主机名
a21.b21.c21.d21 worker1    ---腾讯云公网IP地址    主机名
a21.b21.c21.d21 worker2    ---百度云公网IP地址    主机名

在腾讯云服务器中,编辑/etc/hosts文件:
a11.b11.c11.d11 master    ---阿里云公网IP地址    主机名
a22.b22.c22.d22 worker1   --腾讯云私网IP地址    主机名
a21.b21.c21.d21 worker2    ---百度云公网IP地址    主机名

在百度云服务器中,编辑/etc/hosts文件:
xx.xx.xx.xxx master     ---阿里云公网IP地址    主机名
a21.b21.c21.d21 worker1    ---腾讯云公网IP地址    主机名
a21.b21.c21.d21 worker2    ---百度云私网IP地址    主机名

关闭所有节点的防火墙

sudo systemctl stop firewalld.service # 关闭firewall
sudo systemctl disable firewalld.service # 禁止firewall开机启动

ssh免密码登录

[root@master ~]# ssh-keygen -t rsa # 一路回车即可
[root@master ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
[root@master ~]# chmod 0600 ~/.ssh/authorized_keys
[root@master ~]# scp ~/.ssh/authorized_keys root@worker1:~/.ssh
[root@master ~]# scp ~/.ssh/authorized_keys root@worker2:~/.ssh 

ssh localhost  此时没有密码就能登录
ssh worker1
ssh worker2

image.png

官网下载jdk很慢:
华为有个镜像可以下载:https://repo.huaweicloud.com/java/jdk/
hadoop下载地址
http://mirrors.hust.edu.cn/apache/hadoop/common
下载文件到/home文件夹下,
cd /home

cd /home    进入home文件夹,
tar -zvxf jdk-8u201-linux-x64.tar.gz     解压jdk
mv jdk1.8.0_201 java       重命名解压后的文件夹
tar -zvxf hadoop-3.1.3.tar.gz       解压hadoop
mv hadoop-3.1.3 hadoop
vim /etc/profile  设置环境变量
export JAVA_HOME=/home/java
export HADOOP_HOME=/home/hadoop
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile   是环境变量生效

查看一下Hadoop和Java是不是配置好了

worker1和worker2也用同样的方法配置

$HADOOP_HOME/etc/hadoop/目录下
配置hadoop-env.sh

export JAVA_HOME=/home/java
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

core-site.xml


   
      fs.default.name
      hdfs://master:9000
      文件系统URL,3个一样
   
   
      io.file.buffer.size
      131072
  
  
       hadoop.tmp.dir
       /var/log/hadoop/tmp
       A base for other temporary directories
   

hdfs-site.xml



      dfs.namenode.secondary.http-address
      worker1:50090
      Secondary名称节点的URL
   

   
      dfs.namenode.name.dir
      file:///opt/hadoop/dfs/name 
      
   
 
      dfs.datanode.data.dir
      file:///opt/hadoop/dfs/data 
      
   

      dfs.replication
      2
      每个文件复制2块
   
 
         dfs.heartbeat.interval
          5

          默认值
   

     dfs.namenode.datanode.registration.ip-hostname-check
     false


yarn-site.xml




        yarn.nodemanager.aux-services
        mapreduce_shuffle




       yarn.resourcemanager.webapp.address
       master:8088


        yarn.nodemanager.env-whitelist
        JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
    


    yarn.resourcemanager.address
    master:8032
  
  
    yarn.resourcemanager.scheduler.address
    master:8030
  
  
    yarn.resourcemanager.resource-tracker.address
    master:8031
  

mapred-site.xml



      mapreduce.framework.name
      yarn
      选择用yarn来管理
   
   

在worker文件加入datanode节点的主机名
在master配好之后,发送到worker1和worker2

scp $HADOOP_HOME/etc/hadoop/* root@worker1:$HADOOP_HOME/etc/hadoop/
scp $HADOOP_HOME/etc/hadoop/* root@worker2:$HADOOP_HOME/etc/hadoop/
hdfs namenode -format
start-all.sh
stop-all.sh

遇到的一个大坑 ,要在云服务器配置安全组,开始只配置了自己笔记本ip加入安全组,可以在本地访问hadoop集群的网站,但是却发现没有datanode几点,查看worker1的日志,一直在重试连接master,看了各种博客,各种说法,格式化多次导致ID不匹配,防火墙没关,检查一遍又一遍,都没有问题,结果发现是worker1和worker2 的IP没有加到master的安全组!!!!!累死我了


image.png

你可能感兴趣的:(云服务器配置hadoop完全分布式)