超详细Hadoop安装教程(单机版、伪分布式)
超详细Hadoop安装教程(单机版、伪分布式)
- 1.Hadoop分布式系统基础架构介绍
- 1.1.Hadoop核心
- 2.Hadoop安装教程
- 2.1.环境准备
- 2.2.配置用户ssh 免密登录
- 2.3.JAVA环境的安装和配置
- 2.4.Hadoop安装
- 2.5.单机版Hadoop配置
- 2.6.伪分布式Hadoop配置
- 2.7Hadoop初始化
1.Hadoop分布式系统基础架构介绍
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
1.1.Hadoop核心
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算 。
2.Hadoop安装教程
2.1.环境准备
此次我们选择的是通过在VMware虚拟机上面进行Hadoop的安装和配置,需要准备的东西如下:
系统环境:Ubtun20.04
JAVA jdk:jdk-8u11-linux-x64.tar
Hadoop:hadoop-2.7.1.tar
上面所需的环境准备,我已经打包整理好全部放在了网盘,有需要的同学可以自行下载
下载链接: 环境准备.提取码:phmr
2.2.配置用户ssh 免密登录
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令)
Ubuntu 默认已安装了 SSH client,我们还需要安装 SSH server,才可以实现ssh免密登录利用 ssh-keygen 生成密钥,并将密钥加入到授权中,让用户实现免密登录
//Linux命令---安装SSH server
sudo apt-get install openssh-server
安装完成后,可以通过下面的命令来进行SSH登录
//Linux命令---SSH登录
ssh localhost
输入后有如下提示,我们输入yes,在输入用户的密码,就可以实现登录了
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便,所以我们需要执行以下代码,来实现SSH免密登录:
//Linux命令---实现SSH免密登录
exit # 退出前面的登录
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 回车后,一直回车直到出现图形化界面
cat ./id_rsa.pub >> ./authorized_keys # 加入授权
出现上面的图形化界面则表示我们的SSH已经配置成功了
做到这一步的小伙伴恭喜你,已经距离终点又近了一步!
2.3.JAVA环境的安装和配置
在配置JAVA环境之前
首先我们通过FTP工具将下载后的软件传输到Linux虚拟机之中
FTP传输文件教程可以参考:链接
上传完成之后,执行以下命令
cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
cd ~ #进入hadoop用户的主目录
cd Downloads #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u162-linux-x64.tar.gz上传到该目录下
sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解压到/usr/lib/jvm目录下
通过cd命令进入到解压目录,通过ls命令进行查看解压结果是否成功
解压完成以后,再对jdk进行环境变量配置,方便以后使用调用jdk
cd ~ #回到根目录
vim ~/.bashrc #编辑环境变量配置文件
在环境变量中添加如下配置:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
!!!注意:编辑保存后,一定要通过source ~/.bashrc命令使配置生效
配置生效后,我们可以通过java -version
来验证JAVA环境变量配置是否成功;成功则返回JAVA版本号,失败则报异常!
链接: link.
2.4.Hadoop安装
这里还是老规矩,配置Hadoop我们也需要通过前面的FTP工具把下载好的haodop传输到我们的Linux虚拟机中,这里我们上传选择的是根/Downolads目录下,具体上传操作请参照2.3的JDK配置
上传工作完成后,
操作设想:首先我们先对Hadoop安装包进行解压,解压目录选择/usr/local,解压完毕后,进入前面解压到目录下,将文件更名为Hadoop,并将目录的所有权限赋予给用户:
具体执行命令如下:
sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local # 解压Hadoop到/usr/local中
cd /usr/local/ #进入刚刚解压的目录
sudo mv ./hadoop-2.6.0/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R xiaoming ./hadoop # 将hadoop目录的权限赋予给用户xiangming
Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:
cd /usr/local/hadoop #进入hadoop安装目录
./bin/hadoop version #用于查看hadoop的版本号
操作截图如下:
如果出现Hadoop的版本号,则我们的安装工作已经完成,下面将进行配置工作
2.5.单机版Hadoop配置
Hadoop 默认模式为非分布式模式(单机版),不需要修改任何配置文件即可以运行。
为了让各位同学能进一步了解hadoop,这里我们可以通过运行一个实例来直观感受一下Hadoop的魅力
cd /usr/local/hadoop #进入到haodop的目录下
mkdir ./input #创建一个文件,作为后面的输入文件
cp ./etc/hadoop/.xml ./input # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+' #正则表达式
cat ./output/* # 查看运行结果
以上的功能是通过正则表达式来实现hadoop的配置文件词频统计:
如果你查看的结果和上面的截图一样,那么恭喜你,你的hadoop没有任何毛病!
2.6.伪分布式Hadoop配置
在伪分布式中,我们主要是修改Hadoop的两个配置文件:
要修改的配置文件名 |
---|
core-site.xml |
hdfs-site.xml |
以上两个文件的位置都处于Hadoop的安装目录/etc/hadoop/目录下
我们首先执行
cd /usr/local/hadoop #进入到hadoop目录下
我们通过执行以下两个命令来实现对配置文件进行修改:
命令1:vim ./etc/hadoop/core-site.xml
进入目录后,在<configuration>-</configuration>标签中加入以下配置
<property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
命令2:vim ./etc/hadoop/hdfs-site.xml
同理在两个标记中加入如下配置
<property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property>
部分配置截图如下:
完成以上两个配置文件配置后,我们的配置工作也就完成了
2.7Hadoop初始化
初始化工作比较简单,只需要执行以下命令即可:
cd /usr/local/hadoop #进入hadoop目录
./bin/hdfs namenode -format #初始化hadoop
成功的话,会看到 “successfully formatted” 的提示,具体返回信息类似如下:
初始工作完成之后,我们就可以开启Hadoop了,具体命令如下:
cd /usr/local/hadoop
./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
启动完成后,我们可以通过输入jps命令来进行验证Hadoop伪分布式是否配置成功:
如果第一次使用jps命令,可能会提示报错,我们只需要按照他的提示安装即可:sudo apt install jps***
若成功启动则会列出如下进程: “NameNode”、“DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。
到此,我们Hadoop安装和配置就到了尾声,Hadoop第一次安装配置的过程中可能会遇到各种困难,但是各位同学一定要坚持下去!!!
勇敢牛牛,不怕困难!
相关文章:

超详细Hadoop安装教程(单机版、伪分布式)
超详细Hadoop安装教程(单机版、伪分布式) 1.Hadoop分布式系统基础架构介绍1.1.Hadoop核心 2.Hadoop安装教程2.1.环境准备2.2.配置用户ssh 免密登录2.3.JAVA环境的安装和配置2.4.Hadoop安装2.5.单机版Hadoop配置2.6.伪分布式Hadoop配置2.7Hadoop初始化 1.…...
持续集成部署-k8s-服务发现-Ingress
持续集成部署-k8s-服务发现-Ingress 1. Ingress 是什么2. Ingress 控制器3. 安装 Ingress-Nginx3.1 添加 Helm 仓库3.2 更新 Helm 仓库3.3 下载 Ingress-Nginx 安装包3.4 配置 Ingress-Nginx 配置文件参数3.5 安装 Ingress-Nginx1. Ingress 是什么 Ingress是 Kubernetes 中的一…...

从零开始搭建Prometheus+grafana服务器组件监控系统
服务器及相关组件监控 本文档主要记录了常用企业级服务器及各种组件的监控手段和监控部署方案,使企业可以实时感知服务器组件的健康状态,并在服务器或组件出现异常时及时做出反应。 本方案采用的Prometheusgrafana的方式实现对服务器及各种组件的监控&am…...

智能水厂运行与调控3D模拟仿真在线展示提高整个系统的协同效应
水厂在生活中的重要性不可忽视。它们提供清洁、安全的水源,满足人们饮用、洗浴、烹饪等基本需求,保障公共卫生,预防疾病传播;同时,水厂也促进经济发展,为工业生产和农业灌溉提供保障,吸引和支持企业的投资和…...

ts声明文件
1 背景 对于为第三方模块/库写声明文件之前,我们需要知道第三方模块/库,是否需要声明文件,或者是否已有声明文件。 若第三方模块/库,是ts编写且无声明文件, 可以使用--declaration配置选项来生成;可以在命…...
JPA联合主键使用
在实际工作中,我们会经常遇到联合主键的情况,所以我用简单例子列举JPA两种实现联合主键的方式。 1、如何通过IdClass 实现联合主键 第一步:新建一个UserInfoID类,里面是联合主键 Data Builder NoArgsConstructor AllArgsConstructor publi…...

【计算机毕设经典案例】基于微信小程序的图书管理系统
前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 👉IT源码社-SpringBoot优质案例推荐👈 👉IT源码社-小程序优质案例…...
如何制作rpm离线安装包
如何制作rpm离线安装包 在内网环境中使用rpm安装zabbix-agent-6.4.6时,发现rpm无法下载依赖 1.准备一个可以连接外网的纯净centos7环境 防止本地已有的依赖不会被重复下载 docker pull centos:7docker stop mycentos7 docker rm mycentos72.启动centos7并挂载一…...
golang中快速用melody搭建轻量的websocket服务
在Go中,可以使用gin和melody库来搭建一个轻量级的WebSocket服务。gin是一个流行的Web框架,而melody是一个用于处理WebSocket的库。以下是一个简单的示例代码,演示了如何使用gin和melody搭建WebSocket服务: package mainimport (&…...

Profinet转EtherNET/IP从站连接欧姆龙plc与西门子200smart通讯的配置方法
本案例是200smart plc与欧姆龙plc进行通讯的方法,远创智控YC-PNM-EIP网关可以读写全系列西门子 PLC 数据。一般不需要 PLC 里做特殊的设置。只需要把 PLC 的变量地址配置到网关中,网关就可以读取指定地址的数据或者写数据到指定的地址。 PLC 通过网线连接…...

elementUI el-table实现鼠标悬浮某一行,在鼠标右侧展示提示信息
背景 el-table组件中,可以通过勾选某条数据来创建单据,但是有些数据没有权限使用,就需要禁用掉勾选的功能,然后当鼠标悬浮在这一行的时候,展示类似于toolTip的提示框。 除了当鼠标悬浮在某一行,展示类似于…...

Java 使用 poi 和 aspose 实现 word 模板数据写入并转换 pdf 增加水印
本项目所有源码和依赖资源都在文章顶部链接,有需要可以下载使用 1. 需求描述 从指定位置读取一个 word 模板获取业务数据并写入该 word 模板,生成新的 word 文档将新生成的 word 文档转换为 pdf 格式对 pdf 文档添加水印 2. 效果预览 word 模板 带水印的…...

Spring Boot进阶(93):体验式教程:手把手教你整合Spring Boot和Zipkin
📣前言 分布式系统开发中,服务治理是一个比较重要的问题。为了更好地实现服务治理,需要解决服务跟踪问题,即如何对分布式系统中的服务进行监控和追踪。本文将介绍如何使用Zipkin进行服务跟踪,并结合Spring Boot进行整合…...

Lvs +keepalivede : 高可用集群
keepalived为Ivs应运而生的高可用服务。Ivs的调度器无法做高可用,于是keepalived这个软件。 实现的是调度器的高可用。 但是: keepalived不是专为Ivs集群服务的,也可以做其他代理服务器的高可用。 lvs的高可用集群:主调度器和备调度器&…...

得物 Redis 设计与实践yu
一、前言 自建 Redis 系统是得物 DBA 团队自研高性能分布式 KV 缓存系统,目前管理的 ECS 内存总容量超过数十TB,数百多个 Redis 缓存集群实例,数万多个 Redis 数据节点,其中内存规格超过 1T 的大容量集群多个。 自建 Redis 系统采…...

优咔科技创新连接方案助力高质量5G车联服务
上海优咔网络科技有限公司 CEO 闫楠 【摘要】本文就智能网联汽车对高质量5G车联服务的需求背景和行业趋势进行了分析,主要介绍采用5G双SIM卡的创新连接方案,重点讲述双SIM卡联网的端到端体系架构和技术方案,并就优咔科技全方位支撑行业领先车…...

(a /b)*c的值
系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…...
Hive 常用DML操作
本专栏案例数据集链接: https://download.csdn.net/download/shangjg03/88478038 1.加载文件数据到表 1.1 语法 LOAD DATA [LOCAL] INPATH filepath [OVERWRITE] INTO TABLE</...

centos部署tomcat
Java Downloads | Oracle 上面是下载网址 Tomcat是由Apache开发的一个Servlet容器,实现了对Servlet和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台,安全域管理和Tomcat阀 简单来说:Tomcat…...
【Spark】配置参数关系-重要
并行度数量 并行度指所有Executor可以同时执行的Task数, 每个Executor中的一个Core(线程,虚拟核数)同时只能执行一个Task, 所以 最大并行度 Executor数量 * 每个Executor的Core数; eg:资源配…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...