Hadoop3.1.1完全分布式集群部署记录

一、前言

步骤一:通过VMware搭建分布式集群基础环境

步骤二:centos 7搭建java环境

步骤三:hadoop-3.1.1.tar准备

二、创建hadoop账号

1.添加用户
useradd 选项 用户名
其中各选项含义如下:
代码:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
2.删除用户
userdel 选项 用户名
常用的选项是-r,它的作用是把用户的主目录一起删除。
3.修改用户
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:
代码:
-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
4.用户口令管理
passwd 选项 用户名
可使用的选项:
代码:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
5.添加用户组
groupadd 选项 用户组

可以使用的选项有:
代码:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
6.删除用户组
groupdel 用户组
7.修改用户组
groupmod 选项 用户组

常用的选项有:
代码:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
8.切换用户组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组
9.分配权限
chown -R hadoop:hadoop /usr/hadoop/

让普通用户拥有root的权限
1.root登录
2.adduser 用户名
3.passwd 用户名
确定密码
4.修改/etc/passwd即可,把用户名的ID和ID组修改成0。

三、环境准备

服务器参数
hostnameip说明
master192.168.5.100master
s1192.168.5.101node1
s2192.168.5.102node2
s3192.168.5.103node3
在四台服务器上执行以下操作:
#添加host
[root@node1 ~] vim /etc/hosts
192.168.5.100 master
192.168.5.101 s1
192.168.5.102 s2
192.168.5.103 s3

#执行以下命令关闭防火墙
[root@node1 ~]systemctl stop firewalld && systemctl disable firewalld
[root@node1 ~]setenforce 0

#将SELINUX的值改成disabled
[root@node1 ~]vim /etc/selinux/config

SELINUX=disabled

#重启服务器
[root@node1 ~]reboot

 

三、SSH免密登录

//生成私钥和公钥,若是不想回车,可在上面代码末尾加上,-P ""
[hadoop@node1 ~]$ ssh-keygen -t rsa
//处理

方法一:
将node1的公钥拷贝到node2
node1上(小心别把node2的id_rsa.pub覆盖掉)
[hadoop@node1 .ssh]$ scp -p id_rsa.pub hadoop@node2:~/.ssh/id_rsa.pub1
然后,node2将公钥加入自身认证
在node2上:
[hadoop@node1.ssh]$ cat id_rsa.pub1 > authorized_key
验证查看文件authorized_key中是否有id_rsa.pub1文件的内容

方法二:
直接把自己密钥拷贝到需要免密的机器上:
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@ip
将密钥文件直接拷贝到指定用户名、ip。输入密码后,下次你当前用户执行ssh到刚刚指定的用户名ip就不用再输入密码了。

//自行验证
[hadoop@node1 .ssh]$ ssh hadoop@node2

四、hadoop环境搭建

1.安装hadoop

[root@node1 opt]# cd /opt/ & mkdir hadoop && cd hadoop
#解压hadoop-3.1.1.tar.gz
[root@node1 hadoop]# tar -zxvf hadoop-3.1.1.tar.gz

#修改环境变量
[root@node1 hadoop]# vim /etc/profile

# 在最后下添加
export HADOOP_HOME=/opt/hadoop/hadoop-3.1.1
export PATH=$PATH:$HADOOP_HOME/bin


# 刷新配置文件
[root@node1 hadoop]# source /etc/profile

2.修改配置文件

这些配置文件全部位于 /opt/hadoop/hadoop-3.1.1/etc/hadoop 文件夹下

hadoop-env.sh

#The java implementation to use. By default, this environment

# variable is REQUIRED on ALL platforms except OS X!
# export JAVA_HOME=
export JAVA_HOME=/opt/java/jdk1.8.0_172

core-site.xml

<configuration>
    <!-- 指定HDFS老大(namenode)的通信地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/data/tmp</value>
    </property>
</configuration>

hdfs-site.xml

<configuration>

    <!-- 设置namenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>

    <!-- 设置secondarynamenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>s1:50090</value>
    </property>

    <!-- 设置namenode存放的路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop/data/name</value>
    </property>

    <!-- 设置hdfs副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <!-- 设置datanode存放的路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/data/datanode</value>
    </property>
    
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

mapred-site.xml

