Windows上安装Hadoop 3.x

     

目录

0. 安装Java

1. 安装Hadoop

1.1 下载Hadoop

1.2 下载winutils

2. 配置Hadoop

1. hadoop-env.cmd

2. 创建数据目录

3. core-site.xml

4. hdfs-site.xml

3. 启动测试

3.1 namenode格式化

3.2 启动Hadoop

 3.3 查看webui

3.4 测试hdfs

3.5. 测试MapReduce

4. 还没结束

4.1 YARN的webui没看到任务

4.2 hadoop-streaming的小坑


我记得10年前Windows上装Hadoop得借助cygwin,现在不用了。现在装起来更容易了,今天试了一下并记录一下过程免得忘了。当然win上玩Hadoop多半为了学习,和之前Windows上安装HBASE作一个呼应。

百度一下还是很多的,我参考的主要是两篇:

Windows环境下hadoop安装和配置详细步骤(图文)_windows安装hadoop及配置_yujkss的博客-CSDN博客

Windows安装Hadoop3.x及在Windows环境下本地开发_hadoop3.x带snappy(可用于windows本地开发)_CodeDevMaster的博客-CSDN博客

这两篇的过程居然还有一些不一样,经过尝试,发现各有一些没考虑到的,分享一下我的踩坑过程

0. 安装Java

这一步没什么好说的,我安装的是jdk1.8u202, 可以在华为这下载到。

安装完了配置一下环境变量的JAVA_HOME, 并且把 %JAVA_HOME%\bin 添加到Path里。

1. 安装Hadoop

1.1 下载Hadoop

从官方渠道  https://archive.apache.org/dist/hadoop/common/ 下载,速度较慢可以先用百度网盘离线下载

 

然后配置一下这个目录到环境变量的 HADOOP_HOME 。并且把 %HADOOP_HOME%\bin 添加到Path里。

1.2 下载winutils

下载Windows专用的winutils.exehadoop.dll 放到  /bin 目录下和 C:\Windows\System32 目录下(只放bin里,不放system32,哪怕配置过Path环境变量也不够,后面测试MapReduce就报错了)。这里需要对应winutils和Hadoop的版本。看winutils的github这里,GitHub - vhma/winutils: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows . 如果上不去,直接看这里:Hadoop 之 winutils_电光闪烁的博客-CSDN博客。

这就是为啥我选的Hadoop版本是3.1.2。

2. 配置Hadoop

1. hadoop-env.cmd

因为环境变量配了JAVA_HOME, 所以这个文件不用改

2. 创建数据目录

在%HADOOP_HOME%下创建tmpdata目录,在data下创建namenodedatanode目录。其实目录在哪无所谓,后面路径写对就行。

3. core-site.xml

<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property><property><name>hadoop.tmp.dir</name><value>D:/bigdata/hadoop-3.1.2/tmp</value></property>
</configuration>

这里路径分隔符可以写“\”,建议还是用“/” ,因为下面的hdfs-site就不能用 “\”。

4. hdfs-site.xml

<configuration><property><name>dfs.namenode.name.dir</name><value>/D:/bigdata/hadoop-3.1.2/data/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>/D:/bigdata/hadoop-3.1.2/data/datanode</value></property>	
</configuration>

这里连盘符前都要加 “/”

3. 启动测试

到这里其实就可以用了。准备开始,建议用管理员权限打开CMD

3.1 namenode格式化

hdfs namenode -format

执行下去如果没问题,会有一个Y or N 的选择,y就行

3.2 启动Hadoop

执行start-all.cmd

%HADOOP_HOME%\sbin\start-all.cmd

它会启动4个进程:

如果需要关闭,用stop-all.cmd就行,它会关掉4个打开的进程。

 3.3 查看webui

hdfs的地址是:http://localhost:9870/

yarn的地址是:http://localhost:8088/cluster

3.4 测试hdfs

3.5. 测试MapReduce

通过自带的example的运行wordcount,

hadoop jar share\hadoop\mapreduce\hadoop-mapreduce-examples-3.1.2.jar wordcount /usr/words.txt /output

 然后很快就会看到运行日志,包括结果也出来了

 你以为这就OK了,其实没结束

4. 还没结束

4.1 YARN的webui没看到任务

运行了wordcount的MapReduce任务,怎么会看不到job,包括有些人也提到这个。找到一个解决方案:Yarn UI 不显示任务 - 工克己 - 博客园 (cnblogs.com)

配置mapred-site.xml

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

 估计是开启由YARN管理MapReduce计算程序,这样才能在YARN的任务队列里看到。

