大数据(hadoop分布式搭建--尚硅谷)手把手教学

2023-11-12

二 Hadoop 运行环境搭建
1.创建虚拟机,创建名称为hadoop100在这里插入图片描述

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/e89556e0b9b54d9fa3f25dea18873db2.png

2.配置三处网络环境
(1) 点击编辑—>虚拟网络编辑器,进行网络编辑,点击更改配置
在这里插入图片描述

将VMnet8网络模式改为NET模式,并且将子网IP地址配置为192.168.10.0,将子网掩码设置为:255.255.255.0
在这里插入图片描述
在这里插入图片描述

(2) 更改本机的ip地址配置
在设置中选择网络和Internet,选择拨号,点击更改适配器选项,
在这里插入图片描述
在这里插入图片描述

双击IPV4,将配置改为如图所示:
在这里插入图片描述

在这里插入图片描述

(3) 更改虚拟机的网络配置
1).使用命令切换到root用户下
[atguigu@localhost ~]$ su root
2).使用vim命令编辑ifcfg-ens33文件,编辑完成ESC退出,输入:WQ 保存
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
将其中内容改为:
TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“static”
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens33”
UUID=“668f3287-8be7-4d72-a7bc-959b68eb1ab2”
DEVICE=“ens33”
ONBOOT=“yes”
#根据自己的IP地址更改下边的IP即可,其余的不用动
IPADDR=192.168.10.102
GATEWAY=192.168.10.2
DNS1=192.168.10.2

(4) 更改主机名为hadoop100,修改主机映射名
[root@localhost ~]# vim /etc/hostname
[root@localhost ~]# vim /etc/hosts
在hosts文件下追加以下内容:
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
在这里插入图片描述
在这里插入图片描述

配置完ip地址和host文件名之后,输入reboot 重启虚拟机
(5) 验证配置成功
使用ifconfig命令查看ip地址:
使用命令 ping www.baidu.com 查看是否可以连接外网,ctrl+c 退出ping命令
在这里插入图片描述
在这里插入图片描述

3 虚拟机环境准备
1.使用xshell远程登录和xftp远程传输文件,免费下载链接:
https://www.xshell.com/zh/free-for-home-school/
2.配置本地hosts文件C:\Windows\System32\drivers\etc 在hosts文件中追加内容为:
192.168.10.100 hadoop100
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
在这里插入图片描述
在这里插入图片描述

3.使用xshell远程登录hadoop100,名称填写hadoop100,点击连接->接受并保存->输入用户名 root ->输入密码(000000)
在这里插入图片描述
在这里插入图片描述

  1. 进入到远程登陆界面,安装epel-release
    [root@hadoop100 ~]# yum install -y epel-release
    在这里插入图片描述
    在这里插入图片描述

显示安装成功。
5.关闭防火墙,关闭防火墙开机自启
[root@hadoop100 ~]# systemctl stop firewalld
[root@hadoop100 ~]# systemctl disable firewalld.service
6.创建atguigu用户,并修改atguigu用户密码
[root@hadoop100 ~]# useradd atguigu
[root@hadoop100 ~]# passwd atguigu
7.配置atguigu用户具有的root权限,方便后期加sudo执行root权限命令
[root@hadoop100 ~]# vim /etc/sudoers
在文件下添加(注意添加位置): atguigu ALL=(ALL) NOPASSWD:ALL
在这里插入图片描述

8卸载现有 JDK
8.1查询是否安装 Java 软件:
[atguigu@hadoop100 ~]$ rpm -qa | grep java
在这里插入图片描述

8.2如果安装的版本低于 1.7,卸载该 JDK:
首先切换到root用户下,其次删除jdk
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e –nodeps
重启虚拟机:reboot

