本文建立在已经把虚拟机ip环境等已经下载好情况下。
那么,直接开始今天的正题:

搭建集群

环境准备

这里提供两种思路:一种是将一台直接搭建好,后面的克隆或者copy虚拟机
一种是3台并进,多次进行虚拟机之间文件互传,各有利弊,第一种方式容易漏改ip等问题,第二种方式简单明了,一遍过手,就是步骤稍微多一点,这里采用第二种方式:

1、配置服务器(我这里是以3台为例)

1个主节点:hadoop1(192.168.183.161),2个(从)子节点,hadoop2(192.168.183.162),hadoop13(192.168.183.163)

2、配置主节点名hadoop1(192.168.183.161)

在命令行输入: vi /etc/sysconfig/network

添加内容:
NETWORKING=yes
HOSTNAME=hadoop1

配置两台子节点名(192.168.102.136)和(192.168.102.137):
vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=hadoop2

vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=hadoop3

这块再多改一个东西 vi /etc/hostname

加上主机名 hadoop1,每个节点都执行各自的主机名

注意vi /etc/sysconfig/network 记得去掉 #号那一行,有时候会因为这个改不成功

3、配置hosts

打开主节点的hosts文件,将文件的前两行注释掉 (注释当前主机的信息)并在文件中添加所有hadoop集群的主机息。

在命令行输入: vi /etc/hosts
添加3台服务器的节点名信息(这个也就是后面用的映射)

192.168.183.161   hadoop1
192.168.183.162   hadoop2
192.168.183.163   hadoop3

保存之后,将主节点的hosts分别拷贝到其他两个子节点
命令行分别输入:
scp /etc/hosts root@192.168.183.162:/etc/
scp /etc/hosts root@192.168.183.163:/etc/
话不多说 重启吧,然后我们继续,可以看到主机名已经更改了

配置DNS请看这一篇 :Centos7配置IP地址和DNS_GakingChen的博客-CSDN博客_centos配置dns

4、关闭防火墙(每一台机器上面执行)

a.查看防火墙状态
firewall-cmd --state

b.停止firewall
systemctl stop firewalld.service

c.禁止firewall开机启动
systemctl disable firewalld.service

5、时间同步

命令行输入:yum install ntp 下载ntp插件 ,
下载完成后 命令行输入:ntpdate -u ntp1.aliyun.com
然后命令行输入:date
如果出现如下情况表示配置成功:

6、配置ssh无密码访问(这步很关键,请用心)

