hadoop3.3.0 集群搭建详细教程


先准备好:
hadoop3.3.0
secureCRT提取码:u3cd
jdk官网
centos7

一、模板机

1、虚拟机的网络适配器选择NAT

2、关闭centos的防火墙

systemctl stop firewalld
systemctl disable firewalld.service

3、将centos设置为自动连接网络

在设置中,找到网络,把有线设置为自动连接

4、让普通(andy)用户具有root权限

sudo vim /etc/sudoers

sudoers文件中找到##Allow people in group wheel to run all commands,并添加andy ALL=(ALL) NOPASSWD:ALL


注:andy是我的用户名
如果你没有创建用户,可以使用以下命令:
创建用户useradd 用户名
创建密码passwd 用户名
补充:vim 知识

5、设置静态ip、主机名和映射host

(1)设置静态ip

先查看IP地址,在终端中输入ifconfig

IP:192.168.23.10
我们将该ip设为静态的,下次开机ip就不会变了。(如果你想把这个IP地址改变,只需改变它的主机号网络号不需要改变,最后输入service network restart
命令:

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33


BOOTPROTO改为static
添加:
IPADDR=192.168.23.10
GATEWAY=192.168.23.2
DNS1=192.168.23.2
在输入重启网络命令:

service network restart

(2)设置主机名

sudo vim /etc/hostname

把里面的内容改成自己的主机名Hadoop01

(3)将主机名称映射hosts文件中

sudo vim /etc/hosts

添加的内容如下

根据自己的IP地址,填入连续的IP,后面的是主机名
注意:我们同样也需要把上面的ip地址映射Windowshosts

C:\Windows\System32\drivers\etc

如果不能更改可以把hosts复制出来,修改后再替换即可

6、安装epel-release

sudo yum install -y epel-release

如果安装出现以下情况

解决:kill -9 进程号,在重新执行命令

7、卸载自带的openjdk,并创建/opt/module//opt/software

(1)卸载openjdk

su root
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

如果不用root用户会出现下面错误

(2)创建/opt/module/opt/software

sudo mkdir /opt/module
sudo mkdir /opt/software

修改/opt/module/opt/software的所有权

sudo chown andy:andy /opt/module /opt/software

注:andy:andy是我的用户名

8、安装hadoop和jdk

补充:SecureCRT的连接

(1)上传hadoop和jdk

用secureCRT连接linux后,安装yum -y install lrzsz,输入rz,找到hadoop和jdk文件位置。
注:找到文件后,要选择add。我把文件放在了/opt/software

(2)安装hadoop和jdk,并配置文件

把文件解压到/opt/module

tar -zxvf /opt/software/hadoop-3.3.0.tar.gz -C /opt/module/
tar -zxvf /opt/software/jdk-8u281-linux-x64.tar.gz -C /opt/module/

配置环境

sudo vim  /etc/profile.d/my_env.sh

添加

#JAVA HOME
export JAVA_HOME=/opt/module/jdk1.8.0_281
export PATH=$PATH:$JAVA_HOME/bin#Hadoop
export HADOOP_HOME=/opt/module/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

注:JAVA_HOME 和HADOOP_HOME是Hadoop和jdk的位置
保存后,输入source /etc/profile,让环境立刻起效
检验:hadoop和jdk是否安装好

hadoop
java

二、克隆模板机

1、克隆centos,克隆其他两台:hadoop02hadoop03

克隆之前,需要先关闭虚拟机。



一定选择创建完整克隆

2、修改克隆机的主机名IP地址,两台都要修改

(1)修改主机名

sudo vim /etc/hostname

它们的主机名分别是hadoop02hadoop03
因为是克隆的第一台,主机名和ip地址都是上一台的

(2)修改IP地址

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改IPADDRKK

它们的IP分别是192.168.23.11192.168.23.12
注:它们是我的IP地址,需要修改

(3)重启克隆的虚拟机

reboot

3、检查克隆虚拟机的主机名、IP地址、网络、hadoop和jdk

(1)检查主机名

hostname

(2)检查IP地址

ifconfig

检查是不是自己和设置的一样

(3)检查网络

ping www.baidu.com

(4)检查一下jak和hadoop

执行

java
hadoop

三、配置集群

1、创建ssh 无密登录

注:都是在普通用户

(1)生成公钥和私钥

ssh-keygen -t rsa

然后敲三次回车

然后生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
位置在:/home/用户名/.ssh

(2)将公钥发给hadoop01、hadoop02、hadoop03
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03

注意:创建无密登录需要,分别在hadoop01、hadoop02、hadoop03都配置一下。

注:它们都是在普通用户下配置的无密登录,在普通用户创建的只能登陆普通用户的。
都在root用户创建无密登录,就能登录root用户了。
注:hadoop02 的ip地址已经映射到了hosts

2、创建一个分享文件脚本,这样就方便把虚拟机的文件传给其他的虚拟机了

(1)在家目录下创建一个bin文件,并进入bin中

mkdir /home/用户/bin
cd bin

(2)在bin中创建xsync文件

vim xsync

添加的文件如下:
注意:需要把for host in hadoop01 hadoop02 hadoop03中的hadoop01、hadoop02、hadoop03改为自己的主机名一定要改

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement! exit;
fi
#2. 遍历集群所有机器
for host in hadoop01 hadoop02 hadoop03
doecho ==================== $host   ====================#3. 遍历所有目录,挨个发送for file in $@ do#4. 判断文件是否存在if [ -e $file ] then#5. 获取父目录pdir=$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdir elseecho $file does not exists!fi done
done

该脚本主要是应用:rsync
相关知识:
linux 远程拷贝命令

(3)修改xsync的权限

sudo chmod 777 xsync

(4)将它复制到/bin中,方便在全局中使用

sudo cp xsync /bin/
(5)测试脚本
xsync /home/用户/bin

把bin中的文件分发给其他虚拟机 hadoop01、hadoop02、hadoop03

3、配置hadoop

集群规划

1)配置集群

