CentOS7下Hadoop集群分布式安装详细图文教程

1、集群规划

主机

角色

DSS20

NameNode    DataNode   ResourceManager  NodeManager

DSS21

SecondaryNameNode  NameNode           NodeManager

DSS22

DataNode          NodeManager

1.1、环境准备

1.1.1 关闭防火墙

#查看防火墙状态
firewall-cmd --state	
#停止firewalld服务
systemctl stop firewalld.service  
#开机禁用firewalld服务
systemctl disable firewalld.service  

1.1.2、hadoop集群登录时免密登录注意点以及步骤

        在3台机子都要执行如下操作:

1、vim /etc/hosts编辑,在后面添加以下行。

vim /etc/hosts
#在后面添加以下行
DSS20 192.168.3.20
DSS21 192.168.3.21
DSS22 192.168.3.22

2、使用以下命令,分别更改3台机器的主机名,在3个节点分别执行如下操作:

#在DSS20节点执行
hostnamectl set-hostname DSS20
#在DSS21节点执行
hostnamectl set-hostname DSS21
#在DSS22节点执行
hostnamectl set-hostname DSS22

执行完成后,分别重启后生效。

3、修改ssh的配置文件、 3个节点都需要修改

vi /etc/ssh/sshd_config
##将如下代码注释掉
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

4、要使3个节点免密登陆,需先在本地机器使用ssh-keygen一个公私钥对,如下:

在3个节点分别执行:ssh-keygen -t rsa,以DSS20节点为例:

[root@dss20 ~]# 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:
SHA256:hklZKWkiaKI0nAIIOZ/SGC2xsC3TuHQyMavgag9PQ+E root@dss20
The key's randomart image is:
+---[RSA 2048]----+
|XB.    ...       |
|@%* . +o.        |
|&%+= oo.         |
|O+O .. o         |
|oo E  o S        |
|. .    .         |
|.o o             |
|. = .            |
|   o             |
+----[SHA256]-----+
[root@dss20 .ssh]#cd /root/.ssh/
[root@dss20 .ssh]#cat id_rsa.pub > authorized_keys
[root@dss20 ~]#chmod 700 ~/.ssh
[root@dss20 ~]#chmod 600 ~/.ssh/authorized_keys

5、传送文件

在dss20、dss21、dss22分别执行一下操作:

scp /root/.ssh/authorized_keys dss20:/root/.ssh/
scp /root/.ssh/authorized_keys dss21:/root/.ssh/
scp /root/.ssh/authorized_keys dss22:/root/.ssh/

示例操作如下:

[root@dss20 .ssh]# scp /root/.ssh/authorized_keys dss21:/root/.ssh/
The authenticity of host 'dss21 (192.168.3.21)' can't be established.
ECDSA key fingerprint is SHA256:YITxRzRr8H26YCwhKfLh0kHTirDLdKr42yWl22r/l+Y.
ECDSA key fingerprint is MD5:e4:5e:d5:dc:03:55:05:ba:bc:00:5c:0b:da:d2:90:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'dss21,192.168.3.21' (ECDSA) to the list of known hosts.
root@dss21's password: 
authorized_keys                                                                                                   100%  392    47.6KB/s   00:00    
[root@dss20 .ssh]# scp /root/.ssh/authorized_keys dss22:/root/.ssh/
The authenticity of host 'dss22 (192.168.3.22)' can't be established.
ECDSA key fingerprint is SHA256:YITxRzRr8H26YCwhKfLh0kHTirDLdKr42yWl22r/l+Y.
ECDSA key fingerprint is MD5:e4:5e:d5:dc:03:55:05:ba:bc:00:5c:0b:da:d2:90:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'dss22,192.168.3.22' (ECDSA) to the list of known hosts.
root@dss22's password: 
authorized_keys                                                                                                   100%  392    40.4KB/s   00:00    
[root@dss20 .ssh]#
[root@dss20 ~]#  cd /root/.ssh
[root@dss20 .ssh]# ll
总用量 16
-rw-------. 1 root root 1176 1月  12 10:25 authorized_keys
-rw-------. 1 root root 1679 1月  11 22:55 id_rsa
-rw-r--r--. 1 root root  392 1月  11 22:55 id_rsa.pub
-rw-r--r--. 1 root root  540 1月  12 10:24 known_hosts
[root@dss20 .ssh]# cat known_hosts
dss21,192.168.3.21 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNdk8m/uErLF2rhHAs74bO7Q+3IydFc8JMYU/fRT1Ck5HxQspny9UrZ3b9GaOPXInBwwm1FeUE2+za43yRZaVjc=
dss22,192.168.3.22 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNdk8m/uErLF2rhHAs74bO7Q+3IydFc8JMYU/fRT1Ck5HxQspny9UrZ3b9GaOPXInBwwm1FeUE2+za43yRZaVjc=
dss20,192.168.3.20 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBrELKY7s7Hmg1OrV9OE5beTl/2JI6K/neXli2mknZfKiUmNSOh9L19ewgtmKqEVevR83QdK+ZRedrMFENRPThg=
[root@dss20 .ssh]# scp /root/.ssh/authorized_keys dss20:/root/.ssh/