那么yarn-site.xml是不是也要配,顺便一起吧

<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property><name>yarn.resourcemanager.hostname</name><value>localhost</value></property>
</configuration>

关了重启动Hadoop(重启Hadoop会遇到各种各样的问题,其中一个hdfs不能操作了:Name node is in safe mode.  遇到这个就粗暴删了数据目录重新格式化....还包括4个进程可能不能正常stop掉等等。

删掉/output目录,再次运行wordcount,报错了,长篇大论意思是yarn管理的container启动不起来,主要信息是 Exception message: CreateSymbolicLink error (1314): ???????????

于是根据这篇博客的方法解决:Windows平台Hadoop出现 Exception message: CreateSymbolicLink error (1314): ???????????_lhyxcxy的博客-CSDN博客

里面两个方法,我也没搞清楚是哪个起作用,所以前面说的建议用管理员权限打开CMD。

最后解决的结果是wordcount花费大量时间在job的启动上, 然后webui看到任务历史了。

感觉并不需要这么用YARN来跑任务。

4.2 hadoop-streaming的小坑

跑hadoop-streaming时候, -files这种通用参数必须放在其他参数的前面,否则会报"Streaming command failed"的错误

 如下:

hadoop jar share/hadoop/tools/lib/hadoop-streaming-3.1.2.jar -files "map1.py,red1.py" -input /usr -output /output -mapper "python map1.py" -reducer "python red1.py"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF基础入门-Class3-WPF数据模板

WPF基础入门 Class3&#xff1a;WPF数据模板 1、先在cs文件中定义一些数据 public partial class Class_4 : Window{public Class_4(){InitializeComponent();List<Color> test new List<Color>();test.Add(new Color() { Code "Yellow", Name &qu…

客户体验、在线帮助中心、官网博客,这三者有何关联?

客户体验与在线帮助中心和官网博客之间存在一定的联系&#xff0c;但它们并不完全等同。下面将分别介绍这三者的关系和作用。 客户体验&#xff1a; 客户体验是指客户在与企业进行交互时所感受到的整体体验。它包括客户在使用产品或服务过程中的感受、情感、满意度和忠诚度等…

Python类的属性和方法

Python类是一种面向对象编程的基本概念&#xff0c;它可以用来创建对象&#xff0c;对象可以拥有属性和方法。 属性是类的特征&#xff0c;它们用于存储对象的状态。属性可以是任何数据类型&#xff0c;例如整数、字符串、列表等。在类中&#xff0c;属性通常定义为类的变量&am…

平衡二叉树(AVL树)C++

目录 AVL树的概念 AVL树的节点结构 AVL树的插入 更新平衡节点 代码实现 AVL树的旋转 左单旋 右单旋 左右双旋 右左双旋 AVL树的删除 AVL树的查找 AVL树的高度 AVL树的判定 AVL树的遍历 AVL树的概念 二叉排序&#xff08;搜索&#xff09;树&#xff0c;虽然可以…

原生微信小程序 动态(横向,纵向)公告(广告)栏

先看一下动态效果 Y轴滚动公告的原理是swiper组件在页面中的Y轴滚动&#xff0c;属性vertical&#xff0c;其余属性也设置一下autoplay circular interval"3000" X轴滚动的原理是&#xff0c;利用动画效果&#xff0c;将内容从右往左过渡过去 wxml&#xff1a; &l…

在CSS中,盒模型中的padding、border、margin是什么意思?

在CSS中&#xff0c;盒模型&#xff08;Box Model&#xff09;是用来描述和布局HTML元素的基本概念。它将每个HTML元素看作是一个矩形的盒子&#xff0c;这个盒子包括了内容&#xff08;content&#xff09;、内边距&#xff08;padding&#xff09;、边框&#xff08;border&a…

Python使用 YOLO_NAS_S 模型进行目标检测并保存预测到的主体图片

一、前言&#xff1a; 使用 YOLO_NAS_S 模型进行目标检测&#xff0c;并保存预测到的主体图片 安装包&#xff1a; pip install super_gradients pip install omegaconf pip install hydra-core pip install boto3 pip install stringcase pip install typing-extensions pi…

什么是 RESTful API

什么是 RESTful API&#xff1f; RESTful API是一种设计哲学和架构风格&#xff0c;它基于 HTTP 协议和其状态管理原则&#xff0c;用于构建分布式系统。RESTful API 遵循以下设计原则&#xff1a; 资源层&#xff1a;API 应该代表一种资源&#xff0c;例如一个用户、一个订单…

外部库/lib/maven依赖项 三者关系

外部库(存放项目初始配置的jar包)(它的文件夹里并没有包含lib文件夹的引的外部的依赖的jar包) lib(存放外部导入到项目的依赖的jar包) maven依赖项(管理项目所有的jar包依赖) 三者存放jar包的关系 项目所依赖的全部的jar包 maven依赖项的jar包 外部库中的jar包 lib中的…

指针进阶详解

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂。 目录 1.字符指针 2.指针数组 3.数组指针 4.数组传…

安全物理环境技术测评要求项

1.物理选择-保证等级保护对象物理安全的前提和基础 1-0/2-2/3-2/4-2&#xff08;级别-要求项数量&#xff09; a&#xff09;具备防震、防风、防雨能力 b&#xff09;避免顶层或地下室&#xff0c;否则应加强防水、防潮措施 测评实施重点&#xff1a; 1&#xff09;机房场地所在…

HTTP 框架修炼之道 | 青训营

Powered by:NEFU AB-IN 文章目录 HTTP 框架修炼之道 | 青训营 走进 HTTP 协议HTTP 框架的设计与实现应用层中间件层路由设计协议层 传输层&#xff08;网络层&#xff09;1. BIO&#xff08;Blocking I/O&#xff09;:2. NIO&#xff08;Non-blocking I/O&#xff09;:区别&…

五分钟了解最短路径寻路算法:Dijkstra 迪杰斯特拉

最短路径查找算法 寻路算法在生活中应用十分常见。本文实现的是关于图的最短路径查找算法。 该算法比较常见于游戏和室内地图导航。 实现 例子&#xff1a;几个节点之间&#xff0c;相连接的线段有固定长度&#xff0c;该长度决就是通过代价。查找到花费最少的路径。该图结构…

跳跃游戏 II【贪心算法】

跳跃游戏 II class Solution {public int jump(int[] nums) {int cur 0;//当前最大覆盖路径int next 0;//下一步的最大覆盖路径int res 0;//存放结果&#xff0c;到达终点时最少的跳跃步数for (int i 0; i < nums.length; i) {//遍历数组&#xff0c;以给出数组以一个…

计算机网络安全的背景

虽然传统的计算机发展和当今的电子商务不同&#xff0c;但是不可否认网络已经成 为非常重要的信息和数据互换交换的平台。但是随着网络不断发展渗透到人们的日 常生活、手机终端、交易支付等环节时&#xff0c;网络安全已经成为一个焦点和不可逾越的 发展鸿沟。尽管目前网上…

第七周第七天学习总结 | MySQL入门及练习学习第二天

实操练习&#xff1a; 1.创建一个名为 cesh的数据库 2.在这个数据库内 创建一个名为 xinxi 的表要求该表可以包含&#xff1a;编号&#xff0c;姓名&#xff0c;备注的信息 3.为 ceshi 表 添加数据 4.为xinxi 表的数据设置中文别名 5.查询 在 xinxi 表中编号 为2 的全部…

网络编程嵌套字

网络编程 程序员主要操作应用层和传输层来实现网络编程 也就是自己写一个程序&#xff0c;让这个程序可以使用网络来通信 这个程序属于应用层&#xff0c;实现通讯就需要获取到传输层提供的服务 这就需要使用传输层提供的api UDP&#xff1a;无连接&#xff0c;不可靠传输&a…

css background实现四角边框

2023.8.27今天我学习了如何使用css制作一个四角边框&#xff0c;效果如下&#xff1a; .style{background: linear-gradient(#33cdfa, #33cdfa) left top,linear-gradient(#33cdfa, #33cdfa) left top,linear-gradient(#33cdfa, #33cdfa) right top,linear-gradient(#33cdfa, #…

5.8. Trusted Board Boot

5.8. Trusted Board Boot启动 Trusted Board Boot(TBB) 功能通过验证所有固件镜像(包括正常世界引导加载程序)来防止恶意固件在平台上运行。它通过使用公钥加密标准 (PKCS) 建立信任链来实现这一点。 本文介绍了可信固件-A (TF-A) TBB 的设计,它是Trusted Board Boot(TBBR…

Viobot基本功能使用及介绍

设备拿到手当然是要先试一下效果的&#xff0c;这部分可以参考本专栏的第一篇 Viobot开机指南。 接下来我们就从UI开始熟悉这个产品吧&#xff01; 1.状态 设备上电会自动运行它的程序&#xff0c;开启了一个服务器&#xff0c;上位机通过连接这个服务器连接到设备&#xff0c…