1主机名和IP配置

1.1主机名

1.首先使用root用户名和root密码分别登录三台服务器
2.分别在三台虚拟机上执行命令:
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
3.分别在三台服务器上执行logout

1.2 IP设置

systemctl restart network

2配置免密登录

2.1 生成公钥和私钥

使用此命令:ssh-keygen -t rsa 分别在三台机器中都执行一遍,这里只在node1上做演示,其他两台机器也需要执行此命令。
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第1张图片

2.2 配置hosts文件

hosts文件中配置三台机器ip和主机名的映射关系,其他两台机器按照相同的方式操作:vi /etc/hosts
特别注意的是如果在云服务器中配置,本节点的IP地址一定要配置内网地址

127.17.0.17是服务器node1的内网地址
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第2张图片
127.17.0.7是服务器node2的内网地址
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第3张图片
127.17.0.8是服务器node3的内网地址
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第4张图片

2.3 拷贝公钥文件

(1)将node1的公钥拷贝到node2,node3上
(2)将node2的公钥拷贝到node1,node3上
(3)将node3的公钥拷贝到node1,node2上

以下以node1为例执行秘钥复制命令:ssh-copy-id -i 主机名
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第5张图片

2.4验证免密登录配置

确保每一个服务器到其他服务器都可以免密登录
ssh node#
2.5添加本地认证公钥到认证文件中
cd ~
cd .ssh/
cat id_rsa.pub >> authorized_keys

Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第6张图片

3安装Hadoop

3.1创建hadoop用户组和hadoop用户

groupadd hadoop
useradd -g hadoop hadoop
id hadoop
设置密码:passwd hadoop
chown -R hadoop:hadoop /home/hadoop/
chmod -R 755 /home/hadoop/
#把root用户的环境变量文件复制并覆盖hadoop用户下的.bash_profile
cp .bash_profile /home/hadoop/

Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第7张图片
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第8张图片

3.2Hadoop用户进行免密登录

*su - hadoop
source.bash_profile
ssh-keygen -t rsa
cd ~
chmod -R 755 .ssh/
chmod 644

chmod 600 id_rsa
chmod 600 id_rsa.pub
将node1的hadoop用户公钥拷贝到node2,node3上
将node2的hadoop用户公钥拷贝到node1,node3上
将node3的hadoop用户公钥拷贝到node1,node2上
ssh-copy-id -i 主机名
验证免密登录配置:ssh 主机名,确保每台每台服务器的hadoop用户都可以免密登录其他的服务器。
添加本地认证公钥到认证文件中,对每台服务器进行如下操作:
cat id_rsa.pub >> authorized_keys**

3.3配置Hadoop

(1)创建hadoop安装目录: mkdir -p /opt/bigdata
(2)解压hadoop-3.1.2.tar.gz
tar -xzvf hadoop-3.1.2.tar.gz -C /opt/bigdata/
(3)配置Hadoop环境变量
vi .bash_profile

配置详细信息:

JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
HADOOP_HOME=/opt/bigdata/hadoop-3.1.2
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME
export HADOOP_HOME
export PATH

Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第9张图片
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第10张图片
(4)验证Hadoop环境变量
source .bash_profile
hadoop version

显示出hadoop版本信息表示安装和环境变量成功.
在这里插入图片描述
hadoop用户下也需要按照root用户配置环境变量的方式操作一下
(5)配置hadoop-env.sh
这个文件只需要配置JAVA_HOME的值即可,在文件中找到export JAVA_HOME字眼的位置,删除最前面的#
cd /opt/bigdata/hadoop-3.1.2/etc/hadoop/
vi hadoop-env.sh
详细配置:
export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
(6)配置core-site.xml
cd /opt/bigdata/hadoop-3.1.2/etc/hadoop/
vi core-site.xml



    
        fs.defaultFS
      hdfs://node1:9000
    


        io.file.buffer.size
      131072
 

     
        hadoop.tmp.dir
      /opt/bigdata/hadoop-3.1.2/tmpdata
 

