000002 - Hadoop环境安装

Hadoop及其大数据生态圈

  • 1. 背景
  • 2. 实践
    • 2.1 Linux服务器准备
    • 2.2 在其中一台服务器上安装JDK
    • 2.3 在其中一台服务器上安装HADOOP
    • 2.4 本地模式运行一个hadoop案例
  • 3. 自动化部署

1. 背景

要搭建Hadoop集群环境,我们需要执行如下

  1. 准备三台Linux服务器,服务器之间相互配置免密ssh登陆
  2. 在其中一台服务器上安装JDK
  3. 在其中一台服务器上安装HADOOP
  4. 本地运行模式-在一台服务器上运行HADOOP
  5. 将JDK和HADOOP分发给其他2台服务器
  6. 集群模式运行HADOOP

2. 实践

2.1 Linux服务器准备

我使用AWS创建三台服务器,并且将对服务器的创建过程以及服务器的配置全部用代码和脚本实现,参考这里.

2.2 在其中一台服务器上安装JDK

  1. 将jdk-8u212-linux-x64.tar.gz拷贝到node1的/home/ec2-user/softwar目录。命令如下
# 需要先创建目录
scp -i "hadoop-instances-stack-key-pair.pem" jdk-8u212-linux-x64.tar.gz ec2-user@{node1_public_ip}:/home/ec2-user/software_package/
  1. ssh至node1服务器
ssh -i "hadoop-instances-stack-key-pair.pem" ec2-user@{node1_public_ip}
  1. 安装JDK
    在node服务器上运行如下命令,解压JDK安装包
cd /home/ec2-user/software_package
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /home/ec2-user/software_installation/
  1. 配置JDK环境变量
    在node1上执行下方命令创建自定义env文件,这个文件会被/etc//profile加载
sudo vim /etc/profile.d/hadoop-learning-env.sh

输入如下内容后保存

#JAVVA_HOME
export JAVA_HOME=/home/ec2-user/software_installation/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

再输入如下命令重新加载环境变量

source /etc/profile

至此,JDK在node1节点安装成功

2.3 在其中一台服务器上安装HADOOP

  1. 将hadoop-3.1.3.tar.gz拷贝到node1的/home/ec2-user/softwar目录。命令如下
scp -i "hadoop-instances-stack-key-pair.pem" hadoop-3.1.3.tar.gz ec2-user@{node1_public_ip}:/home/ec2-user/software_package/
  1. ssh至node1服务器
ssh -i "hadoop-instances-stack-key-pair.pem" ec2-user@{node1_public_ip}
  1. 解压HADOOP安装包
    在node服务器上运行如下命令,解压JDK安装包
cd /home/ec2-user/software_package
tar -zxvf hadoop-3.1.3.tar.gz -C /home/ec2-user/software_installation/
  1. 配置HADOOP环境变量
    在node1上执行下方命令修改自定义env文件,这个文件会被/etc//profile加载
sudo vim /etc/profile.d/hadoop-learning-env.sh

新增如下内容后保存

#HADOOP_HOME
export HADOOP_HOME=/home/ec2-user/software_installation/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

再输入如下命令重新加载环境变量

source /etc/profile

至此,HADOOP在node1节点安装成功

2.4 本地模式运行一个hadoop案例

  1. ssh至node1服务器
ssh -i "hadoop-instances-stack-key-pair.pem" ec2-user@{node1_public_ip}
mkdir /home/ec2-user/workspace/wordcount
cd /home/ec2-user/workspace/wordcount
  1. 在wordcount目录下创建wordcount_input目录和wordcount_output目录
mkdir /home/ec2-user/workspace/wordcount/wordcount_input
  1. 在wordcount_input目录下放一个文本文件,其中包含一些单词,用空格隔开,下面是一个例子
apple banana bicycle
china apple cup bicycle
bicycle pinapple
  1. 执行下面命令,用hadoop本地运行模式统计文本中每个单词出现的次数