6、首次执行需要输入密码

ssh dss21
ssh dss22
ssh dss20

第二次后就无需再输入密码,如下:

1.1.3、安装JDK

将JDK 1.8安装jdk-8u241-linux-x64.tar.gz上传到/opt/目录下,如下操作:

 cd /opt/tar zxvf jdk-8u241-linux-x64.tar.gzmv /opt/jdk1.8.0_241  /opt/jdk1.8#复制jdk1.8目录到dss21、dss22
scp -r jdk1.8 root@dss21:$PWD
scp -r jdk1.8 root@dss22:$PWD#分别在dss20、dss21、dss22配置环境变量
vim /etc/profile
#在最下方添加一下内容	
export JAVA_HOME=/opt/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  	
#重新加载环境变量文件
source /etc/profile
#查看是否生效
java -version

1.2、hadoop安装

1.2.1、上传Hadoop安装包hadoop-2.7.2.tar.gz到dss20 /opt/server目录下,或下载

cd /opt/server/
#下载
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz

   1.2.2、解压hadoop-2.7.2.tar.gz

 tar zxvf hadoop-2.7.2.tar.gz

     1.2.3、修改配置文件(配置文件路径 hadoop-2.7.2/etc/hadoop)

[root@dss20 server]# cd hadoop-2.7.2/etc/hadoop
[root@dss20 hadoop]# ll
总用量 152
-rw-r--r--. 1 10011 10011  4436 1月  26 2016 capacity-scheduler.xml
-rw-r--r--. 1 10011 10011  1335 1月  26 2016 configuration.xsl
-rw-r--r--. 1 10011 10011   318 1月  26 2016 container-executor.cfg
-rw-r--r--. 1 10011 10011   774 1月  26 2016 core-site.xml
-rw-r--r--. 1 10011 10011  3670 1月  26 2016 hadoop-env.cmd
-rw-r--r--. 1 10011 10011  4224 1月  26 2016 hadoop-env.sh
-rw-r--r--. 1 10011 10011  2598 1月  26 2016 hadoop-metrics2.properties
-rw-r--r--. 1 10011 10011  2490 1月  26 2016 hadoop-metrics.properties
-rw-r--r--. 1 10011 10011  9683 1月  26 2016 hadoop-policy.xml
-rw-r--r--. 1 10011 10011   775 1月  26 2016 hdfs-site.xml
-rw-r--r--. 1 10011 10011  1449 1月  26 2016 httpfs-env.sh
-rw-r--r--. 1 10011 10011  1657 1月  26 2016 httpfs-log4j.properties
-rw-r--r--. 1 10011 10011    21 1月  26 2016 httpfs-signature.secret
-rw-r--r--. 1 10011 10011   620 1月  26 2016 httpfs-site.xml
-rw-r--r--. 1 10011 10011  3518 1月  26 2016 kms-acls.xml
-rw-r--r--. 1 10011 10011  1527 1月  26 2016 kms-env.sh
-rw-r--r--. 1 10011 10011  1631 1月  26 2016 kms-log4j.properties
-rw-r--r--. 1 10011 10011  5511 1月  26 2016 kms-site.xml
-rw-r--r--. 1 10011 10011 11237 1月  26 2016 log4j.properties
-rw-r--r--. 1 10011 10011   951 1月  26 2016 mapred-env.cmd
-rw-r--r--. 1 10011 10011  1383 1月  26 2016 mapred-env.sh
-rw-r--r--. 1 10011 10011  4113 1月  26 2016 mapred-queues.xml.template
-rw-r--r--. 1 10011 10011   758 1月  26 2016 mapred-site.xml.template
-rw-r--r--. 1 10011 10011    10 1月  26 2016 slaves
-rw-r--r--. 1 10011 10011  2316 1月  26 2016 ssl-client.xml.example
-rw-r--r--. 1 10011 10011  2268 1月  26 2016 ssl-server.xml.example
-rw-r--r--. 1 10011 10011  2250 1月  26 2016 yarn-env.cmd
-rw-r--r--. 1 10011 10011  4567 1月  26 2016 yarn-env.sh
-rw-r--r--. 1 10011 10011   690 1月  26 2016 yarn-site.xml