(7)配置hdfs-site.xml
vi hdfs-site.xml


  
  
    dfs.namenode.name.dir
    /opt/bigdata/hadoop-3.1.2/hadoop/hdfs/name/
  
  
  
    dfs.blocksize
    268435456
  
  
  
    dfs.namenode.handler.count
    100
  
  
  
    dfs.datanode.data.dir
    /opt/bigdata/hadoop-3.1.2/hadoop/hdfs/data/
  
  
  
    dfs.replication
    3
  

(8)配置mapred-site.xml
配置/opt/bigdata/hadoop-3.1.2/etc/hadoop/目录下的mapred-site.xml
vi mapred-site.xml



  
    mapreduce.framework.name
    yarn
  
  
    yarn.app.mapreduce.am.env
    HADOOP_MAPRED_HOME=${HADOOP_HOME}
  
  
    mapreduce.map.env
    HADOOP_MAPRED_HOME=${HADOOP_HOME}
  
  
    mapreduce.reduce.env
    HADOOP_MAPRED_HOME=${HADOOP_HOME}
  
  
    mapreduce.application.classpath
    $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*,
    $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*
  

(9)配置yarn-site.xml
配置/opt/bigdata/hadoop-3.1.2/etc/hadoop/目录下的yarn-site.xml
vi yarn-site.xml



   
     yarn.resourcemanager.hostname
     node1
   
   
     yarn.nodemanager.aux-services
     mapreduce_shuffle
   
   
     yarn.resourcemanager.address
     node1:18040
   
           
     yarn.resourcemanager.scheduler.address
     node1:18030
   
   
     yarn.resourcemanager.resource-tracker.address
     node1:18025
   
           
     yarn.resourcemanager.admin.address
     node1:18141
   
           
     yarn.resourcemanager.webapp.address
     node1:18088
   

(10)编辑works
配置/opt/bigdata/hadoop-3.1.2/etc/hadoop/目录下的works
vi works
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第11张图片
(11)远程复制hadoop到集群机器
进入到root用户家目录下:cd ~
使用scp远程拷贝命令将root用户的环境变量配置文件复制到node2
scp .bash_profile root@node2:~
使用scp远程拷贝命令将root用户的环境变量配置文件复制到node3
scp .bash_profile root@node3:~
进入进入到hadoop的share目录下
cd /opt/bigdata/hadoop-3.1.2/share/
删除doc目录,这个目录存放的是用户手册,比较大,等会儿下面进行远程复制的时候时间比较长,删除后节约复制时间
rm -rf doc/
scp -r /opt root@node2:/
scp -r /opt root@node3:/

3.3.1使集群所有机器环境变量生效

在node2,node3的root用户家目录下使环境变量生效
node2节点如下操作:
cd ~
source .bash_profile
hadoop version

node3节点同样操作

3.3.2修改hadoop用户hadoop安装目录的权限

node2,node3也需要进行如下操作
node1登陆root用户
su root
chown -R hadoop:hadoop /opt/
chmod -R 755 /opt/
chmod -R g+w /opt/
chmod -R o+w /opt/

Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第12张图片

3.4格式化hadoop

su - hadoop
hdfs namenode -format
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第13张图片

3.5启动集群

start-all.sh
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第14张图片
在浏览器地址栏中输入:http://192.168.200.11:9870查看namenode的web界面
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第15张图片

3.6运行mapreduce程序

hdfs dfs -ls /
hdfs dfs -mkdir /test
hdfs dfs -ls /
touch words
vi words
hdfs dfs -put words /test
hdfs dfs -ls -r /test

Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第16张图片

**执行:hadoop jar /opt/bigdata/hadoop-3.1.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-
3.1.2.jar wordcount /test/words /test/output
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第17张图片
**
执行:hdfs dfs -text /test/output/part-r-00000
Hadoop学习之路(1)腾讯云搭建Hadoop3集群_第18张图片
本文使用的是hadoop3.1.3
链接:https://pan.baidu.com/s/1n32rpv-GAjvt7hFZkOnWhw
提取码:2jzu