hadoop jar /home/ec2-user/software_installation/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /home/ec2-user/workspace/wordcount/wordcount_input/ /home/ec2-user/workspace/wordcount/wordcount_output
  1. 执行完成后,hadoop会创建一个目录/home/ec2-user/workspace/wordcount/wordcount_output,且统计结果就在这个目录下,如下图所示
    在这里插入图片描述

3. 自动化部署

在服务器创建成功后,我们还需要很多步骤来将JDK和HADOOP安装包上传解压至三台服务器,且需要对三台服务器进行环境变量的配置,着无疑是一个繁琐的步骤,因此我们可以将这写步骤使用脚本来实现。

参考这里

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于三元组一致性学习的单目内窥镜里程计估计

文章目录 TCL: Triplet Consistent Learning for Odometry Estimation of Monocular Endoscope摘要方法实验结果 TCL: Triplet Consistent Learning for Odometry Estimation of Monocular Endoscope 摘要 单目图像中深度和姿态的估计对于计算机辅助导航至关重要。由于很难获…

Rye一个强大的Python包管理工具

这是一个由Flask框架作者用rust开发并维护的一个python包管理工具,经过个人体验和使用还是非常不错的,尽管它还并非正式版本,但其易用性和便捷性均值得我们来体验! 其中他对python各版本的管理比其他同类工具要好,安装…

Cognita:一款面向生产环境的开源、模块化 RAG 框架

一、引言:RAG 技术的兴起和挑战 1.1、从关键词搜索到 RAG 在大模型技术火起来之前,我们处理海量数据中的信息检索问题,往往依靠的是传统的关键词搜索和全文检索方法。这些方法虽然在一定程度上帮助我们找到了信息,但它们在语义理…

SpringBoot——全局异常处理

目录 异常 项目总结 新建一个SpringBoot项目 pom.xml Result(通用的响应结果类) MyBusinessException自定义异常类 GlobalExceptionHandler全局异常处理类 ExceptionController控制器 SpringbootExceptionApplication启动类 参考文章&#xff1a…

【计算机-ARM】

计算机-ARM ■ 指令集■ 1. RISC■ 2. CISC ■ ARM简介■ 1.■ 2. ■ ARM-CPU体系架构■ 1. M0■ 2. M3■ 3. M4■ 4. M7■ 5. M7■ 6. M7 ■ ARM-寄存器■ 1. 通用寄存器■ 2.■ 3.■ 4. ■ ARM-工作模式■ ARM-寄存器组■ ARM-异常向量表■ 由于soc0x00000000 是存放IROM芯片…

基于.NetCore和ABP.VNext的项目实战七:全局异常处理并日志记录