提醒:注意value中的内容

(1)核心配置文件——core-site.xml
cd /opt/module/hadoop-3.3.0/etc/hadoop/
vim core-site.xml

<configuration> </configuration>中添加内容:

<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property><!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.3.0/data</value>
</property><!-- 配置 HDFS 网页登录使用的静态用户为 andy -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>andy</value>
</property>

注意:文件中的<value>hdfs://hadoop01:8020</value><value>/opt/module/hadoop-3.3.0/data</value><value>andy</value>中的内容,
第一个要hadoop01,这个是我的主机名
第二个是/opt/module/hadoop-3.3.0/data,这个是data的位置,注意路径是否存在;
第三andy是我的用户名

(2)HDFS配置文件——hdfs-site.xml
vim hdfs-site.xml

<configuration> </configuration>中添加内容:

<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop01:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:9868</value>
</property>

注意value中内容
<value>hadoop01:9870</value> <value>hadoop03:9868</value>
hadoop01和hadoop03是我的主机名

(3)YARN配置文件——yarn-site.xml
vim yarn-site.xml

<configuration> </configuration>中添加内容:

<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property><!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property><!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop01:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

注意:<value>http://hadoop01:19888/jobhistory/logs</value>

(4)MapeRduce配置——mapred-site.xml
vim mapred-site.xml

<configuration> </configuration>中添加内容:

<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property><!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property><!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>

注意:<value>hadoop102:10020</value> <value>hadoop01:19888</value>
(5)将配置文件发给其他虚拟机

xsync /opt/module/hadoop-3.3.0/etc/hadoop

注意:在hadoop02和hadoop03上查看文件是否存在

 cat /opt/module/hadoop-3.3.0/etc/hadoop/core-site.xml
(5)配置workers
vim workers

添加主机名,如下:

同步该文件

 xsync /opt/module/hadoop-3.3.0/etc/hadoop/workers

注意:查看hadoop02、hadoop03是否接收到文件

 cat /opt/module/hadoop-3.3.0/etc/hadoop/workers

2)启动集群

(1)第一次启动需要初始化
cd /opt/module/hadoop-3.3.0
bin/hdfs namenode -format

会在 /opt/module/hadoop-3.3.0/下生成datalogs 文件
如果一会儿在运行集群中出现问题,需要把data和logs删除,在进行初始化
集群出现问题注意配置文件是否有问题

(2)启动HDFS
sbin/start-dfs.sh
(3)启动YARN,需要去hadoop02中启动
cd /opt/module/hadoop-3.3.0
sbin/start-yarn.sh
(4)用jps分别查看hadoop01、hadoop02、hadoop03启动情况



3)创建集群启动的脚本和查看启动清楚的

(1)创建集群启动的脚本
vim /home/用户/bin/myhadoop.sh

输入内容:

#!/bin/bashif [ $# -lt 1 ]
thenecho "No Args Input..."exit ;
ficase $1 in
"start")echo " =================== 启动 hadoop 集群 ==================="echo " --------------- 启动 hdfs ---------------"ssh hadoop01 "/opt/module/hadoop-3.3.0/sbin/start-dfs.sh" echo " --------------- 启动 yarn ---------------"ssh hadoop02 "/opt/module/hadoop-3.3.0/sbin/start-yarn.sh" echo " --------------- 启动 historyserver ---------------"ssh hadoop01 "/opt/module/hadoop-3.3.0/bin/mapred --daemon start historyserver"
;;
"stop")echo " =================== 关闭 hadoop 集群 ==================="echo " --------------- 关闭 historyserver ---------------"ssh hadoop01 "/opt/module/hadoop-3.3.0/bin/mapred --daemon stop historyserver"echo " --------------- 关闭 yarn ---------------"ssh hadoop02 "/opt/module/hadoop-3.3.0/sbin/stop-yarn.sh" echo " --------------- 关闭 hdfs ---------------"ssh hadoop01 "/opt/module/hadoop-3.3.0/sbin/stop-dfs.sh"
;;
*)echo "Input Args Error..."
;;
esac

注意:/opt/module/hadoop-3.3.0是安装hadoop的路径,这里需要修改
修改权限并复制到/bin

chmod 777 myhadoop.sh
sudo cp myhadoop.sh /bin/

使用:
启动:myhadoop.sh start
停止:myhadoop.sh stop

(2)查看启动进程的脚本
vim /home/用户/bin/jpsall

输入内容如下:

#!/bin/bashfor host in hadoop01 hadoop02 hadoop03
do
echo =============== $host ===============
ssh $host jps
done

修改权限并复制到/bin

chmod 777 jpsall
sudo cp jpsall /bin/
(3)将/home/用户/bin分发给其他机器
xsync /home/andy/bin/

补充知识:

hadoop3.3.0集群搭建(详细教程)相关推荐

  1. Hadoop 2.0集群配置详细教程

    Hadoop 2.0集群配置详细教程 前言 Hadoop2.0介绍 Hadoop是 apache 的开源 项目,开发的主要目的是为了构建可靠,可拓展 scalable ,分布式的系 统, hadoop ...

  2. k8s双节点集群搭建详细教程

    K8S v1.13.0 集群搭建 环境 两台centos主机: Master:192.168.11.112 主机名:k8s-master Node:192.168.11.111 主机名:k8s-nod ...

  3. 【❤️万字长文总结❤️】一篇学会Redis高可用✔集群✔搭建详细教程

    大家好,我是Lex 喜欢欺负超人那个Lex 擅长领域:python开发.网络安全渗透.Windows域控Exchange架构 今日重点:今天总结一下Redis集群高可用的搭建流程 [惊喜推荐+优质资源 ...

  4. hadoop3.1.0集群搭建

    一.环境配置 jdk1.8 centos7 二.环境搭建 1.安装jdk 这个不用怎么说了吧,可以直接yum安装或者自己下载tar包.yum安装不用配置javahome,但是需要知道javahome位 ...

  5. hadoop3.2.0集群搭建的一些坑!

    搭建步骤就不多说了,网上教程很多,这里列举几个: https://blog.csdn.net/pucao_cug/article/details/71698903    2.8版本 https://w ...

  6. Ubuntu18.04 安装搭建 hadoop-3.3.0 集群

    Ubuntu18.04 安装搭建 hadoop-3.3.0 集群 参考博文:https://blog.csdn.net/sunxiaoju/article/details/85222290?ops_r ...

  7. hadoop-3.0.0集群搭建

    2019独角兽企业重金招聘Python工程师标准>>> hadoop-3.0.0集群搭建 下载hadoop包 wget -c http://ftp.jaist.ac.jp/pub/a ...

  8. 二进制安装部署 4 kubernetes集群---超详细教程

    二进制安装部署kubernetes集群---超详细教程 前言:本篇博客是博主踩过无数坑,反复查阅资料,一步步搭建完成后整理的个人心得,分享给大家~~~ 本文所需的安装包,都上传在我的网盘中,需要的可以 ...

  9. redis3.0.0 集群安装详细步骤

    2019独角兽企业重金招聘Python工程师标准>>> redis3.0.0 集群安装详细步骤 博客分类: 缓存 Redis集群部署文档(centos6系统) (要让集群正常工作至少 ...

  10. Spark2.2.0集群搭建部署之【基础配置篇】

    软件准备信息,详见Spark2.2.0集群搭建部署之[软件准备篇] Spark集群在生产环境中,主要部署在linux的集群中,所以需要先安装JDK,SCALA等基础配置. 由于Spark是计算框架,所 ...

最新文章

  1. 分页功能 (包含增删改查)工具类
  2. 茶觉 | “治愈”的白牡丹
  3. 【图像分割模型】BRNN下的RGB-D分割—LSTM-CF
  4. 《通过C#学Proto.Actor模型》之 HelloWorld
  5. linux 缩小链接库体积,两个奇技淫巧,将 Docker 镜像体积减小 99%
  6. 11-4实战上色及修复照片
  7. 我想批量删除专题内最古老的100篇文章
  8. Exchange 2010 迁移至Exchange 2013系列之六:创建信任关系并安装ADMT Server
  9. 坚持就是成功,没有成功就是你失败的次数太少
  10. vb.net 教程 3-1 窗体编程基础 1
  11. java编写数独_简单实现java数独游戏
  12. MySql 报错1548
  13. Nginx系列教材 (五)- 和Tomcat进行负载均衡
  14. 贪心算法实例(一):多任务分配问题
  15. Modelsim设置默认窗口排版
  16. Rasa课程、Rasa培训、Rasa面试、Rasa实战系列之Finding Unexpected Intents
  17. 关于音效合成APP鸡乐盒4.0
  18. 【C语言】Linux 下C程序的内存镜像
  19. Libgdx slg游戏进程记录
  20. android 安卓GBA GBC NDS FC SFC 街机游戏模拟器源码

热门文章

  1. android不透明度对应的值
  2. html背景颜色代码格式,html常用背景颜色代码.docx
  3. 模电学习1. 三极管基础知识及常用电路
  4. 用74161计数器芯片 设计十二进制计数器
  5. 隐私何在?区块链是隐私保护的安全阀门
  6. hdmi接口线_终于有人能把HDMI和VGA的5大区别讲全了,网友:讲得真详细
  7. 【数字化】数字档案馆系统测试指标分布总览
  8. 咸鱼K210体验笔记—颜色识别
  9. ajax响应速度慢,jQuery Ajax请求的响应速度变化
  10. EXCEL表格-COUNTIF函数查找数据重复项