大数据实验2.Hadoop 集群搭建(单机/伪分布式/分布式)
实验二: Hadoop安装和使用
一、实验目的
- 实现hadoop的环境搭建和安装
 - Hadoop的简单使用;
 
二、实验平台
- 操作系统:Linux(建议Ubuntu16.04或者18.04);
 - Hadoop版本:3.1.3;
 - JDK版本:1.8。
 
安装参考教程:https://dblab.xmu.edu.cn/blog/2441/
三、实验步骤
(一)新建一个用户,用户名自定义,并给新建的用户添加管理员权限,后面的操作均在新建用户下操作

(二)安装准备
(1)SSH服务端安装和免密登录设置
1.1安装SSH服务端

1.2免密登录设置

(2)安装Java环境,在安装目录下,并验证安装是否成功;


(3)切换到任意的非jdk安装目录,使用刚刚的命令,验证java是否可用;

(4)根据jdk安装目录设置JAVA_HOME和PATH环境变量,设置后使其立即生效,然后通过echo命令查看JAVA_HOME和PATH变量的设置是否成功;

(5)切换到任意非jdk安装目录,执行”java –version”命令,对比(2)中的命令,对结果进行对比分析,并解释设置环境变量的意义;

(6)对比分析:
对比: 比较在设置环境变量前后,java -version命令的执行结果。
分析: 如果在设置环境变量之前命令失败,而在设置之后成功,这证明了环境变量设置的必要性和有效性。环境变量的设置简化了Java应用程序的运行和开发,因为它们允许Java命令在任何工作目录下被识别和执行。
(7)设置环境变量的意义:
1)、简化命令行操作:通过设置环境变量,用户可以在任何目录下直接运行Java命令,而不需要每次都输入完整的路径。这大大简化了命令行操作,提高了效率。
2)、系统级别的配置:环境变量可以被系统级别的应用程序和服务所使用。例如,某些应用程序可能需要知道Java的安装位置,通过读取JAVA_HOME环境变量,它们可以找到并使用正确的Java版本。
3)、跨平台兼容性:环境变量提供了一种跨平台的配置方式。不同的操作系统可能有不同的路径和配置方式,但通过统一的环境变量,可以在不同的平台上实现相同的配置效果。
4)、版本管理:在多版本Java共存的环境中,通过设置JAVA_HOME环境变量,可以指定特定版本的Java用于编译和运行应用程序。这在需要同时支持多个Java版本的情况下非常有用。
5)、自动化脚本和工具:许多自动化脚本和开发工具依赖于环境变量来确定如何执行任务。例如,构建工具(如Maven或Gradle)会使用JAVA_HOME来确定使用哪个Java版本来编译代码。
6)、安全性:通过控制环境变量,系统管理员可以限制用户对特定资源的访问,或者确保应用程序使用正确的库和资源。
7)、易于维护和更新:如果需要更新Java版本或更改配置,只需更新环境变量的值,而不需要修改每个脚本或应用程序的配置。这样可以减少维护工作量,并确保所有依赖于这些变量的工具和应用程序都能正确地使用新的配置。
总之,设置环境变量是一种有效的配置管理方式,它使得系统配置更加灵活、可维护,并且能够提高开发和运维的效率。
(三)单机安装hadoop
(1)安装hadoop

 


(2)通过查看安装的hadoop版本信息,验证是否安装成功

(三)伪分布式安装hadoop和配置
(1)配置相关的文件;

 








(2)初始化分布式文件系统;



(3)使用start-dfs.sh,查看启动的java进程,验证启动是否成功;




(4)终止hadoop运行,使用start-all.sh启动,查看启动的java进程,并和(3)中的结果进行比较分析;

1)、比较分析:
A、使用start-dfs.sh时,只有与HDFS相关的守护进程(NameNode和DataNode)会启动。
B、使用start-all.sh时,除了HDFS的守护进程,还会启动YARN的ResourceManager和NodeManager,以及MapReduce的JobTracker和TaskTracker(在Hadoop 1.x中)或ResourceManager(在Hadoop 2.x中)。
(5)在Web端查看Hadoop运行情况以及文件系统中的文件目录;