9.在/opt 目录下创建文件夹
(1)在/opt 目录下创建 module、software 文件夹
[atguigu@hadoop100 opt]$ sudo mkdir module
[atguigu@hadoop100 opt]$ sudo mkdir software
(2)修改 module、software 文件夹的所有者 cd
[atguigu@hadoop100 opt]$ sudo chown atguigu:atguigu module/ software/
[atguigu@hadoop100 opt]$ ll
在这里插入图片描述

  1. 克隆虚拟机(使用模板机hadoop100 克隆出三台虚拟机)点击 创建完整克隆,虚拟机名称为hadoop102,依次克隆出来hadoop102,hadoop103,hadoop104并修改三个虚拟机的ip地址(vim /etc/sysconfig/network-scripts/ifcfg-ens33),hostname(vim /etc/hostname)
    Reboot重启
    在这里插入图片描述
    在这里插入图片描述

11.配置jdk
(1)用 xftp工具将 JDK ,hadoop导入到 opt 目录下面的 software 文件夹下面
在这里插入图片描述

(2) 解压 JDK 到/opt/module 目录下
[atguigu@hadoop101 software]$ tar -zxvf jdk-8u144-linux-
x64.tar.gz -C /opt/module/
(3) 配置 JDK 环境变量
·先获取 JDK 路径
[atguigu@hadoop102 jdk1.8.0_202]$ pwd
/opt/module/jdk1.8.0_202
·进入到profile.d文件下,新建my_env.sh配置文件
[atguigu@hadoop102 jdk1.8.0_202]$ cd /etc/profile.d/
[atguigu@hadoop102 jdk1.8.0_202]$ sudo vim my_env.sh
在文件下添加以下内容:

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin

·让修改后的文件生效
[atguigu@hadoop102 jdk1.8.0_202]$ source /etc/profile
·测试 JDK 是否安装成功
[atguigu@hadoop101 jdk1.8.0_202]# java -version
java version " jdk1.8.0_202"
注意:重启(如果 java -version 可以用就不用重启)
[atguigu@hadoop101 jdk1.8.0_144]$ sync
[atguigu@hadoop101 jdk1.8.0_144]$ sudo reboot
12.配置hadoop环境变量
·进入到 Hadoop 安装包路径下
[atguigu@hadoop101 ~]$ cd /opt/software/
·解压安装文件到/opt/module 下面
[atguigu@hadoop101 software]$ tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
·查看是否解压成功
[atguigu@hadoop101 software]$ ls /opt/module/
hadoop-2.7.2
·获取 Hadoop 安装路径
[atguigu@hadoop101 hadoop-2.7.2]$ pwd
/opt/module/hadoop-2.9.1
·进入到profile.d文件下,修改my_env.sh配置文件
[atguigu@hadoop102 jdk1.8.0_202]$ sudo vim /etc/profile.d/my_env.sh
在文件下添加以下内容:

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.9.1
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

·让修改后的文件生效
[atguigu@ hadoop101 hadoop-2.9.1]$ source /etc/profile
·测试是否安装成功
[atguigu@hadoop101 hadoop-2.9.1]$ hadoop version
Hadoop 2.9.1
· 重启(如果 Hadoop 命令不能用再重启)
[atguigu@ hadoop101 hadoop-2.9.1]$ sync
[atguigu@ hadoop101 hadoop-2.9.1]$ sudo reboot
13分发jdk与hadoop
(1)使用scp安全拷贝,将配置好的jdk,hadoop分发给hadoop103,hadoop104.
·[atguigu@hadoop102 module]$ scp -r jdk1.8.0_202/ atguigu@hadoop103:/opt/module/
·[atguigu@hadoop102 module]$ scp -r jdk1.8.0_202/ atguigu@hadoop104:/opt/module/
·[atguigu@hadoop102 module]$ scp -r hadoop-2.9.1/ atguigu@hadoop103:/opt/module/
·[atguigu@hadoop102 module]$ scp -r hadoop-2.9.1/ atguigu@hadoop104:/opt/module/
(2)创建xsync脚本,实现分发功能
·[atguigu@hadoop102 ~]$ mkdir bin
·[atguigu@hadoop102 ~]$ cd bin/
·[atguigu@hadoop102 bin]$vim xsync
在xsync文件下添加如下内容:

#!/bin/bash
#1.判断参数个数
if [ $# -lt 1 ]
then
        echo Not Enough Arguement!
	exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
      echo ============  $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
	     else 
                 echo  $file does not exists!
	fi
      done
done

·修改脚本 xsync 具有执行权限
[atguigu@hadoop102 bin]$ chmod 777 xsync
·使用xsync同步分发
[atguigu@hadoop102 ~]$ xsync bin/
·分发环境变量配置文件
[atguigu@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
·在hadoop103、hadoop104上执行:
[atguigu@hadoop103 ~]$ source /etc/profile
14 ssh无秘登录(此操作需要在hadoop102、hadoop103、hadoop104上均需要配置)
·[atguigu@hadoop102 ~]$ cd ~/.ssh
·[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到hadoop103、hadoop104上去。
·[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102
·[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103
·[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104
15 配置文件
首先使用命令进入到hadoop文件夹下:
·[atguigu@hadoop102 ~]$ cd /opt/module/hadoop-2.9.1/etc/hadoop/
·[atguigu@hadoop102 hadoop]$ vim core-site.xml
在core-site.xml添加内容为:

<configuration>
	<!-- 指定Name Node的地址 -->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://hadoop102:8020</value>
	</property>
	<!-- 指定hadoop数据的存储目录 -->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop-2.9.1/data</value>
	</property>
	<property>
		<name>hadoop.http.staticuser.user</name>
		<value>atguigu</value>
	</property>
</configuration>

·[atguigu@hadoop102 hadoop]$ vim hdfs-site.xml
在hdfs-site.xml添加如下内容:

<configuration>
	<!-- nn web端访问地址 -->
	<property>
	<name>dfs.namenode.http-address</name>
	<value>hadoop102:9870</value>
	</property>
	<!-- 2nn web端访问地址 -->
	<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>hadoop104:9868</value>
	</property>
</configuration>
·[atguigu@hadoop102 hadoop]$ vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>hadoop103</value>
	</property>
	<property>
		<name>yarn.nodemanager.env-whitelist</name>
		<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_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://hadoop102:19888/jobhistory/logs</value>
	</property>
	<property>
		<name>yarn.log-aggregation.retain-seconds</name>
		<value>604800</value>
	</property>
</configuration>

·[atguigu@hadoop102 hadoop]$ vim mapred-site.xml

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>hadoop102:10020</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>hadoop102:19888</value>
	</property>
</configuration>

16.将配置好的文件分发给hadoop103,hadoop104
·[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.9.1/etc/hadoop/
在去hadoop103、hadoop104上查看配置情况
17.启动集群
配置slaves
·[atguigu@hadoop102 ~]$ vim /opt/module/hadoop-2.9.1/etc/hadoop/slaves
将slaves内容改为:
hadoop102
hadoop103
hadoop104
并将slaves分发给hadoop103、hadoop104
·[atguigu@hadoop102 ~]$ xsync /opt/module/hadoop-2.9.1/etc/hadoop/slaves
集群第一次启动,需要初始化
·[atguigu@hadoop102 hadoop-2.9.1]$ hdfs namenode -formate
在hadoop102上启动hdfs:
·[atguigu@hadoop102 ~]$ cd /opt/module/hadoop-2.9.1/
·[atguigu@hadoop102 hadoop-2.9.1]$ sbin/start-dfs.sh
在hadoop103上启动yarn:
·[atguigu@hadoop103 ~]$ cd /opt/module/hadoop-2.9.1/
·[atguigu@hadoop103 hadoop-2.9.1]$ sbin/start-yarn.sh
在网页查看HDFS的namendoe:http://hadoop102:9870
在网页查看YERN的resourcemanager: http://hadoop103:8088
在这里插入图片描述
在这里插入图片描述

·使用jps命令查看三个虚拟机的集群启动情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

18 编写两个常用脚本
(1)集群启动脚本:首先进入到bin目录下,
·[atguigu@hadoop102 ~]$ cd bin/
·[atguigu@hadoop102 bin]$ vim myhadoop.sh

#!/bin/bash
if [ $# -lt 1 ]
then
	echo "No Args Input ..."
	exit;
fi
case $1 in
"start")
		echo "============启动hadoop集群=========="
		ssh hadoop102 "/opt/module/hadoop-2.9.1/sbin/start-dfs.sh"
		echo "============启动yarn==============="
		ssh hadoop103 "/opt/module/hadoop-2.9.1/sbin/start-yarn.sh"
;;
"stop")
		echo "============关闭yarn==============="
		ssh hadoop103 "/opt/module/hadoop-2.9.1/sbin/stop-yarn.sh"
		echo "============关闭hadoop集群=========="
		ssh hadoop102 "/opt/module/hadoop-2.9.1/sbin/stop-dfs.sh"
		
;;
*)
	echo "Input Args Error..."
;;
esac

激活脚本:
·[atguigu@hadoop102 bin]$ chmod 777 myhadoop.sh
使用脚本一键开启或关闭集群:
·[atguigu@hadoop102 ~]$ myhadoop.sh stop
·[atguigu@hadoop102 ~]$ myhadoop.sh start
在这里插入图片描述
在这里插入图片描述

(2)编写查看所有集群状态脚本
·[atguigu@hadoop102 bin]$ vim jpsall

#!/bin/bash

for host in hadoop102 hadoop103 hadoop104
do
	echo ================== $host ===========
	ssh $host jps
done

使用jpsall命令查看集群启动情况

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据(hadoop分布式搭建--尚硅谷)手把手教学 的相关文章

随机推荐

  • vue2.0 element-ui中的el-select选择器无法显示选中的内容

    我使用的是element ui V2 2 3 代码如下 当我选择值得时候 el select选择器无法显示选中的内容 但是能触发change方法 并且能输出选择的值 select vue文件
  • 动态修改iframe高度,从而自适应内容真实高度

    项目中遇到这样的情况 需要用到iframe iframe中的内容也是自己写的页面 由于页面中元素是异步加载出来的 并不能提前预知其高度 这样就不能设置iframe的高度 导致iframe会出现滚动条 用户体验不好 所以我需要能根据内容动态改
  • 41-C语言-蛇形矩阵-输出从1到n的矩阵

    问题 蛇形矩阵 构建蛇形矩阵 之后 根据条件相应输出 思路 蛇形矩阵 初始值a 0 0 为1 之后开始进行趟数变更 蛇形矩阵趟数 斜着来 斜杠 第一趟为a 0 1 和a 1 0 每一趟中的范围为0到tang次 如第一趟中a 0 1 已经赋值
  • 试题 算法训练 印章

    问题描述 共有n种图案的印章 每种图案的出现概率相同 小A买了m张印章 求小A集齐n种印章的概率 输入格式 一行两个正整数n和m 输出格式 一个实数P表示答案 保留4位小数 样例输入 2 3 样例输出 0 7500 数据规模和约定 1 n
  • 神舟电脑上的神器----“control center 管理软件”

    前言 现在有许许多多的人都爱上了神舟电脑的 物美价廉 那么在使用神舟电脑的时候 我们有哪些值得知道的事情 我认为用神舟电脑而不知道 神舟电脑上的控制中心 control center 管理软件 将没有比这个更加遗憾的事情了 正文 现在我们来
  • 2、ESXI安装出错

    ESXI安装错误提示 解决办法 按ALT F1健进入命令行模式 用户名为root 密码为空 然后输入 esxcli system settings advanced set o VSAN FakeSCSIReservations i 1 重
  • unity种四种光源

    unity 中的光 unity中一共有四种光源分别为 Directional light 方向光 类似太阳的日照效果 Point light 点光源 类似蜡烛 Spotlight 聚光灯 类似手电筒 Area Light 区域光 无法用作实
  • 【c++设计模式】——模板方法模式

    模板方法模式的定义 定义一个操作中的算法对象的骨架 稳定 而将一些步骤延迟到子类 定义一个虚函数 让子类去实现 template method使得子类可以不改变 复用 一个算法结构即可重定义该算法的某些步骤 在理解模板方法模式的时候 我们需
  • 深入 Docker:容器和镜像

    在本专栏往期的 Flux7 系列教程 里 我们已经简单地探讨了 Docker 的基本操作 而在那篇教程中 我们一直是简单地将容器当成是 正在运行的镜像 并没有深入地区分镜像和容器到底是什么 有什么区别 因此本次翻译 深入 Docker 容器
  • 服务器固态硬盘接口区别,s s d固态硬盘和服务器配件硬盘的区别

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 s s d固态硬盘 区别于机械硬盘 固态硬盘 Solid State Drives 简称固盘 固态硬盘 Solid State Drive 用固态电子存储芯片阵列而制成的硬盘 由控制单元 和存储
  • docker cgroups 资源限制

    cgroups资源限制技术 1 什么是cgroups cgroups是linux内核提供的一种机制 这种机制可以通过需求把一系列系统任务 及其子任务整合到按资源划分的不同组内 从而为系统资源管理提供统一的框架 通俗来说 cgroups可以限
  • nginx 301 Moved Permanently错误

    问题场景 今天在利用nginx的alias和index参数做实验时 问题描述 通过curl访问出现301错误 原因分析 起初我以为是路径写错了 然后把alias的路径更改 发现问题还是存在 我又以为是用户权限问题 我把运行nginx的用户修
  • ❤️DDOS攻击详解❤️——万物互联时代的巨大威胁!安全领域最棘手的问题之一

    DDOS全称Distributed Denial of Service 翻译成中文是 分布式拒绝服务 DDOS攻击是安全领域最难解决的问题之一 由于其攻击方式的特殊性 始终没有一个完美的解决方案 随着万物互联时代的临近 网络设备的数量呈指数
  • Hadoop(五)Yarn

    Hadoop 五 Yarn 一 Yarn基本理论 1 Yarn架构 2 Yarn工作机制 3 Yarn调度器 4 Yarn常用命令 5 Yarn参数配置 二 tool接口 一 Yarn基本理论 1 Yarn架构 Resource Manag
  • 坏掉的打字机 & 布尔零点计数

    坏掉的打字机 贝博士发明了一种能够自动输出数字并求和的打字机 但这台打字机出了一些故障 它除了输出数字以外还会随机地输出其他字符 艾小姐让贝博士不要着急 她写了一段程序 能够让这台打字机即使在这样的情况下也能输出正确答案 那么 你知道艾小姐
  • 好用到爆,GitHub 星标 32.5k+的命令行软件管理神器,功能真强大

    前言 废话 本来打算在公司偷偷摸摸给星球的用户写一篇编程喵整合 MongoDB 的文章 结果在通过 brew 安装 MongoDB 的时候竟然报错了 原因很简单 公司这台 Mac 上的 homebrew 环境没有配置好 刚好 Java 程序
  • 计算机的”性能“

    前言 性能这个词在很多领域都出现过 比如一个跑车的性能 一个家电的性能 一个电脑的性能 其实在我看来一个东西的性能 就是他在某一方法的能力 比如跑车最重要的就是速度 一个计算机则是他的运行速度 在计算机组成原理中理解计算机怎么运行 为什么要
  • selenium启动Chrome配置参数问题

    每次当selenium启动chrome浏览器的时候 chrome浏览器很干净 没有插件 没有收藏 没有历史记录 这是因为selenium在启动chrome时为了保证最快的运行效率 启动了一个裸浏览器 这就是为什么需要配置参数的原因 但是有些
  • JavaFX 滚动条

    使用ScrollBar可以创建滚动条 创建滚动条 使用如下的构造函数可以创建滚动条 ScrollBar scrollbar new ScorllBar 查看API帮助文档 我们可以看到几个常用的设置属性的方法 这里简单介绍几个比较常用的方法
  • 大数据(hadoop分布式搭建--尚硅谷)手把手教学

    二 Hadoop 运行环境搭建 1 创建虚拟机 创建名称为hadoop100 在这里插入图片描述 https img blog csdnimg cn e89556e0b9b54d9fa3f25dea18873db2 png 2 配置三处网络