1、hadoop-env.sh文件配置

vi hadoop-env.sh
#文件最后添加
export JAVA_HOME=/opt/jdk1.8export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root 

2、core-site.xml文件配置

#设置Hadoop本地保存数据路径
mkdir -p /opt/server/data/hadoop-2.7.2#设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统vi core-site.xml
 #把一下内容添加<configuration></configuration>内,如下:<configuration>
<property><name>fs.defaultFS</name><value>hdfs://dss20:8020</value>
</property><!-- 设置Hadoop本地保存数据路径 -->
<property><name>hadoop.tmp.dir</name><value>/opt/server/data/hadoop-2.7.2</value>
</property><!-- 设置HDFS web UI用户身份 -->
<property><name>hadoop.http.staticuser.user</name><value>root</value>
</property><!-- 整合hive 用户代理设置 -->
<property><name>hadoop.proxyuser.root.hosts</name><value>*</value>
</property><property><name>hadoop.proxyuser.root.groups</name><value>*</value>
</property><!-- 文件系统垃圾桶保存时间 -->
<property><name>fs.trash.interval</name><value>1440</value>
</property>
</configuration>

3、hdfs-site.xml文件配置

#设置SNN进程运行机器位置信息
vi hdfs-site.xml
<!-- 设置SNN进程运行机器位置信息 -->
<configuration>
<property><name>dfs.namenode.secondary.http-address</name><value>dss21:9868</value>
</property>
</configuration>

4、mapred-site.xml文件配置

复制一份mapred-site.xml文件,如下:

cp mapred-site.xml.template mapred-site.xml
#设置MR程序默认运行模式: yarn集群模式 local本地模式 
vi mapred-site.xml
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<configuration>
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property><!-- MR程序历史服务地址 -->
<property><name>mapreduce.jobhistory.address</name><value>dss20:10020</value>
</property><!-- MR程序历史服务器web端地址 -->
<property><name>mapreduce.jobhistory.webapp.address</name><value>dss20:19888</value>
</property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
</configuration>

5、yarn-site.xml文件配置

#设置YARN集群主角色运行机器位置
vi yarn-site.xml
<!-- 设置YARN集群主角色运行机器位置 -->
<configuration>
<property><name>yarn.resourcemanager.hostname</name><value>dss20</value>
</property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property><!-- 是否将对容器实施物理内存限制 -->
<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property><!-- 是否将对容器实施虚拟内存限制。 -->
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property><!-- 开启日志聚集 -->
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property><!-- 设置yarn历史服务器地址 -->
<property><name>yarn.log.server.url</name><value>http://dss20:19888/jobhistory/logs</value>
</property><!-- 历史日志保存的时间 7天 -->
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property>
</configuration>

6、workers文件配置

vi workers
#此空白文件配置如下:
dss20
dss21
dss22

至此,hadoop配置基本完成,可以直接把配置好的安装包直接同步至另外2个节点,可以节省安装配置时间。

1.2.4、分发同步hadoop安装包

  cd /opt/server#分发同步安装包scp -r hadoop-2.7.2 root@dss212:$PWDscp -r hadoop-2.7.2 root@dss22:$PWD

同步分发的时间,请喝点茶等待,同步完成,如下图:

1.2.5、将hadoop添加到环境变量(3个节点)

