Hadoop学习指南:探索大数据时代的重要组成——运行环境搭建

chatgpt/2023/9/27 17:20:22

Hadoop运行环境搭建(开发重点)

模板虚拟机环境准备

数据来源层

安装模板虚拟机,IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G

hadoop100 虚拟机配置要求如下(本文Linux系统全部以CentOS-7.5-x86-1804为例)

使用yum安装需要虚拟机可以正常上网,yum安装前可以先测试下虚拟机联网情况

[root@hadoop100 ~]# ping www.baidu.com 
PING www.baidu.com (14.215.177.39) 56(84) bytes of data. 
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 
ttl=128 time=8.60 ms 
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 
ttl=128 time=7.72 ms 

安装epel-release

注:Extra Packages for Enterprise Linux 是为“红帽系”的操作系统提供额外的软件包,
适用于RHEL、CentOS 和 Scientific Linux。相当于是一个软件仓库,大多数 rpm 包在官方
repository 中是找不到的)

[root@hadoop100 ~]# yum install -y epel-release 

注意:如果Linux安装的是最小系统版,还需要安装如下工具;如果安装的是Linux桌面标准版,不需要执行如下操作

  • net-tool:工具包集合,包含ifconfig等命令
[root@hadoop100 ~]# yum install -y net-tools  
  • vim:编辑器
[root@hadoop100 ~]# yum install -y vim 

关闭防火墙,关闭防火墙开机自启

[root@hadoop100 ~]# systemctl stop firewalld 
[root@hadoop100 ~]# systemctl disable firewalld.service 

==注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙 ==

创建atguigu用户,并修改atguigu用户的密码

[root@hadoop100 ~]# useradd atguigu 
[root@hadoop100 ~]# passwd atguigu 

配置atguigu用户具有root权限,方便后期加sudo执行root权限的命令

[root@hadoop100 ~]# vim /etc/sudoers 

修改/etc/sudoers 文件,在%wheel这行下面添加一行,如下所示:

## Allow root to run any commands anywhere 
root    ALL=(ALL)     ALL 
## Allows people in group wheel to run all commands 
%wheel  ALL=(ALL)       ALL
atguigu   ALL=(ALL)     NOPASSWD:ALL

注意:atguigu 这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了atguigu具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以atguigu要放到%wheel这行下面。

在/opt目录下创建文件夹,并修改所属主和所属组

  • 在/opt目录下创建module、software文件夹
[root@hadoop100 ~]# mkdir /opt/module 
[root@hadoop100 ~]# mkdir /opt/software 
  • 修改module、software 文件夹的所有者和所属组均为atguigu用户
[root@hadoop100 ~]# chown atguigu:atguigu /opt/module  
[root@hadoop100 ~]# chown atguigu:atguigu /opt/software 
  • 查看module、software 文件夹的所有者和所属组
[root@hadoop100 ~]# cd /opt/ 
[root@hadoop100 opt]# ll 
总用量 12 
drwxr-xr-x. 2 atguigu atguigu 4096 528 17:18 module 
drwxr-xr-x. 2 root    root    4096 97 2017 rh 
drwxr-xr-x. 2 atguigu atguigu 4096 528 17:18 software 

卸载虚拟机自带的JDK

注意:如果你的虚拟机是最小化安装不需要执行这一步。