这步的核心原理是:将每台机器的公钥全部放至同一个文件中(authorized_keys

生成公钥密钥对

在每个节点上分别执行:
命令行输入:ssh-keygen -t rsa
一直按回车直到生成结束
执行结束之后每个节点上的~/.ssh/目录下生成了两个文件 id_rsa 和 id_rsa.pub

cd  ~/.ssh/
其中前者为私钥,后者为公钥

这块用个简单的方法,以前的有点复杂:

在每台机器上执行这个命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop2

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop3

3台都执行,会自动把密钥加载到 authorized_keys 文件中

在主节点上执行:
命令行输入:cp id_rsa.pub authorized_keys
将子节点的公钥拷贝到主节点并添加进authorized_keys

将两个子节点的公钥拷贝到主节点上
分别在两个子节点上执行:

scp /root/.ssh/id_rsa.pub   root@hadoop1:/root/.ssh/id_rsa_hadoop2.pub
scp /root/.ssh/id_rsa.pub   root@hadoop1:/root/.ssh/id_rsa_hadoop3.pub

然后在主节点上,将拷贝过来的两个公钥合并到authorized_keys文件中去
主节点上执行:
cat id_rsa_hadoop2.pub>> authorized_keys
cat id_rsa_hadoop3.pub>> authorized_keys

将主节点的authorized_keys文件分别替换子节点的authorized_keys文件,此时主节点上面的内容已经是最全的了,
主节点上用scp命令将authorized_keys文件拷贝到子节点的相应位置,

scp authorized_keys root@hadoop2:/root/.ssh/
scp authorized_keys root@hadoop3:/root/.ssh/

最后测试是否配置成功

这块有可能会ssh 失败,还需要输密码:可做以下操作:

要保证:~/.ssh需要是700权限
authorized_keys需要是644权限chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

在hadoop1上分别执行
ssh hadoop2
ssh hadoop2

相互之前也要能ssh成功
能正确跳转到两台子节点的操作界面即可,同样在每个子节点通过相同的方式登录主节点和其他子节点也能无密码正常登录就表示配置成功。

这里的配置方式可以有多种操作步骤,最终目的是每个节点上的/root/.ssh/authorized_keys文件中都包含所有的节点生成的公钥内容。到此免密已经OK

7、jdk安装

配置环境变量, 编辑profile文件:
vi /etc/profile
在profile文件末尾添加以下代码:

export JAVA_HOME=/usr/local/jdk1.8.0_191
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib

保存,source /etc/profile 生效配置文件
测试是否安装成功:java -version

至此环境已经OK,开始开心的安装hadoop集群

8、安装hadoop

解压安装包:tar -zxvf hadoop-2.7.7.tar.gz

tar -zxvf hadoop-2.7.0.tar.gz -C /home/software/soft/ 解压到指定目录
cp -r jdk1.8.0_11/ /home/software/soft/ 复制到指定目录

完事儿后配置环境变量:
vi /etc/profile
在末尾添加:

export HADOOP_HOME=/usr/local/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存后使新编辑的profile生效:source /etc/profile

hadoop配置
修改文件:
1:hadoop-env.sh ——>jdk
2:yarn-env.sh ——>jdk
3:core-site.xml
4:hdfs-site.xml
5:mapred-site.xml
6:yarn-site.xml
7:slaves ——>子节点,节点
其中hadoop-env.sh和yarn-env.sh里面都要添加jdk,接下来一个一个来

hadoop-env.sh中

添加如下代码:   export JAVA_HOME=/home/usr/java/jdk1.8.0_11       到如下位置:

yarn-env.sh中

添加如下代码:   export JAVA_HOME=/home/usr/java/jdk1.8.0_11       到如下位置:

core-site.xml中

添加如下代码:

<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop1:9000</value></property><property><name>io.file.buffer.size</name><value>131072</value></property><property><name>hadoop.tmp.dir</name><value>file:/home/usr/java/hadoop-2.7.0/temp</value></property><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property>
</configuration>

注:上面代码中file后的路径下的temp文件夹需要自己创建

此处做个更新:hadoop.tmp.dir 这个参数配置的目录建议放在hadoop整体目录之外的某个地方,扩容时scp的时候会很方便 --20221026

hdfs-site.xml中

添加如下代码:

此处做个更新:dfs.namenode.name.dir 、dfs.datanode.data.dir 这两个参数配置的目录建议放在hadoop整体目录之外的某个地方,扩容时scp的时候会很方便,否则会比较麻烦 --20221026

<configuration><property><name>dfs.namenode.secondary.http-address</name><value>hadoop1:9001</value></property><!-- 设置namenode.name目录 --><property><name>dfs.namenode.name.dir</name><value>file:/home/usr/java/hadoop-2.7.0/dfs/name</value></property><!-- 设置namenode.data目录 --><property><name>dfs.datanode.data.dir</name><value>file:/home/usr/java/hadoop-2.7.0/dfs/data</value></property><!-- 设置副本个数 --><property><name>dfs.replication</name><value>2</value></property><!-- 开启webHDFS --><property><name>dfs.webhdfs.enabled</name><value>true</value></property><property><name>dfs.permissions</name><value>false</value></property><property><name>dfs.web.ugi</name><value>supergroup</value></property>
</configuration>

注:上面代码中file后的路径下的/dfs/data文件夹需要自己创建

mapred-site.xml中

(注意要将mapred-site.xml.template重命名为 .xml的文件   Mv mapred-site.xml.template mapred-site.xml)
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>hadoop1:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop1:19888</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.ShuffleHandler</value></property><property><name>yarn.resourcemanager.address</name><value>hadoop1:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>hadoop1:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>hadoop1:8031</value></property><property><name>yarn.resourcemanager.admin.address</name><value>hadoop1:8033</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>hadoop1:8088</value></property>
</configuration>

slaves中

修改成:
hadoop2
hadoop3

主节点上面该配的已经配完,下面是copy子节点的了

主节点上执行:
scp -r /home/usr/java/hadoop-2.7.0     root@hadoop2:/home/usr/java
scp -r /home/usr/java/hadoop-2.7.0     root@hadoop3:/home/usr/java

拷贝profile到子节点

主节点上执行:
scp /etc/profile root@hadoop2:/etc/
scp /etc/profile root@hadoop3:/etc/

在两个子节点上分别使新的profile生效:

source /etc/profile

格式化主节点的namenode

主节点上进入hadoop目录
然后执行:
./bin/hadoop namenode -format
新版本用下面的语句不用hadoop命令了
./bin/hdfs namenode -format
提示:successfully formatted表示格式化成功

记得加上这个配置,可避免集群环境停不下来的问题:

Spark集群无法停止的原因分析和解决(Hadoop集群也有这个问题)_Alex_81D的博客-CSDN博客

此时已经完成:

启动hadoop

主节点上在hadoop目录下执行:
./sbin/start-all.sh

主节点上jps进程如下:
NameNode
SecondaryNameNode
ResourceManager

每个子节点上的jps进程如下:
DataNode
NodeManager

如果这样表示hadoop集群配置成功

此时整个集群完成!!!!是不是很简单

------------------------------------------------------------------------------

备注:动态扩容的方法:参考博主另一篇文章

Hadoop集群增加节点不删数据详细操作步骤_Alex_81D的博客-CSDN博客

超详细的Hadoop集群部署相关推荐

  1. Hadoop集群部署权限总结

    这是一篇总结的文章,主要介绍 Hadoop 集群快速部署权限的步骤以及一些注意事项.如果你想了解详细的过程,请参考本博客中其他的文章. 1. 开始之前 hadoop 集群一共有三个节点,每个节点的 i ...

  2. 学习笔记Hadoop(五)—— Hadoop集群的安装与部署(2)—— Hadoop集群部署模式、配置固定IP

    一.Hadoop集群部署模式 Hadoop的安装部署的模式一共有三种: 独立模式(本地模式) standalone 默认的模式,无需运行任何守护进程(daemon),所有程序都在单个JVM上执行.由于 ...

  3. Hadoop集群部署模型纵览1

    vSphere Big Data Extensions(简称BDE)支持多种部署方式来构建Hadoop集群.按: 存储/计算绑定模型:将存储节点(Data Node)和计算节点(Task Tracke ...

  4. hadoop集群部署

    hadoop简介 Hadoop是一个由Apache基金会所开发的分布式系统基础架构, 是一个存储系统+计算框架的软件框架,主要解决海量数据存储与计算的问题,是大数据技术中的基石. Hadoop以一种可 ...

  5. Hadoop集群部署后相关WEB界面打不开大概原因

    集群部署完毕后,查看相关WEB界面,打不开的原因可能如下: 1.可以先去检查LINUX(CentOS7)机器的防火墙是否关闭,命令如下: systemctl status firewalld.serv ...

  6. 大数据练习环境部署(3) - Hadoop集群部署

    目录 1. 环境配置 1.1 创建hadoop用户 1.2 修改相关host 1.3 ssh免密登陆 2. JAVA安装 2.1 下载JDK1.8 2.2 解压安装java 2.3 分发到其他节点 2 ...

  7. hadoop集群部署超级详细

    下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-3.2.2/ 版本:3.2.2 文件名:hadoop-3.2.2.tar.gz 服务器信息 ...

  8. SPARK安装二:HADOOP集群部署

    一.hadoop下载 使用2.7.6版本,因为公司生产环境是这个版本 cd /opt wget http://mirrors.hust.edu.cn/apache/hadoop/common/hado ...

  9. Eclipse连接Hadoop集群(详细版)

    颜子之不较,孟子之自反,是贤人处横逆之方 子贡之无谄,原思之坐弦,是贤人守贫穷之法 相关连接 HDFS相关知识 Hadoop分布式文件系统(HDFS)快速入门 Hadoop分布式文件系统(HDFS)知 ...

最新文章

  1. NYOJ 905 卡片游戏
  2. spark之4:基础指南(源自官方文档)
  3. LeetCode:204. 计数质数
  4. Day6-------BOM
  5. 用信号量实现进程互斥、同步、前驱关系
  6. 大智慧 软件 开发语言_中科闻歌中标深圳税务局智慧税务中台软件开发服务项目...
  7. 最短Hamilton路径(位运算基本思路)
  8. python画spc控制图_SPC控制图的制作方法和步骤
  9. 探索 Python、机器学习和 NLTK 库 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类...
  10. 《计算机组成原理》第五版(唐朔飞考研版) 全书知识梳理
  11. 基于javaweb+jsp的在线购书商城系统(java+jsp+mysql+servlert+ajax)
  12. SaaS的收入模型有哪些?终于有人讲明白了
  13. linux下mp3编码库libmp3lame的开发使用
  14. 项目经理必须学会的财务知识
  15. 苹果白屏一直显示苹果_苹果一直白屏怎么办?试试这个办法
  16. 深度学习数据集的准备
  17. 为什么苹果日历不能设置日程_苹果日历怎么用 苹果日历使用方法介绍
  18. 前端-Vuejs2.5开发去哪儿网
  19. 蓝桥杯算法(python)
  20. 问题关于json 字符串中带有反斜杠的问题

热门文章

  1. 微日志:交互体验中的情境感代入
  2. PHP调用快递100电子面单接口API接口
  3. 如果你想看,拿心跟我换:QQ伤感日志
  4. WebStorm去掉编辑区的竖线
  5. 红十字会急救证模拟考试系统-概要设计说明书
  6. Android多线程编程
  7. Android 测光梳理
  8. Hexo 主题配置 - NexT
  9. Severlet会话管理之Cookie使用
  10. python pygame 动画_Python pygame制作动画跑马灯