vim /etc/profile
#在最下方添加一下内容	
export HADOOP_HOME=/opt/server/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#重新加载环境变量文件  
source /etc/profile

1.2.6、Hadoop集群启动

        首次启动,初始化namenode,在dss20主节点执行:

hdfs namenode -format

        启动hadoop

cd /opt/server/hadoop-2.7.2/sbin 
#目录下执行代码执行
start-all.sh

查看dss20节点状态,如下图:

查看dss21节点状态,如下图:

查看dss22节点状态,如下图:

1.2.7、查看hadoop UI管理界面

hadoop管理地址:http://192.168.3.20:8088


hdfs管理地址:http://192.168.3.20:50070

至此,安装完成!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/68043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 Vue 项目中使用地区级联选

在 Vue 项目中使用地区级联选择的完整流程&#xff1a; 1.安装依赖包&#xff0c;这个包提供了中国省市区的完整数据。 npm install element-china-area-data --save 2.导入数据 import { regionData } from element-china-area-data 这个包提供了几种不同的数据格式&#…

基于改进粒子群优化的无人机最优能耗路径规划

目录 1. Introduction2. Preliminaries2.1. Particle Swarm Optimization Algorithm2.2. Deep Deterministic Policy Gradient2.3. Calculation of the Total Output Power of the Quadcopter Battery 3.OptimalEnergyConsumptionPathPlanningBasedonPSO-DDPG3.1.ProblemModell…

Redis为 List/Set/Hash 的元素设置单独的过期时间

一.业务简介 我们知道&#xff0c;Redis 里面暂时没有接口给 List、Set 或者 Hash 的 field 单独设置过期时间&#xff0c;只能给整个列表、集合或者 Hash 设置过期时间。 这样&#xff0c;当 List/Set/Hash 过期时&#xff0c;里面的所有 field 元素就全部过期了。但这样并不…

【51单片机】03 蜂鸣器-播放音乐

蜂鸣器-播放音乐 一、原理介绍1.硬件电路 二、练习1.让蜂鸣器发声2.尝试演奏小星星 一、原理介绍 蜂鸣器分为有源蜂鸣器、无源蜂鸣器两种。 有源蜂鸣器&#xff1a;施加合适的电压之后就会发出特定频率的声音 无源蜂鸣器&#xff1a;需要提供特定频率的声音信号&#xff0c;才能…

30_Redis哨兵模式

在Redis主从复制模式中,因为系统不具备自动恢复的功能,所以当主服务器(master)宕机后,需要手动把一台从服务器(slave)切换为主服务器。在这个过程中,不仅需要人为干预,而且还会造成一段时间内服务器处于不可用状态,同时数据安全性也得不到保障,因此主从模式的可用性…

汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图)

汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图) 前面的两篇博文简述了AutoSAR CP分层架构的概念&#xff0c;下面我们来具体到每一层的具体内容进行讲解&#xff0c;每一层的每一个功能块力求用一个总览图&#xff0c;外加一个例子的图给大家进…

51单片机——定时器中断(重点)

STC89C5X含有3个定时器&#xff1a;定时器0、定时器1、定时器2 注意&#xff1a;51系列单片机一定有基本的2个定时器&#xff08;定时器0和定时器1&#xff09;&#xff0c;但不全有3个中断&#xff0c;需要查看芯片手册&#xff0c;通常我们使用的是基本的2个定时器&#xff…

LeetCode热题100-合并两个有序链表【JavaScript讲解】

题目&#xff1a; 题解&#xff1a; 我们目前已经知道两条链表都是有序链表&#xff0c;我们就可以通过迭代的方法实现上述问题。当list1和list2都不是空链表时&#xff0c;判断list1和list2哪个头节点的值更小&#xff0c;将较小的值添加到结果里&#xff0c;被添加到结果里的…

Artec Leo 3D扫描仪与Ray助力野生水生动物法医鉴定【沪敖3D】

挑战&#xff1a;捕获大型水生哺乳动物&#xff08;如鲸鱼&#xff09;的数据&#xff0c;搭建全彩3D模型&#xff0c;用于水生野生动物的法医鉴定、研究和保护工作。 解决方案&#xff1a;Artec Eva、Artec Space Spider、Artec Leo、Artec Ray、Artec Studio、CT scans 效果&…