[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps  

➢ rpm -qa:查询所安装的所有rpm软件包
➢ grep -i:忽略大小写
➢ xargs -n1:表示每次只传递一个参数
➢ rpm -e –nodeps:强制卸载软件

重启虚拟机

[root@hadoop100 ~]# reboot 

克隆虚拟机

利用模板机hadoop100,克隆三台虚拟机:hadoop102 hadoop103 hadoop104

注意:克隆时,要先关闭hadoop100

修改克隆机IP,以下以hadoop102举例说明

(1)修改克隆虚拟机的静态IP

[root@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg
ens33

改为

DEVICE=ens33 
TYPE=Ethernet 
ONBOOT=yes 
BOOTPROTO=static 
NAME="ens33" 
IPADDR=192.168.10.102 
PREFIX=24 
GATEWAY=192.168.10.2 
DNS1=192.168.10.2 

(2)查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8
在这里插入图片描述
在这里插入图片描述
(3)查看Windows系统适配器VMware Network Adapter VMnet8 的IP地址
在这里插入图片描述
(4)保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系
统VM8网络IP地址相同。

修改克隆机主机名,以下以hadoop102举例说明

(1)修改主机名称

[root@hadoop100 ~]# vim /etc/hostname 
hadoop102

配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts

[root@hadoop100 ~]# vim /etc/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 

重启克隆机hadoop102

[root@hadoop100 ~]# reboot

修改windows的主机映射文件(hosts文件)
(1)如果操作系统是window7,可以直接修改
(a)进入C:\Windows\System32\drivers\etc路径
(b)打开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

(2)如果操作系统是window10,先拷贝出来,修改保存以后,再覆盖即可
(a)进入C:\Windows\System32\drivers\etc路径
(b)拷贝hosts文件到桌面
(c)打开桌面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 

(d)将桌面hosts文件覆盖C:\Windows\System32\drivers\etc路径hosts文件

在hadoop102安装JDK

卸载现有JDK

注意:安装JDK前,一定确保提前删除了虚拟机自带的JDK

用XShell传输工具将JDK导入到opt目录下面的software文件夹下面

在这里插入图片描述

在Linux系统下的opt目录中查看软件包是否导入成功

[atguigu@hadoop102 ~]$ ls /opt/software/ 

看到如下结果:

jdk-8u212-linux-x64.tar.gz

解压JDK到/opt/module目录下

[atguigu@hadoop102 software]$ tar -zxvf jdk-8u212-linux
x64.tar.gz -C /opt/module/ 

配置JDK环境变量

(1)新建/etc/profile.d/my_env.sh文件

[atguigu@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh

添加如下内容

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

(2)保存后退出
:wq
(3)source一下/etc/profile文件,让新的环境变量PATH生效

[atguigu@hadoop102 ~]$ source /etc/profile

测试JDK是否安装成功

[atguigu@hadoop102 ~]$ java -version 

如果能看到以下结果,则代表Java安装成功。

java version "1.8.0_212"

注意:重启(如果java -version可以用就不用重启)

[atguigu@hadoop102 ~]$ sudo reboot

在hadoop102安装Hadoop

Hadoop下载地址:Hadoop

1)用XShell文件传输工具将hadoop-3.1.3.tar.gz导入到opt目录下面的software文件夹下


在这里插入图片描述

2)进入到Hadoop安装包路径下

[atguigu@hadoop102 ~]$ cd /opt/software/ 

3)解压安装文件到/opt/module下面

[atguigu@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C 
/opt/module/

4)查看是否解压成功

[atguigu@hadoop102 software]$ ls /opt/module/ 
hadoop-3.1.3 

5)将Hadoop添加到环境变量

(1)获取Hadoop安装路径

[atguigu@hadoop102 hadoop-3.1.3]$ pwd 
/opt/module/hadoop-3.1.3 

(2)打开/etc/profile.d/my_env.sh文件

[atguigu@hadoop102 hadoop-3.1.3]$ sudo vim 
/etc/profile.d/my_env.sh

➢ 在my_env.sh文件末尾添加如下内容:(shift+g)

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

➢ 保存并退出: :wq
(3)让修改后的文件生效

[atguigu@hadoop102 hadoop-3.1.3]$ source /etc/profile

6)测试是否安装成功

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop version 
Hadoop 3.1.3 

7)重启(如果Hadoop命令不能用再重启虚拟机)

[atguigu@hadoop102 hadoop-3.1.3]$ sudo reboot

Hadoop 目录结构

查看Hadoop目录结构

[atguigu@hadoop102 hadoop-3.1.3]$ ll 
总用量 52 
drwxr-xr-x. 2 atguigu atguigu  4096 522 2017 bin 
drwxr-xr-x. 3 atguigu atguigu  4096 522 2017 etc 
drwxr-xr-x. 2 atguigu atguigu  4096 522 2017 include 
drwxr-xr-x. 3 atguigu atguigu  4096 522 2017 lib 
drwxr-xr-x. 2 atguigu atguigu  4096 522 2017 libexec -rw-r--r--. 1 atguigu atguigu 15429 522 2017 LICENSE.txt -rw-r--r--. 1 atguigu atguigu   101 522 2017 NOTICE.txt -rw-r--r--. 1 atguigu atguigu  1366 522 2017 README.txt 
drwxr-xr-x. 2 atguigu atguigu  4096 522 2017 sbin 
drwxr-xr-x. 4 atguigu atguigu  4096 522 2017 share 