<configuration>
    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>  
        <name>mapreduce.application.classpath</name>  
        <value>  
        /opt/hadoop/hadoop-3.1.1/etc/hadoop,  
        /opt/hadoop/hadoop-3.1.1/share/hadoop/common/*,  
        /opt/hadoop/hadoop-3.1.1/share/hadoop/common/lib/*,  
        /opt/hadoop/hadoop-3.1.1/share/hadoop/hdfs/*,  
        /opt/hadoop/hadoop-3.1.1/share/hadoop/hdfs/lib/*,  
        /opt/hadoop/hadoop-3.1.1/share/hadoop/mapreduce/*,  
        /opt/hadoop/hadoop-3.1.1/share/hadoop/mapreduce/lib/*,  
        /opt/hadoop/hadoop-3.1.1/share/hadoop/yarn/*,  
        /opt/hadoop/hadoop-3.1.1/share/hadoop/yarn/lib/*  
        </value>  
    </property>
</configuration>

yarn-site.xml

<configuration>
    <property>  
        <name>yarn.nodemanager.aux-services</name>  
        <value>mapreduce_shuffle</value>  
    </property>  
    <property>  
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  
        <value>org.apache.hadoop.mapred.ShuffleHandle</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.resource-tracker.address</name>  
        <value>master:8025</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.scheduler.address</name>  
        <value>master:8030</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.address</name>  
        <value>master:8040</value>  
    </property>  
</configuration>

sbin/start-dfs.sh sbin/stop-dfs.sh

HDFS_DATANODE_USER=root 
HADOOP_SECURE_DN_USER=hdfs 
HDFS_NAMENODE_USER=root 
HDFS_SECONDARYNAMENODE_USER=root 

sbin/start-yarn.sh sbin/stop-yarn.sh

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn 
YARN_NODEMANAGER_USER=root

masters

新建一个masters的文件,这里指定的是secondary namenode 的主机

[root@node1 hadoop]# touch /opt/hadoop/hadoop-3.1.1/etc/hadoop/masters
[root@node1 hadoop]# vim /opt/hadoop/hadoop-3.1.1/etc/hadoop/masters
#添加
s1

workers

[root@node1 hadoop]# touch /opt/hadoop/hadoop-3.1.0/etc/hadoop/slaves
[root@node1 hadoop]# vim /opt/hadoop/hadoop-3.1.0/etc/hadoop/slaves
#添加
s1
s2
s3

创建文件夹

[root@node1 hadoop]# mkdir -p /opt/hadoop/data/tmp
[root@node1 hadoop]# mkdir -p /opt/hadoop/data/name
[root@node1 hadoop]# mkdir -p /opt/hadoop/data/datanode

复制到其他主机

[root@node1 opt]# scp -r /opt/hadoop spark.node2:/opt/
[root@node1 opt]# scp -r /opt/hadoop spark.node3:/opt/

修改s1 、s2、s3 环境变量

#修改环境变量
[root@node2 hadoop]# vim /etc/profile

# 在最后下添加
export HADOOP_HOME=/opt/hadoop/hadoop-3.1.1
export PATH=$PATH:$HADOOP_HOME/bin


# 刷新配置文件
[root@node2 hadoop]# source /etc/profile

3.启动 第一次启动得格式化

[root@node1 opt]#  /opt/hadoop/hadoop-3.1.1/bin/hdfs namenode -format

启动

[root@node1 opt]#  /opt/hadoop/hadoop-3.1.1/sbin/start-all.sh

4.验证

jps查看进程:
[hadoop@master ~]$ jps
1456 SecondaryNameNode
1393 DataNode
1656 Jps
1566 NodeManager

[hadoop@s1 ~]$ jps
1553 Jps
1367 DataNode
1463 NodeManager

[hadoop@s2 ~]$ jps
1553 Jps
1367 DataNode
1463 NodeManager

[hadoop@s3 ~]$ jps
1553 Jps
1367 DataNode
1463 NodeManager

访问Hadoop的默认端口号为50070。使用以下网址,以获取Hadoop服务在浏览器中。

 

http://localhost:50070
//localhost是你的masterip地址

访问群集的所有应用程序的默认端口号为8088。使用以下URL访问该服务。

http://localhost:8088/
//localhost master主机ip

 

参考:https://my.oschina.net/orrin/blog/1816023

https://blog.csdn.net/m0_37590135/article/details/74275859

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值