HBuilderX打包ios保姆式教程

1、登录苹果开发者后台并登录已认证开发者账号ID Sign In - Apple 2、创建标识符&#xff08;App ID&#xff09;、证书&#xff0c;描述文件 3、首先创建标识符&#xff0c;用于新建App应用 3-1、App的话直接选择第一个App IDs&#xff0c;点击右上角继续 3-2、选择App&#x…

Android DataBinding 结合 ViewModel的使用

Android DataBinding 结合 ViewModel的使用 一、build.gradle引入对应的依赖 在build.gradle&#xff08;app模块&#xff09;里引入依赖&#xff0c;然后Sync Now一下&#xff1a; android {​viewBinding {enabled true}dataBinding {enabled true}} 完整的build.gradle代…

动植物基因表达调控

1&#xff0c; on and off状态 以及表达的量 2&#xff0c; 基因调控的生物学影响&#xff1f; 超过400多种细胞类型&#xff0c;数目上37万亿 不是所有的基因都表达 为什么多核真核细胞需要基因调控&#xff1f; 单个细胞往多个细胞逐渐进化的过程&#xff0c;形成复杂的…

2024年度漏洞态势分析报告,需要访问自取即可!(PDF版本)

2024年度漏洞态势分析报告&#xff0c;需要访问自取即可!(PDF版本),大家有什么好的也可以发一下看看

【数据结构】树的定义

在计算机科学中&#xff0c;树&#xff08;Tree&#xff09;是一种重要的基础数据结构&#xff0c;广泛应用于许多领域&#xff0c;如文件系统的目录结构、数据库的索引、编译器的语法树、人工智能的决策树等。理解树的基本概念和术语&#xff0c;对于学习计算机科学及其相关技…

三个shell脚本

1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容&#xff0c;不存在则创建一个文件将创建时间写入。 测试结果&#xff1a; 2、写一个 shel1 脚本,实现批量添加 20个用户,用户名为user01-20,密码为user 后面跟5个随机字符。 3、编写个shell脚本将/usr/local 日录…

读书笔记--共享服务中心建设原则

最近阅读了《企业IT架构转型之道》记录和思考如下&#xff0c;供大家学习参考。随着企业的数字化转型推进&#xff0c;很多企业开始从原来的SPA模式应用转变为平台技术应用&#xff0c;比如阿里巴巴的共享服务中心&#xff0c;传统企业的统一认证的share服务等等。可以说&#…

DDD - 微服务设计与领域驱动设计实战(上)_统一建模语言及事件风暴会议

文章目录 Pre概述业务流程需求分析的困境统一语言建模事件风暴会议什么是事件风暴&#xff08;Event Storming&#xff09;事件风暴会议 总结 Pre DDD - 软件退化原因及案例分析 DDD - 如何运用 DDD 进行软件设计 DDD - 如何运用 DDD 进行数据库设计 DDD - 服务、实体与值对…

【C语言系列】函数递归

函数递归 一、递归是什么&#xff1f;1.1尾递归 二、递归的限制条件三、递归举例3.1举例一&#xff1a;求n的阶乘3.2举例二&#xff1a;顺序打印一个整数的每一位 四、递归与迭代4.1举例三&#xff1a;求第n个斐波那契数 五、拓展学习青蛙跳台问题 一、递归是什么&#xff1f; …

css盒子水平垂直居中

目录 1采用flex弹性布局&#xff1a; 2子绝父相margin&#xff1a;负值&#xff1a; 3.子绝父相margin:auto&#xff1a; 4子绝父相transform&#xff1a; 5通过伪元素 6table布局 7grid弹性布局 文字 水平垂直居中链接&#xff1a;文字水平垂直居中-CSDN博客 以下为盒子…

攻防世界 Web_php_wrong_nginx_config

​ 打开题目地址&#xff0c;显示为登录页面。尝试用御剑扫描一下&#xff0c;发现了admin页面&#xff0c;点进去显示如下 点开控制台&#xff0c;发现如下 isLogin参数为0。尝试抓包并该islogin参数为1&#xff0c;返回依旧不变。 再扫描&#xff0c;发现robots.txt&#xff…