02安装一个最小化的Hadoop

安装一个最小化的Hadoop

为了学习HDFS和之后的MapReduce,我们需要安装一个Hadoop。

Hadoop一共有3种运行模式

  • 独立模式:不启动守护进程,所有程序运行在一个JVM进程中。独立模式运行Hadoop很方便,适合学习和开发阶段
  • 伪分布式:Hadoop运行在本机上,模拟一个小规模集群
  • 全分布式:Hadoop运行在集群上,相当于一个生产环境

本节主要对独立模式的安装进行讨论。

由于我的主力机器是Windows,为了之后书写代码方便。所以我选择在Windows安装Hadoop,Linux安装方法也类似,主要区别为配置环境变量不太一样,所以不过多赘述。

注意:在Windows设置环境变量可能不会立即生效,可以在当前窗口使用set命令(例如set JAVA_HOME=xxxx)进行测试,然后再修改环境变量保存。

本节环境为

  • Windows 11
  • JDK 11.0.17

一、前期准备

Hadoop是一个Java编写的程序,所以它既可以运行在Linux系统上,也可以运行在Windows上,官方下载的程序也具有Windows的支持。所以我们需要准备一个JDK,这里建议1.8以上。

二、下载程序

  1. 下载符合你操作系统的JDK,版本在1.8以上均可
  2. 从http://hadoop.apache.org/releases.html下载Hadoop程序。这里我下载的是2.10.2
  3. Windows需要额外下载winutils.exe和hadoop.dll,从http://github.com/cdarlint/winutils下载对应版本的winutils.exe和hadoop.dll。如果没有对应版本的目录,则主版本号一样的相近版本的文件即可,这里我选择下载的是hadoop-2.9.2/bin

三、安装

Step1:安装JDK和设置JAVA_HOME

安装JDK,安装完成后并且配置环境变量JAVA_HOME。然后在你的终端输入

Windows:
%JAVA_HOME%/bin/java -version
Linux:
$JAVA_HOME/bin/java -version

确保能够正常输出Java版本,例如

java version "11.0.17" 2022-10-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.17+10-LTS-269)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.17+10-LTS-269, mixed mode)

注意:JDK安装目录最好不要有空格,如果你的JDK安装在 Program Files 文件夹下,使用 PROGRA~1 代替 Program File。例如JDK安装目录为C:\Program Files\Java\jdk-11.0.17,则环境变量应该设置为C:\PROGRA~1\Java\jdk-11.0.17

如果不方便配置JAVA_HOME,也可以修改Hadoop程序目录下的etc/hadoop/hadoop-env文件,在里面加上一行

Windows:hadoop-env.cmd文件
set JAVA_HOME=你的JDK安装目录
Linux:hadoop-env.sh文件
export JAVA_HOME=你的JDK安装目录

Step2:解压Hadoop

解压Hadoop到任意位置,打开终端进入bin目录

输入hadoop version,你会在终端看到如下字样:

Hadoop 2.10.2
Subversion Unknown -r 965fd380006fa78b2315668fbc7eb432e1d8200f
Compiled by ubuntu on 2022-05-24T22:35Z
Compiled with protoc 2.5.0
From source with checksum d3ab737f7788f05d467784f0a86573fe
This command was run using /D:/hadoop-2.10.2/share/hadoop/common/hadoop-common-2.10.2.jar

Step3:设置Hadoop环境变量

  1. 设置HADOOP_HOME为Hadoop解压位置
  2. 添加HADOOP_HOME/bin到PATH下。这样就不用每次到Hadoop解压目录下运行hadoop了

Setp4:Windows额外步骤

Hadoop在Windows上需要一些本地库才能正常工作,包括访问file://文件系统,其中Hadoop使用一些Windows API来实现类似posix的文件访问权限。

  1. 复制winutils.exe和hadoop.dll到HADOOP_HOME的bin目录下

至此,一个运行在独立模式下的Hadoop安装完成。

本文转载于网络 如有侵权请联系删除