重要目录

(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib 目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin 目录:存放启动或停止Hadoop相关服务的脚本
(5)share 目录:存放Hadoop的依赖jar包、文档、和官方案例

总结:

Hadoop是大数据处理的重要工具,搭建Hadoop的运行环境是学习和应用Hadoop的第一步。通过安装JDK和配置Hadoop,我们可以轻松搭建一个强大的分布式计算平台,实现大规模数据处理和存储。

通过学习Hadoop的搭建和配置,我们能够深入了解Hadoop的运行原理和机制。在后续的学习和实践中,我们将探索更多Hadoop的功能和应用,为大数据处理和分析提供更加全面和高效的解决方案。

题外话

我整理了一些资源,如果你也对Python和大数据感兴趣,关注下方公众号免费提取资料。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

RPC与REST有什么区别?

原文:RPC与REST有什么区别? 背景 好多开发的同学在工作中,经常分不清RPC和REST的区别,导致经常沟通不在一个层次上。甚至有些同学把这两个当成同一个东西。 RPC与REST的区别? 对比名称 rpc rest 备注 架构风格 RP…

使用Spring Boot AOP实现日志记录

目录 介绍 1.1 什么是AOP 1.2 AOP体系与概念 AOP简单实现 2.1 新建一个SpringBoot项目,无需选择依赖 2.2 设置好本地Maven配置后,在pom.xml文件里添加添加maven依赖 2.3 创建一个业务类接口 2.4 在实体类实现接口业务 2.5 在单元测试运行结果 …

Spring依赖注入和ioc在spring中的实现方式

目录 一、依赖注入 1.IOC思想 2.什么是依赖注入? 3.实例化对象中有pojo类型属性 二、IOC在Spring中的实现方式 1.获取bean的三种方式 1.1根据bean的id获取 1.2根据bean的类型获取(最常用,因为在IOC容器中,一个类型的bean只…

SpringBoot-Run启动流程

SpringBoot-Run启动流程 1. 引言 在现代的Java开发中,Spring Boot已经成为了一种非常流行的框架,它能够帮助开发者快速构建和部署应用程序。本篇博客将深入探讨Spring Boot的启动流程,并分析其源码实现细节。 2. Spring Boot简介 Spring …

前端学习网站记录

1. MDN Web Docs https://developer.mozilla.org/zh-CN/docs/Web 2. W3c School https://www.w3school.com.cn/ 3. Vue 官网 https://cn.vuejs.org/v2/api/ 4. 前端组件库 4.1 element https://element.eleme.cn/#/zh-CN/component/ 4.2 vant https://youzan.github.…

万界星空/推出生产制造执行MES系统/开源MES/免费下载

免费MES系统介绍 什么是MES系统呢?MES系统主要功能就是解决“如何生产”的问题。通过实施MES系统,一站式解决您所困扰的所有生产制作流程问题。 普通的免费MES系统只提供简单的基本功能让客户体验,而万界星空MES系统运用低代码的形式开发&a…

算法刷题Day 55 判断子序列+不同的子序列

Day 55 动态规划 392. 判断子序列 动态规划 就是用求最长公共子序列的方法&#xff0c;最后在返回时判断长度 class Solution { public:bool isSubsequence(string s, string t) {int m s.size() 1, n t.size() 1;vector<vector<int>> dp(m, vector<int…

[SQL挖掘机] - 窗口函数 - dense_rank

介绍: dense_rank() 是一种常用的窗口函数&#xff0c;它为结果集中的每一行分配一个密集排名&#xff08;dense rank&#xff09;。这个密集排名基于指定的排序顺序&#xff0c;并且在遇到相同的值时&#xff0c;不会跳过排名。 用法: dense_rank() 函数的语法如下&#xf…
推荐文章