栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据

Hadoop分布式集群搭建

大数据 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hadoop分布式集群搭建

目录
  • Hadoop3.0 单机伪分布集群安装
    • 准备环境
    • 虚拟机基本环境配置
      • 1、静态ip 配置
      • 2、主机名设置
      • 3、hosts 文件配置
      • 4、ssh 免密码登陆
      • 5、JDK 安装
    • Hadoop 伪分布集群安装
  • Hadoop3.0 分布式集群安装
    • 准备环境:
    • 虚拟机基本环境配置:
    • Hadoop 分布式集群安装:

Hadoop3.0 单机伪分布集群安装 准备环境

1 台linux 虚拟机(Centos7.3 64 位)
ip 为:192.168.48.100
hostname 为:hadoop100

虚拟机基本环境配置 1、静态ip 配置

此处使用的是 NAT 网络模式

[root@hadoop100 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
IPADDR=192.168.48.100
GATEWAY=192.168.48.2
NETMASK=255.255.255.0
DNS1=192.168.48.2
2、主机名设置

主机名的设置可以分为 临时设置 和 永久设置。
临时设置可以立刻生效,但是不能永久保存,虚拟机重启后就会失效,所以还需要结合永久设置。
(1)临时设置主机名

[root@hadoop100 ~]# hostname hadoop100

(2)永久设置主机名

[root@hadoop100 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop100
3、hosts 文件配置

修改/etc/hosts 文件,把ip 和hostname 的映射关系配置进去,此处的ip 需要和你设置的虚拟机实际ip 相同

[root@hadoop100 ~]# vi /etc/hosts
192.168.48.100 hadoop100
4、ssh 免密码登陆

配置ssh 免密码登陆,在这里先实现免密码登陆本机
4.1 生成公钥
注意:执行这个命令以后,需要连续按 几 次回车键回到linux 命令行才表示这个操作执行结束,在按回车的时候不需要输入任何内容。

[root@hadoop100 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
20:d0:89:24:29:1e:c8:50:b3:fb:e0:57:76:94:0c:ea root@hadoop100
The key's randomart image is:
+--[ RSA 2048]----+
|*+=o ..            |
|++.+o. o .       |
|o o o . +         |
| . o . o            |
| o E o S         |
| . o o .            |
| . o                 |
| .                    |
|                      |
+-----------------+

4.2 向本机复制公钥

[root@hadoop100 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

4.3 执行ssh 命令验证免密码登陆是否配置成功,
第一次验证的时候会提示输入yes 或no,直接输入yes 即可,如果输入了yes 之后按回车可以进入就表示免密码登陆配置成功。

[root@hadoop100 ~]# ssh hadoop100
The authenticity of host 'hadoop100(192.168.48.100)' can't be established.
RSA key fingerprint is 64:87:b9:da:46:c1:85:54:49:6d:65:4a:0f:49:8f:58.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hadoop100' (RSA) to the list of known hosts.
Last login: Thu Jul 25 09:11:46 2021 from hadoop100
[root@hadoop100 ~]#
5、JDK 安装

上传jdk安装包到linux 的/data/soft 目录,如果此目录不存在则提前创建
JDK 安装步骤.

Hadoop 伪分布集群安装

下面开始在1 台linux 虚拟机上开始安装Hadoop3 伪分布环境
在这里我们使用hadoop3.2.0 版本,hadoop-3.2.0.tar.gz
1:把hadoop-3.2.0.tar.gz 安装包上传到linux 机器的/data/soft 目录下
2:解压hadoop 安装包

[root@hadoop100 ~]# cd /data/soft
[root@hadoop100 soft]# tar -zxvf hadoop-3.2.0.tar.gz

3:修改hadoop 相关配置文件
#进入配置文件所在目录

[root@hadoop100 soft]# cd hadoop-3.2.0/etc/hadoop/

#首先修改hadoop-env.sh文件,增加环境变量信息

[root@hadoop100 hadoop]# vi hadoop-env.sh
export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop

#修改core-site.xml 文件,注意fs.defaultFS 属性中的主机名需要和你配置的主机名保持一致

[root@hadoop100 hadoop]# vi core-site.xml


fs.defaultFS
hdfs://hadoop100:9000


hadoop.tmp.dir
/data/hadoop_repo


#修改hdfs-site.xml文件,把hdfs 中文件副本的数量设置为1,因为现在伪分布集群只有一
个节点

[root@hadoop100 hadoop]# vi hdfs-site.xml


dfs.replication
1


#修改mapred-site.xml,设置mapreduce 使用的资源调度框架

[root@hadoop100 hadoop]# vi mapred-site.xml


mapreduce.framework.name
yarn


#修改yarn-site.xml,设置yarn 上支持运行的服务和环境变量白名单

[root@hadoop100 hadoop]# vi yarn-site.xml


yarn.nodemanager.aux-services
mapreduce_shuffle


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


4:格式化namenode

[root@hadoop100 hadoop]# cd /data/soft/hadoop-3.2.0
[root@hadoop100 hadoop-3.2.0]# bin/hdfs namenode -format

#如果在后面的日志信息中能看到这一行,则说明namenode 格式化成功。

common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successfully
formatted.

5:启动hadoop 集群

[root@hadoop100 hadoop-3.2.0]# sbin/start-all.sh
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoop100]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2021-07-25 10:04:25,993 WARN util.NativeCodeLoader: Unable to load native-hadoop library for
your platform... using builtin-java classes where applicable
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.

发现在启动的时候报错,提示缺少HDFS 和YARN 的一些用户信息。
解决方案如下:
#修改start-dfs.sh,stop-dfs.sh这两个脚本文件,在文件前面增加如下内容

[root@hadoop100 hadoop]# cd /data/soft/hadoop-3.2.0/sbin
[root@hadoop100 sbin]# vi start-dfs.sh

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

#修改start-yarn.sh,stop-yarn.sh这两个脚本文件,在文件前面增加如下内容

[root@hadoop100 sbin]# vi start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

#再重新启动集群

[root@hadoop100 sbin]# ./start-all.sh
Starting namenodes on [hadoop100]
Starting datanodes
Starting secondary namenodes [hadoop100]
Starting resourcemanager
Starting nodemanagers

6:验证集群进程信息
#执行jps 命令可以查看集群的进程信息,抛出Jps 这个进程之外还需要有5 个进程才说明
集群是正常启动的

[root@hadoop100 sbin]# jps
2882 ResourceManager
2420 DataNode
3365 Jps
2619 SecondaryNameNode
2315 NameNode
2988 NodeManager

#还可以通过webui 界面来验证集群服务是否正常
hdfs webui 界面:http://192.168.48.100:9870
yarn webui 界面:http://192.168.48.100:8088

7:停止集群
如果修改了集群的配置文件或者是其它原因要停止集群,可以使用下面命令。

[root@hadoop100 sbin]# ./stop-all.sh
Hadoop3.0 分布式集群安装 准备环境:

3 台linux 虚拟机(Centos7.3 64 位)
ip 为:
192.168.48.100
192.168.48.101
192.168.48.102
对应的hostname 为:
hadoop100
hadoop101
hadoop102

虚拟机基本环境配置:

这三台机器的基本配置参考Hadoop3.0 单机伪分布安装中的虚拟机基本环境配置部分。
注意:除了基本配置之外还需要实现主节点能够免密码登陆到所有从节点,因为从节点上面
的进程是由主节点通过ssh 远程启动的。
在hadoop100 这台机器上执行下面命令,可以实现主节点免密码登陆到所有从节点。

[root@hadoop100 ~]# ssh-copy-id -i hadoop101
[root@hadoop100 ~]# ssh-copy-id -i hadoop102

在hadoop100 机器上使用ssh 命令确认集群免密码登陆是否设置成功,如果可以免密码登陆
进去就说明是没有问题的。

[root@hadoop100 ~]# ssh hadoop101
[root@hadoop100 ~]# ssh hadoop101
Hadoop 分布式集群安装:

注意:在这里我们用到了前面安装伪分布集群的机器hadoop100,所以需要先把之前的伪分
布集群停掉,然后删除/data 目录下的hadoop_repo目录和/data/soft 目录下的hadoop-3.2.0目录,恢复此机器的环境。
下面开始安装hadoop 分布式集群。
首先在hadoop100 节点上安装。
1:把hadoop-3.2.0.tar.gz 安装包上传到linux 机器的/data/soft 目录下
2:解压hadoop 安装包

[root@hadoop100 ~]# cd /data/soft
[root@hadoop100 soft]# tar -zxvf hadoop-3.2.0.tar.gz

3:修改hadoop 相关配置文件
#进入配置文件所在目录

[root@hadoop100 soft]# cd hadoop-3.2.0/etc/hadoop/

#首先修改hadoop-env.sh文件,增加环境变量信息

[root@hadoop100 hadoop]# vi hadoop-env.sh
export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop

#修改core-site.xml文件,注意fs.defaultFS 属性中的主机名需要和你配置的主机名保持一致

[root@hadoop100 hadoop]# vi core-site.xml


fs.defaultFS
hdfs://hadoop100:9000


hadoop.tmp.dir
/data/hadoop_repo


#修改hdfs-site.xml文件,把hdfs 中文件副本的数量设置为1,因为现在伪分布集群只有一
个节点

[root@hadoop100 hadoop]# vi hdfs-site.xml


dfs.replication
2


dfs.namenode.secondary.http-address
hadoop100:50090


#修改mapred-site.xml,设置mapreduce 使用的资源调度框架

[root@hadoop100 hadoop]# vi mapred-site.xml


mapreduce.framework.name
yarn


#修改yarn-site.xml,设置yarn 上支持运行的服务和环境变量白名单

[root@hadoop100 hadoop]# vi yarn-site.xml


yarn.nodemanager.aux-services
mapreduce_shuffle


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


yarn.resourcemanager.hostname
hadoop100


#修改workers文件,增加所有从节点的主机名,一个一行

[root@hadoop100 hadoop]# vi workers
hadoop101
hadoop102

#修改启动脚本
#修改start-dfs.sh,stop-dfs.sh 这两个脚本文件,在文件前面增加如下内容

[root@hadoop100 hadoop]# cd /data/soft/hadoop-3.2.0/sbin
[root@hadoop100 sbin]# vi start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

#修改start-yarn.sh,stop-yarn.sh 这两个脚本文件,在文件前面增加如下内容

[root@hadoop100 sbin]# vi start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

4:把hadoop100 节点上修改好配置的安装包拷贝到其他两个从节点

[root@hadoop100 hadoop]# cd /data/soft/
[root@hadoop100 soft]# scp -rq hadoop-3.2.0.tar.gz hadoop101:/data/soft/
[root@hadoop100 soft]# scp -rq hadoop-3.2.0.tar.gz hadoop102:/data/soft/

5:格式化namenode

[root@hadoop100 hadoop]# cd /data/soft/hadoop-3.2.0
[root@hadoop100 hadoop-3.2.0]# bin/hdfs namenode -format

#如果在后面的日志信息中能看到这一行,则说明namenode 格式化成功。

common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successfully
formatted.

6:启动集群,在hadoop100 节点上执行下面命令

[root@hadoop100 hadoop-3.2.0]# sbin/start-all.sh
Starting namenodes on [hadoop100]
Starting datanodes
Starting secondary namenodes [hadoop100]
Starting resourcemanager
Starting nodemanagers

7:验证集群
分别在3 台机器上执行jps 命令,进程信息如下所示:
#在hadoop100 节点执行

[root@hadoop100 hadoop-3.2.0]# jps
8802 ResourceManager
8572 SecondaryNameNode
8334 NameNode

#在hadoop101 节点执行

[root@hadoop101 hadoop-3.2.0]# jps
2229 NodeManager
2124 DataNode

#在hadoop102 节点执行

[root@hadoop102 hadoop-3.2.0]# jps
1857 DataNode
1963 NodeManager

至此,hadoop 分布式集群安装成功!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/278207.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号