相关文章

  • 那些年,我们一起做过的 Java 课后练习题(41 - 45)

    实例41题目海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?分析逆向推理,从最后一只猴子从后往前推,具体过程见注释。实现/** *CreatedwithIntelliJIDEA. * *@author:cunyu *@version:1.0 *@email:747731461@qq.com *@website:https://cunyu1943.github.io *@date:2021/6/714:55 *@project:Java编程实例 *@package:PACKAGE_NAME *@className:Example41 *@description: */ publicclassExample41{ publicstaticvoidmain(String[]args){ //关于index,可以从1开始,但是我们知道桃子数一定是要大于5的,所以从6开始

  • 使用Github Actions 动态更新Github主页

    我在Github的用户名为zhaoolee,如果我在Github中建立一个名为zhaoolee的仓库,那zhaoolee仓库中READNE.md的内容,便会展现到github主页顶部。更有趣的是,如果给仓库编写一个脚本,就可以利用GithubActions自动更新主页的内容。我有两个网站V2方圆和方圆小站,我通过GithubActions设置了一个每隔15分钟自动运行的任务,任务内的程序会自动爬取V2方圆和方圆小站的前三篇内容,并将链接更新到我的Github主页。当用免费的GithubActions为自己的博客引流时,我体会到了白嫖的快乐,获得了Github长期的优质流量。image-20210123160311592Python脚本如下importfeedparser importtime importos importre importpytz fromdatetimeimportdatetime defget_link_info(feed_url,num): result="" feed=feedparser.parse(feed_url) feed_ent

  • Android 如何使用短信链接打开APP

    短信链接跳转APP平时我们会收到广告短信,比如某东,某宝,里面附加着链接,当你点开链接(手机自带的浏览器),发现浏览器打开后,等一下下,就会打开对应的APP,直接到广告相应的页面。Android端的代码从简单的开始,第一个启动的Activity先来处理<activityandroid:name=".activity.ActivityFirst" <intent-filter <actionandroid:name="android.intent.action.MAIN"/ <categoryandroid:name="android.intent.category.LAUNCHER"/ </intent-filter <!--不可以把上面,桌面启动图标的intent-filter,跟下面短信打开App的intent-filter写一起,否者没有桌面图标-- <!--在启动的activity加入以下代码,其中scheme很重要,短信启动App的标识吧-- <intent-filt

  • 手把手教你如何有效回复审稿人的comments

    导读每一篇论文都是科研人员的心血,投稿后“漂泊”在外(underreview),“老母亲”在家日夜惦念(wait…)。终有一天,它带着沉甸甸的“包裹”回来了(reviewercomments),至于“包裹”里是惊喜还是惊吓,包藏着一段怎样艰辛的历程,我们又该如何对其“梳妆打扮”甚至“改头换面”(responsetoreviewers’comments),送他“安全”返回(revisedsubmission)并抵达终点(accept)呢……小编带你且看且分析。审稿人的comments千差万别,不过依旧可以找到些许规律可循。小编认为,回复审稿人主要需要把握四点:端正个人态度、吃透反馈问题、分析回复思路、整合回复语言。---Tips1:端正个人态度---一般情况下,审稿人多为高校或研究机构的科研工作者,他们或常年奋斗在科研一线,经验丰富;或早年“叱咤”学术圈,功成身退。即使是领域大牛,也不可能对所有研究方向都了如指掌。因此,确实可能存在对作者论文的内容理解不到位,所提出的问题不是非常合情合理的可能,甚至可能存在观点偏颇;亦或审稿人对作者论文所述观点理解极深,所提出的问题异常尖锐,搞的作者一时

  • C#开发BIMFACE系列39 网页集成开发3:审图系统中三维模型比对

      在建筑施工图审查系统中,设计单位提交设计完成的模型/图纸,审查专家审查模型/图纸。审查过程中如果发现不符合规范的地方,则流程退回到设计单位,设计单位人员根据审查意见重新调整设计,调整完成后再次提交到审查专家。此时为了便于专家审查,需要知道当前轮次的模型/图纸与上一轮次的模型/图纸发生了哪些异动,针对异动情况进行审查即可。先看个效果效果如上图。左侧是当前审查轮次的模型,中间是上一轮次的模型,右侧是2个模型的对比产生的异动列表。(1)点击“新增构建”中的构件,自动定位到当前轮次中新增的目标构件。异动构件以浅绿色表示。2个模型视角同步移动。(2)点击“删除构建”中的构件,自动定位到上一轮次中的目标构件,本轮次中的构件被删除,所以不显示。异动构件以浅绿色表示。2个模型视角同步移动。(3)点击“修改构建”中的构件,自动定位到当前轮次中修改的构件以及上一轮次对应的构件。异动构件以浅绿色表示。2个模型视角同步移动。BIMFACE之前是没有三维模型联动对比的功能,在我和BIMFACE的技术支持团队的美丽小姐姐沟通后,他们把我的要求纳入了他们产品的需求,经过工程师们加班加点的辛苦付出,很快就实现了该

  • 清华AI的华山论剑现已开启,不服就来战!王小川楼天城唐文斌都曾搅动风云

    贺乾明李根发自纽凹非寺 量子位报道|公众号QbitAI清华的计算机系影响力,如今已不用赘述。“贵系”培养的人才,正在全世界、产学研全方位展现实力。而且AI浪潮之下,清华计算机系声名更盛。学界,有斩获斯隆奖的论文;产业领域,最好的AI公司、最好的无人车初创公司,都跟清华血统密切相关。清华的教授,清华的毕业生,甚至清华的实习生,都在成为业界抢夺的对象。 然而你问一代代“贵系”毕业生,是谁给了他们AI启蒙?又是什么成为他们最难忘的集体记忆?或者拿什么可以在清华计算系全民瞩目。答案莫过于智能体大赛。这是一个王小川每年一定赴约的比赛,这是一个至今让06年决赛失利的教主楼天城念念不忘的比赛,这也是一个批量走出唐文斌杨沐等AI大牛的比赛——而且更多江山才人一代代从中涌现。即便冠以清华计算机系的华山论剑,也不为过。这是一个怎样的比赛?清华智能体大赛智能体,Agent,人工智能专有名词,表示那些独立的能够决策并可以同环境交互的实体。自2016年AlphaGo狂飙突进后,该概念被一遍遍科普。但在20年前,就以智能体大赛(TsinghuaArtificialIntelligenceProgrammingCo

  • 手把手 | 嫌Python太慢?并行运算Process Pools三行代码给你4倍提速!

    大数据文摘作品,转载要求见文末 作者|AdamGeitgey编译|元元、Lisa、Saint、AileenPython绝对是处理数据或者把重复任务自动化的绝佳编程语言。要抓取网页日志?或者要调整一百万张图片?总有对应的Python库让你轻松完成任务。然而,Python的运营速度一直饱受诟病。默认状态下,Python程序使用单个CPU的单个进程。如果你的电脑是最近十年生产的,多数情况下会有4个及以上CPU核。也就是说,当你在等程序运行结束的时候,你的计算机有75%或者更多的计算资源都是空置的!让我们来看看如何通过并行运算充分利用计算资源。多亏有Python的concurrent.futures模块,仅需3行代码就可以让一个普通程序并行运行。一般情况下的Python运行比如说我们有一个文件夹,里面全是图片文件,我们想给每一张图片创建缩略图。下面的短程序中我们使用Python自带的glob函数获取一个包含文件夹中所有图片文件的列表,并用Pillow图片处理库获取每张图片的128像素缩略图。这个程序遵循很常见的数据处理模式:1.从您想处理的一系列文件(或其他数据)开始2.编写一个处理一个数据的

  • 老瓶装新酒 - C#调用WM手机发送短信(源码)

    一些系统,需要能够发送短信,量很小,平均每日10条。 运营商平台太贵,白名单很严格,小额只能发省内; 各短信平台有各种限制,大事件前后会关闭; 飞信以前可以用WAP发,但是现在多了验证码,搞不定了; 短信猫买来还得写控制程序,价钱和时间上…… 手上有两部废弃的WM手机,没有故障,只是老旧不好用! 有一个WM软件(后面有下载),它在WM手机上开启一个Http服务器,使得我们可以在PC上通过浏览器直接访问!有收发短信的功能! 把手机WiFi性能跳到最大,关闭每x分钟限制自动关闭;软件设置自动开启服务,关闭“运行时防止休眠”(它设计上有BUG,这个会导致服务10分钟就关闭),拉到启动目录设为自动启动。OK!就是它了,我们写个程序包装一下,伪造为Web操作收发短信! 主要代码如下: ViewCodeusingSystem; usingSystem.Collections.Generic; usingSystem.Globalization; usingSystem.Net; usingSystem.Text; usingSystem.Text.RegularExpressions; using

  • 机器学习领域中最受欢迎的20个R语言包

    我们通过分析下载次数最多的R包,列出了前20名流行的机器学习R包。大多数R包都深受Kagglers大神的喜爱,也被资深的笔者所赞美,而这些包的使用率或评价高低不仅仅取决于其它的包对于这个包的依赖程度。下面我们来分别看看这20个R包。 1.e1071Functionsforlatentclassanalysis,shorttimeFouriertransform,fuzzyclustering,supportvectormachines,shortestpathcomputation,baggedclustering,naiveBayesclassifier1.潜类分析函数,短暂性的傅里叶变化、模糊的集群、支持向量机、最短路径计算、装袋集群、朴素贝叶斯分类器等。2.rpartRecursivePartitioningandRegressionTrees2.递归分割和回归树3.igraphAcollectionofnetworkanalysistools3.网络分析工具的集合 4nnetFeed-forwardNeuralNetworksandMultinomialLog-LinearMo

  • ROS | 机器人操作系统简介

    大家好,又见面了,我是你们的朋友全栈君。 ROS|机器人操作系统简介1.ROS基本概念2.ROS架构2.1OS层2.2中间层2.3应用层3.通信机制4.计算图4.1节点(Node)4.2节点管理器(Master)4.3消息(Message)4.4话题(Topic)4.5服务(Service)4.6动作(Action)4.7消息记录包(Bag)4.8参数(Parameter)4.9功能包(Package)4.10功能包清单(Packagemanifest)4.11元功能包(MetaPackage)5.开源社区1.ROS基本概念ROSWiki对于机器人操作系统(ROS)的解释是:ROS是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。它的目的是为了提高机器人研发中的软件复用率,简化跨机器人平台创建复杂、鲁棒的机器人行为这一过程的难度与复杂度。 上图是ROS官方早期发布的一张图,简单定义了什么是ROS,即ROS是通讯机制、开发工具、应用功

  • 腾讯云内容分发网络CDN查询腾讯云SSL托管Https证书信息内容分发网络API2017

    1.接口描述本接口(GetHostCertList)用于查询用户托管在腾讯云SSL上的HTTPS证书ID等信息,支持分页查询。 接口请求域名:cdn.api.cloud.tencent.com 1)单次最多查询1个域名对应的1个证书信息; 调用Demo 2.输入参数以下请求参数列表仅列出了接口请求参数,正式调用时需要加上公共请求参数,见公共请求参数页面。其中,此接口的Action字段为GetHostCertList。 参数名称 是否必选 类型 描述 host 是 String 域名 3.输出参数 参数名称 类型 描述 code Int 公共错误码,0表示成功,其他值表示失败。详见错误码页面的公共错误码。 message String 模块错误信息描述,与接口相关 codeDesc String 英文错误信息,或业务侧错误码。 data Array 结果数据,详细说明见下文 data字段说明 参数名称 类型 描述 cert_list Array HTTPS证书数组,详细说明见下面 count String 返回的HTTPS证书总数

  • Meta-RL——Efficient Off-Policy Meta-Reinforcement Learning via Probabilistic Context Variables

    Meta-RL——EfficientOff-PolicyMeta-ReinforcementLearningviaProbabilisticContextVariables 作者:凯鲁嘎吉-博客园 http://www.cnblogs.com/kailugaji/   这篇博客是“EfficientOff-PolicyMeta-ReinforcementLearningviaProbabilisticContextVariables”的简要阅读笔记,围绕如何从过去学习的任务中针对新的任务获取有效的信息以及如何对新任务的不确定性做出更准确的判断这两个问题,论文通过一个任务编码器来学习任务的表征(概率上下文变量z),融合软演员评论员算法(SoftActor-Critic,SAC)与变分推断KL损失,提出一种异策略元强化学习算法,通过分离任务推断与智能体学习过程来提高元学习中任务的学习样本利用效率。   深度强化学习算法需要大量的经验来学习单个任务。虽然元强化学习(meta-RL)算法可以让智能体从少量经验中学习新技能,但一些主要的挑战阻碍了

  • c++ 数值极限

      一般来说,数值型别的极限是一个与平台相关的特性。c++标准程序库通过templatenumeric_limits提供这些极值,取代c语言所采用的预处理常数。你仍然可以使用后者,其中整数常数定义于<climits>和<limits.h>,浮点常数定义于<cfloat>和<float.h>。新的极值概念有两个优点,第一提供了更好的型别安全性,第二是程序员可借此写出一些template以核定这些极值。     1.内建型别的最小长度   C++Standard规定了各种型别必须保证的最小精度:见下:     型别     最小长度     char     1byte     shortint  2bytes     int       2bytes     longint   4bytes     float &

  • 学习一下 SpringCloud (五)-- 配置中心 Config、消息总线 Bus、链路追踪 Sleuth、配置中心 Nacos

    (1)相关博文地址: 学习一下SpringCloud(一)--从单体架构到微服务架构、代码拆分(maven聚合):https://www.cnblogs.com/l-y-h/p/14105682.html 学习一下SpringCloud(二)--服务注册中心Eureka、Zookeeper、Consul、Nacos:https://www.cnblogs.com/l-y-h/p/14193443.html 学习一下SpringCloud(三)--服务调用、负载均衡Ribbon、OpenFeign:https://www.cnblogs.com/l-y-h/p/14238203.html 学习一下SpringCloud(四)--服务降级、熔断Hystrix、Sentinel:https://www.cnblogs.com/l-y-h/p/14364167.html复制   (2)代码地址: https://github.com/lyh-man/SpringCloudDemo复制   一、引入配置中心 1、问题与解决 【问题:】 通过前面几篇博客介绍,完成了基

  • 机械革命z2安装ubuntu20

    为了性能买了个游戏本机械革命z2,但还是想用上linux,身为程序员习惯了linux的开发环境有点离不开。但是之前尝试安装deepin或者linux都失败了,一是N卡条件下安装过程和安装之后的显示有问题,在有就算都解决了最后的触摸板问题还是没办法解决。没有触摸板的电脑是不完整的,遂放弃。开发也用了其他的电脑。 后来ubuntu发了5.4版本内核的ubutnu20,让我忍不住想试试。先是在一台没有N卡的笔记本上安装,在解决了一些小问题之后以前都是那么的接近完美。 更新的内核,想必对于硬件有了更好的支持,之前的触摸板应该也不是问题了。于是我又尝试了一次,果然这次成功了,触摸板、N卡一切正常。 下面简单的记录下,安装过程中遇到的问题。 1,正常安装后输入密码无法进入系统 解决:暂时禁用N卡驱动 #在登陆界面按ctrl+alt+f3进入命令行模式 sudovi/etc/default/grub #找到GRUB_CMDLINE_LINUX_DEFAULT="quietsplash"这一行,把他改成GRUB_CMDLINE_LINUX_DEFAULT="quietsplashnomodeset"

  • Kubernetes学习之路(二十三)之资源指标和集群监控

    目录1、资源指标和资源监控2、WeaveScope监控集群(1)WeaveScope部署(2)使用Scope(3)拓扑结构(4)实时资源监控(5)在线操作(6)强大的搜索功能2、核心指标监控之metrics-server 1、资源指标和资源监控 一个集群系统管理离不开监控,同样的Kubernetes也需要根据数据指标来采集相关数据,从而完成对集群系统的监控状况进行监测。这些指标总体上分为两个组成:监控集群本身和监控Pod对象,通常一个集群的衡量性指标包括以下几个部分: 节点资源状态:主要包括网络带宽、磁盘空间、CPU和内存使用率 节点的数量:即时性了解集群的可用节点数量可以为用户计算服务器使用的费用支出提供参考。 运行的Pod对象:正在运行的Pod对象数量可以评估可用节点数量是否足够,以及节点故障时是否能平衡负载。 另一个方面,对Pod资源对象的监控需求大概有以下三类: Kubernetes指标:监测特定应用程序相关的Pod对象的部署过程、副本数量、状态信息、健康状态、网络等等。 容器指标:容器的资源需求、资源限制、CPU、内存、磁盘空间、网络带宽的实际占用情况。 应用程序指标:

  • 老饼讲解-机器学习

    http://ml.bbbdata.com/teach#

  • asp.net core 2.1 配置管理

    1.直接读取配置 StartUp类中使用Configuration["ConnectionString"],Configuration["AliyunAkSk:Ak"] 如果在Service中想读取配置,就先注入IConfigurationconfiguration   2.配置强类型化读取 现有配置节点如下 "OssSettings":{    "ConfigItems":[      {        "Name":"ali_",        "Domain":"img.",        "OfficalDomain":"img.",        

  • commons-io工具包的基本使用

    commons-io工具包的基本使用:https://blog.csdn.net/backbug/article/details/99572931

  • selenium+Java刷新浏览器

    11.driver.navigate().refresh(); 22.driver.get(driver.getCurrentUrl()); 33.driver.navigate().to(driver.getCurrentUrl()); 44.driver.findElement(By.id("Contact-us")).sendKeys(Keys.F5); 55.driver.executeScript("history.go(0)");复制  

  • WinForm中一个窗体调用另一个窗体

    【转】WinForm中一个窗体调用另一个窗体的控件和事件的方法(附带源码)   //如果想打开一个Form2的窗体类,只需要: Form2form=newForm2();//有没有参数得看你Form2的构造函数怎么写的了 form.Show(); //或者简化成: newForm2().Show();复制  

相关推荐

推荐阅读