ABP框架已经默认为我们实现了全局的异常模块,这里我们自定义全局异常模块,先在HelloWorldController中写一个异常接口,测试下ABP的默认全局异常: [HttpGet][Route("Exception")]public string Exception(){throw new NotImplementedException("这是一个未实…

常用技巧-PPT时你真的做对了吗?

常用技巧-PPT时你真的做对了吗? PPT时通常会通过多种表现手法将信息转化为图表,更好的凸显自己的专业素养。将数据转化为图表是对的,那么你真的用对了图表了吗? 话不多说,直接上干货: 时间线图 时间线是…

Jmeter实战教程入门讲解

前言 通过前面对Jmeter元件的讲解,大家应该都知道常用元件的作用和使用了。编写Jmeter脚本前我们需要知道Jmeter元件的执行顺序,可以看看我这篇性能测试学习之路(三)—初识Jmeter来了解下。下面我将以工作中的一个简单的实例带大…

突破性技术: 大语言模型LLM量化激活outliers异常值抑制

LLM过去有两种突破性技术大大提升了量化精度,分别是group-wise量化和GPTQ/AWQ量化。前者相比于过去的per-tensor和per-channel/per-axis量化提出了更细粒度的对channel拆分为更小单元的量化方式,后者通过巧妙的算法明显提升了4bit量化的精度。 LLM量化存…

【面试八股总结】MySQL索引(二):B+树数据结构、索引使用场景、索引优化、索引失效

参考资料:小林coding、阿秀 一、为什么InnoDB采用B树作为索引数据结构? B 树是一个自平衡多路搜索树,每一个节点最多可以包括 M 个子节点,M 称为 B 树的阶,所以 B 树就是一个多叉树。 B 树与 B 树的差异:…

【UE5 刺客信条动态地面复刻】实现无界地面01:动态生成

为了快速上手UE5,开启了《复刻刺客信条动态地面》的技术篇章,最终希望复刻刺客信条等待界面的效果,这个效果大体上包括: 基础的地面随着任务走动消失和出现的基础效果地板的Bloom和竖起的面片辉光效果 既然是新手,&am…

CSS学习笔记之高级教程(五)

23、CSS 媒体查询 - 实例 /* 如果屏幕尺寸超过 600 像素&#xff0c;把 <div> 的字体大小设置为 80 像素 */ media screen and (min-width: 600px) {div.example {font-size: 80px;} }/* 如果屏幕大小为 600px 或更小&#xff0c;把 <div> 的字体大小设置为 30px …

器利而事善——datagrip 的安装以及简单使用

一&#xff0c;安装 下载&#xff1a;直接到官网下载即可&#xff0c; 破解&#xff1a;这是破解连接&#xff1a;https://pan.baidu.com/s/11BgOMp4Z9ddBrXwCVhwBng &#xff0c;提取码&#xff1a;abcd&#xff1b; 下载后&#xff0c;选择倒数第三个文件&#xff0c;打开da…

【ZZULI数据结构实验四】:C语言排序算法大比拼

&#x1f4c3;博客主页&#xff1a; 小镇敲码人 &#x1f49a;代码仓库&#xff0c;欢迎访问 &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f30f; 任尔江湖满血骨&#xff0c;我自踏雪寻梅香。 万千浮云遮碧…

洛谷 P10566 「Daily OI Round 4」Analysis 题解

先弄个 ASCII 码表&#xff1a; 分析 很明显&#xff0c;想要节省时间&#xff0c;就要把这些字符转换成和它们的 ASCII 值最接近的大写字母。 通过 ASCII 码表&#xff0c;很容易就可以发现&#xff1a; ASCII 值与数字最接近的大写字母是 A \texttt A A。ASCII 值与小写…

切片的MBTiles格式和XYZ格式

MBTiles 和XYZ是两种经常使用的切片格式&#xff0c;尤其是各类下载器下载在线地图时经常使用这种格式。 MBTiles 是一种用于存储地图切片&#xff08;tileset&#xff09;的文件格式&#xff0c;通常用于地图的存储和传输。该格式由 Mapbox 开发&#xff0c;旨在简化大规模栅格…

TensorFlow库详解:Python中的深度学习框架

引言 TensorFlow是由Google Brain团队开发的开源机器学习库&#xff0c;用于各种复杂的数学计算&#xff0c;特别是涉及深度学习的计算。它提供了大量工具和资源&#xff0c;用于构建和训练机器学习模型。TensorFlow因其强大的功能和灵活性&#xff0c;在机器学习和深度学习领…

IGraph使用实例——贝尔曼-福特算法(求解单源最短路径)

1 概述 本文中求解最短路径使用的方法是igraph中基于贝尔曼-福特算法&#xff08;Bellman-Ford算法&#xff09;。Bellman-Ford算法是一种用于在加权图中找到从单个源点到所有其他顶点的最短路径的算法。这个算法可以处理包含负权重边的图&#xff0c;但不能处理有负权重循环的…

CTFHUB-技能树-web-web前置技能-HTTP协议全

目录 1.请求方式 2.302跳转 3.Cookie 4.基础认证 5.响应包源码 1.请求方式 curl -v -X http://challenge-3022c877a8dcedeb.sandbox.ctfhub.com:10800/index.php 2.302跳转 参考链接&#xff1a;http://t.csdnimg.cn/aqdNG 301——永久性重定向。该状态码表示请求的资源已…

Springboot vue elementui 前后端分离 事故灾害案例管理系统

源码链接 系统演示:https://pan.baidu.com/s/1hZQ25cpI-B4keFsZdlzimg?pwdgw48