(6)在hadoop存储系统中创建 /temp/dirName,文件夹名字自定义并查看创建是否成功
(7)切换到hadoop中的测试样例文件所在路径,并任选一个样例进行测试;
(8)终止Hadoop的运行,并验证进程结束;

四、总结(问题与收获)
1、遇到的问题:
SSH服务端安装和免密登录设置:在配置SSH服务端时,我遇到了权限问题,导致无法成功生成SSH密钥。通过查阅文档和咨询同学,我了解到需要使用sudo命令来获取必要的权限。
Java环境变量配置:在设置JAVA_HOME和PATH环境变量时,我最初没有将它们添加到系统的环境变量中,导致在非JDK安装目录下无法识别Java命令。通过编辑.bashrc文件并重新加载配置,我成功解决了这个问题。
Hadoop伪分布式配置:在配置Hadoop的伪分布式环境时,我遇到了NameNode和DataNode无法同时启动的问题。经过检查配置文件和日志,我发现是hdfs-site.xml中的配置有误,修正后问题得以解决。
2、收获:
Linux系统管理技能:通过本次实验,我加深了对Linux系统管理的理解,包括用户管理、服务安装和权限配置等。
Java环境配置经验:我学会了如何在Linux环境下安装和配置Java环境,以及如何通过环境变量来管理Java版本。
Hadoop安装与配置:我掌握了Hadoop的单机和伪分布式安装方法,了解了Hadoop各组件的作用和配置要点。
问题解决能力:在遇到问题时,我学会了如何通过查阅文档、搜索解决方案和与同伴讨论来独立解决问题。
大数据处理理解:通过本次实验,我对Hadoop和大数据处理有了更深入的认识,为后续的学习和研究打下了基础。
总的来说,通过本次实验,我不仅学习到了Hadoop的安装和使用,还提升了自己的问题解决能力和技术理解。我相信这些技能和经验将对我的未来学习和工作大有裨益。
相关文章:
大数据实验2.Hadoop 集群搭建(单机/伪分布式/分布式)
实验二: Hadoop安装和使用 一、实验目的 实现hadoop的环境搭建和安装Hadoop的简单使用; 二、实验平台 操作系统:Linux(建议Ubuntu16.04或者18.04);Hadoop版本:3.1.3;JDK版本&…...
【CSS in Depth 2 精译_036】5.6 Grid 网格布局中与对齐相关的属性 + 5.7本章小结
当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对…...
Qt圆角窗口
Qt圆角窗口 问题:自己重写了一个窗口,发现用qss设置圆角了,但是都不生效,不过子窗口圆角都生效了。 无边框移动窗口 bool eventFilter(QObject *watched, QEvent *evt) {static QPoint mousePoint;static bool mousePressed f…...
研究生第一次刷力扣day1
1.给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标 直接采用暴力求解,其他解答案看不懂 大致思想:先用len函数求出数组的长度n,然后一个个遍…...
flink自定义process,使用状态求历史总和(scala)
es idea maven 依赖 <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-elasticsearch7_2.11</artifactId> <version>1.11.1</version> </dependency> import org.apache.flink.api.common.eve…...
股指期货理论价格计算公式是什么?
股指期货,作为金融衍生品的一种,其价格与现货市场的股指价格紧密相关,但又受到多种因素的影响。了解股指期货理论价格的计算公式,对于投资者进行套利交易、风险管理等具有重要意义。本文将详细解读股指期货理论价格的计算公式&…...
解决R包依赖版本不兼容问题
ERROR: dependency ‘Matrix’ is not available for package ‘irlba’ removing ‘/root/anaconda3/envs/myview/lib/R/library/irlba’ ERROR: dependency ‘Matrix’ is not available for package ‘N2R’ removing ‘/root/anaconda3/envs/myview/lib/R/library/N2R’ ER…...
HarmonyOS开发者基础认证考试试题
文章目录 一、判断题二、单选题三、多选题 因考试只有91分,所以下方答案有部分错误,如果有发现错误,欢迎提出 一、判断题 1. HarmonyOS提供了基础的应用加固安全能力,包括混淆、加密和代码签名能力 正确 2. 用户首选项是关系型数…...
如何使用 React、TypeScript、TailwindCSS 和 Vite 创建 Chrome 插件
创建一个 Chrome 插件是一个有趣的项目,特别是当结合使用强大的工具如 React、TypeScript、TailwindCSS 和 Vite 时 在这篇文章中,我们将逐步引导完成整个过程,了解如何在 2024 年构建自己的 Chrome 插件。无论是经验丰富的开发者还是刚刚起…...
机器学习——Stacking
Stacking: 方法:训练多个模型(可以是强模型),然后将这些模型的预测结果作为新的特征,输入到下一层新的模型(可以是多个)中进行训练,从而得到最终的预测结果。 代表:Stacking本身并没…...
在HTML中添加图片
在HTML中添加图片,你需要使用<img>标签。这个标签用于在网页上嵌入图像。<img>是一个空元素,它只包含属性,并且没有闭合标签。要在<img>标签中指定要显示的图像,你需要使用src(source的缩写…...
R语言机器学习算法实战系列(二) SVM算法(Support Vector Machine)
文章目录 介绍原理应用方向下载数据加载R包导入数据数据预处理数据描述数据切割标准化数据设置参数训练模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性保存模型总结系统信息介绍 支持向量机(Support Vector Machine,简称SVM)是一种…...
gdb调试使用记录
使用 GDB(GNU Debugger)进行问题排查是非常有效的。且可以通过core文件进行排查bug,core文件是程序异常崩溃的时候(段错误,非法指令等),系统自动生成的core文件。用户可以通过core文件配合gdb调试命令,调试…...
ESXi安装【真机和虚拟机】(超详细)
项目简介: ESXi(Elastic Sky X Integrated)是VMware公司开发的一种裸机虚拟化管理程序,允许用户在单一物理服务器上运行多个虚拟机(VM)。它直接安装在服务器硬件上,而不是操作系统之上ÿ…...
基于SpringBoot+Vue的高校门禁管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 精品专栏:Java精选实战项目源码、Python精…...
【Linux-基础IO】C语言文件接口回顾 系统文件概念及接口
目录 一、C语言文件接口回顾 C语言基础知识 C中文件操作示例 二、系统文件概念及接口 重定向基本理解的回顾 文件的基本概念 系统调用接口 open read write close lseek 什么是当前路径 一、C语言文件接口回顾 引言:我们并不理解文件!从语…...
系统架构笔记-3-信息系统基础知识
知识要点 结构化方法:结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析、结构化设计、结构化程序设计三部分有机组合而成,精髓是自顶向下、逐…...
Linux下编程实现网络传送文件
本程序是在Linux下开发的,使用的是C语言,再结合Socket进行编程,分为客户端和服务器两个程序,即采用的是C/S架构,相应的源代码如下: 服务器端: #include <stdio.h> //#include <stdlib.h> #include <sys/socket.h> #include <netinet/in.h&g…...
【速成Redis】04 Redis 概念扫盲:事务、持久化、主从复制、哨兵模式
前言: 前三篇如下: 【速成Redis】01 Redis简介及windows上如何安装redis-CSDN博客 【速成Redis】02 Redis 五大基本数据类型常用命令-CSDN博客 【速成Redis】03 Redis 五大高级数据结构介绍及其常用命令 | 消息队列、地理空间、HyperLogLog、BitMap、…...
SQL Server 2022的数据类型
新书速览|SQL Server 2022从入门到精通:视频教学超值版_sql server 2022 出版社-CSDN博客 《SQL Server 2022从入门到精通(视频教学超值版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) 数据类…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...



