ToB企服应用市场:ToB评测及商务社交产业平台

标题: 开源大数据Hadoop伪分布式搭建及虚拟机的创建 [打印本页]

作者: 傲渊山岳    时间: 2024-10-12 00:26
标题: 开源大数据Hadoop伪分布式搭建及虚拟机的创建
一、事前相识

1.完全分布式

Hadoop的各个组件运行在多个节点上。每个节点都是独立的实体,有自己的一份数据副本和盘算能力。
真正的分布式,由3个及以上的实体机大概虚拟机组件的机群。
2.伪分布式

从字面明确:不是真正的分布式。Hadoop的所有组件都运行在同一个节点上。
伪分布式是将多态呆板的使命放到一台呆板运行
二者的区别和部署:Hadoop伪分布式和完全分布式:明确两者的区别与部署-百度开发者中央 (baidu.com)
(感兴趣的可以看一下)
注意:下面内容使用是一台虚拟机安装Hadoop(可以看作伪分布式搭建),之后假如我用伪分布式这一台虚拟机再克隆两台虚拟机并做一些改正与配置(这个可以看作完全分布式)
二、安装VMwareWorkstation Pro

本人使用的是17.5.2版本的VMwareWorkstation Pro
下载教程如下:
【虚拟机软件】 VMware Workstation Pro 17 安装教程(附官方下载地址)

下载视频教程如下:
https://www.bilibili.com/video/BV1SapseqERC/?share_source=copy_web&vd_source=cb6d0e6ee2114e38d0c21771ef4a0f70

目前VM有个人免费版本,可以直接使用,不需要密钥
有需要的话可以去百度搜索VM密钥,大把
三、创建虚拟机及Hadoop伪分布式搭建

(已安装好虚拟机的可以跳过)
1、创建虚拟机的事前准备

Minimal ISO
Mini版本,只有必要的软件,自带的软件最少(没有图形化界面)
CentOS-7-x86_64-Minimal-2009.iso 978M
DVD ISO
尺度版本安装(服务器安装保举使用,包罗一些根本的软件和图形化界面)
CentOS-7-x86_64-DVD-2207-02.iso 4个多G
Everything ISO
对完备版安装盘的软件举行补充,集成所有软件(图形化界面版)
很大,没下过,好像有十几个G,似乎在官方的安装指南看到的。
CentOS 7镜像下载地址和方法

centos-7-isos-x86_64安装包下载_开源镜像站-阿里云 (aliyun.com)
我安装的是CentOS 7 64位
个人百度网盘链接(国内下载应该比官网快):
链接:https://pan.baidu.com/s/1eLpjNNCBqJVZd9jG-2xPIg 
提取码:dhqh 
官网下载地址:
CentOS Mirrors List
阿里下载地址:
centos-7-isos-x86_64安装包下载_开源镜像站-阿里云 (aliyun.com)
常用的服务器(Xftp,Xshell,finalshell)

链接:https://pan.baidu.com/s/177CHiXwdJ5KyHomirw-57A 
提取码:9lj7 
Winscp下载链接:
WinSCP :: Official Site :: Free SFTP and FTP client for Windows
jdk安装包

官网下载:Java Downloads | Oracle
我下载的是:jdk-8u241-linux-x64.tar.gz
官网可以找到:

个人网盘链接:(含hadoopLinux安装包及配置文件)
链接:https://pan.baidu.com/s/1ZZzbqUV7dZZCROkGGExu8A 
提取码:vsv1 
注意:不想找的可以直接下载,本实行使用的jdk和hadoop及配置文件压缩包都包罗在内。
hadoopLinux安装包

官网地址:Apache Download Mirrors
Apache Hadoophadoop-2.6.5.tar.gz下载地址(我的网盘里有):Apache Hadoop

对“先容了如何从Apache官方网站和清华大学开源软件镜像站下载Hadoop的不同版本,包括源码版和编译版的区别。”感兴趣的可以相识以下网站:hadoop的官网下载和各版本下载方法_hadoop下载-CSDN博客
2、创建虚拟机

①打开VM点击创建新的虚拟机

③我先给虚拟机配置,后期再装光盘,简易部署












⑮编辑虚拟机,开始给虚拟机装系统


⑰然后打开虚拟机,等候系统安装。安装结束后

⑱设置桌面


⑲选择磁盘


⑳最后,开始安装

21.设置用户密码




然后等候系统安装完毕后重启

重启后


通例可以以普通管理员身份student进入

但是为了权限和接下来Hadoop的搭建,我们以超等管理员root的身份进入,这样就不存在权限不敷问题

然后输入密码,密码是一开始设置的
然后点进步,输入选择这个

一直进步就行了,这样系统就安装完成了
四、Hadoop伪分布式的搭建

⑴确认网络是否打开

打开终端,输入ping www.baidu.com和ping 8.8.8.8来检测网络,检测过程可以用Ctrl+c停止
  1. ping www.baidu.com
  2. ping 8.8.8.8
复制代码
查抄网络状态
大概一:网络正常




大概二:网络不可达




以下是解决方法:
1.输入ifconfig检察ens33中的ip

2.进入配置文件更改配置保存并退出
  1. cd /etc/sysconfig/network-scripts
  2. vi ifcfg-ens33
复制代码
然后进入命令模式,点i,进入输入模式,找到ONBOOT=no,然后将弄改为yes(开机启动网卡)

  1. IPADDR=192.168.36.228
  2. NETMASK=255.255.255.0
  3. GATEWAY=192.168.36.2
  4. DNS1=114.114.114.114
  5. ZONE=public
复制代码
(这个配置后面有讲) 
然后Esc,然后输入:wq,保存并退出

3.开启网卡
  1. ifup ens33
复制代码
运行效果 

如果网卡激活乐成跳过此步,否则先查抄虚拟网络有没有开启,在当地服务中开启NAT模式



4.重启网络
  1. systemctl  restart  network
复制代码
接着再重新测试ping www.baidu.com
⑵设置静态网络

1、进入网络配置文件配置静态网络

使用vim命令进入网络配置文件内的命令模式
  1. vim /etc/sysconfig/network-scripts/ifcfg-ens33
复制代码
运行效果

进入以上页面按i键进入编辑模式,再将BOOTPROTO="dhcp"的值改成static(将网卡改为静态,否则每次打开虚拟机都会随机生成一个IP地址,不利于后续使用服务器毗连虚拟机)
ONBOOT的值改成yes(开机自动打开)(前面已经设置过)
设置IP地址:IPADDR="192.168.36.0"



子网掩码:NETMASK="255.255.255.0“(默认不变)
默认网关:GATEWAY="138.168.36.2"(默认不变)
DNS=“8.8.8.8”(谷歌的)(或)DNS=“180.76.76.76”(百度的)两个哪个都行
[也可以设置两个:DNS1="8.8.8.8"       DNS2="180.76.76.76"]
最终代码:

然后退出编辑,操作和上述一样,就不讲了
然后输入ficonfig命令,检察是否保存乐成

若没有保存上,则输入
  1. service network restart
复制代码
看到确定就完成了

2、关闭防火墙

原因:下面需要把宿主机上Linux的安装包(jdk和hadoop)传到虚拟机,不关防火墙无法传入
关闭防火墙(stop)
  1. systemctl stop firewalld.service
复制代码


没有报错意味着乐成
禁用防火墙(disable)
  1. systemctl disable firewalld.service
复制代码
 乐成代码

 检察防火墙状态
 
  1. systemctl status firewalld.service
复制代码
乐成代码
 

3、大概遇到的问题

 win10下的VMware还原网络设置,无法创建VMware网络适配器解决办法
参考网站:win10下的VMware还原网络设置,无法创建VMware网络适配器解决办法_vmware虚拟网络编辑器中还原默认设置卡死-CSDN博客
⑶将jdk和hadoop压缩包传到/opt/software目录下

1、创建software目录

用处:用于存放后续软件
  1. cd /opt/
  2. mkdir software
复制代码
运行代码 

2、从win传包到虚拟机

⑴毗连服务器和虚拟机,将jdk和hadoop的压缩包传到/opt/software目录下
做法:安装FinalShell(在前面常用服务器的网盘里,内里的服务器都可以使用,可以去b站找使用教程)后打开,将jdk和hadoop的压缩包传到/opt/software目录下
FinalShell使用方法,教程视频:FinalShell使用方法_哔哩哔哩bilibili
步骤:①打开FinalShell,然后


 ③双击打开

④乐成画面

⑤找到/opt/software目录

⑥右键,选择上传,找到下载的jdk和hadoop文件传入


3、举行jdk与hadoop的解压操作

①要对jdk和hadoop举行解压,首先需要进入其文件的地点文件位置(对与命令而言路径很重要)
  1. cd /opt/software
复制代码
②举行jdk与hadoop的解压操作
  1. tar -zxvf jdk-8u241-linux-x64.tar.gz
  2. tar -zxvf hadoop-2.6.5.tar.gz
复制代码
③解压结束后,使用ls代码来展示software文件夹内的文件
乐成的代码:

④删除压缩包文件
因为我们只需要压缩包用过压缩后文件,所有我们可以删除压缩包hadoop-2.6.5.tar.gz和jdk-8u241-linux-x64.tar.gz
  1. rm hadoop-2.6.5.tar.gz
  2. rm jdk-8u241-linux-x64.tar.gz
复制代码
效果
 


然后查抄目录里是否还有压缩包文件
输入ls

上述效果,表示已经删除压缩包文件
⑷配置JDK和Hadoop环境变量

①修改文件名为jdk1.8
  1. mv jdk1.8.0_241/ jdk1.8
复制代码
②添加jdk与hadoop的环境变量,在/etc/profile末尾追加下列内容
  1. vi /etc/profile
复制代码
vi操作与上述一样,i进入插入模式,Esc返回命令模式,然后:wq,保存并退出 
在文本最末尾添加下述代码
  1. export JAVA_HOME=/opt/software/jdk1.8
  2. export HADOOP_HOME=/opt/software/hadoop-2.6.5
  3. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin
复制代码



③刷新环境变量
  1. source /etc/profile
复制代码
大概报错:

用户需运行特定命令以获取详细信息并举行故障排除,然后重新毗连服务器。
按系统给的提示输入abrt-cli list --since 1726255046

我们可以看得系统显示的原因:

解决方法:启用ABRT的自动汇报
  1. abrt-auto-reporting enabled
复制代码
然后重新进入操作系统:
退出当前的登录
  1. exit
复制代码
然后重新打开终端,先进入software文件夹,然后再次输入source /etc/profile
  1. cd /opt/software
  2. source /etc/profile
复制代码
然后我们检测一下JDK是否安装乐成
  1. java -version
复制代码
乐成代码

 检测一下Hadoop是否安装乐成
 
  1. hadoop version
复制代码
乐成代码

乐成配置
⑸配置主机名称和IP

①配置主机名称

修改主机名称为hadooop100
(也可以改为hadoop1等等,为好记)
有两种修改方法
  1. hostnamectl set-hostname hadoop100
复制代码
 (或)
  1. vim /etc/hostname
复制代码
将名称改为你想改的 

可以使用命令
乐成代码hostnamectl来检察主机名称

②配置主机名映射IP地址

原因:配置主机名与IP地址映射后,访问服务器上部署的服务就不消在记取IP地址,只需要输入服务器名称即可访问服务,相比记取IP地址访问应用要方便。
先返回虚拟机的根目录
  1. cd
复制代码

然后修改/etc/hosts文件
  1. vim /etc/hosts
复制代码


大概可以将主机名和IP添加到最下面

这样我们测试主机名映射IP地址时,只需要输入主机名称,而不需要输入主机IP

⑹设置ssh免密登录

原因:在后续毗连不同的呆板时,不需要重复多次输入密码,使过程简便
首先创建密钥对,产生公钥与私钥对
  1. ssh-keygen -t rsa
复制代码
接着什么都不消管,回车3次,出现下列代码,表示乐成

然后将本机的公钥复制到localhost中
  1. ssh-copy-id localhost
复制代码
运行 



然后查验是否需要输入密码,ssh +自己的主机名称
  1. ssh hadoop100
  2. ssh localhost
复制代码
运行


可以看到我们不需要再输入密码,则表示我们的免密登录设置乐成
⑺修改Hadoop配置文件

伪分布式运行模式
★由于接下来要配置许多东西以是一些根本命令我写在下面,后面不会再说了
    ◆配置文件时, 按 A 键进入编辑模式
    ◆文件配好后, 按 Esc 键,然后再再最下面输入 :wq 保存并退出

有两种修改方法
①已经下载好配置文件,直接上传

举行伪分布式搭建的过程中需要举行配置文件的修改,此处用提前已经编辑好的配置文件覆盖原有文件的方式举行修改,将配置文件中的 8个配置文件通过FinalShell传输到/opt/software/hadoop2.6.5/etc/hadoop举行覆盖。
在上述网盘的事前准备中我们已经下载好配置文件的压缩包
首先我们在win(宿主机)上解压好配置文件(注意:需要解压)
然后打开


然后使用我们的FinalShell将配置文件里的所有文件传入/opt/software/hadoop2.6.5/etc/hadoop中举行覆盖


这样,修改Hadoop配置文件就完成了
②没有下载配置文件,手动修改

⒈检察hadoop 目录结构

首先先进入hadoop目录
  1. cd /opt/software/hadoop-2.6.5/etc/hadoop
复制代码
然后我们浏览hadoop目录下的文件
 
  1. ll
复制代码
 运行效果

上述为需要配置的文件 
⒉配置hadoop-env.sh

  1. vim hadoop-env.sh
复制代码
 #号后面的蓝色代码都是注释
更改下列代码

⒊配置core-site.xml(核心组件)

  1. vim core-site.xml
  2. 需要在和之间加入的代码:
  3. <!-- 指定 HDFS 中 NameNode 的地址 -->
  4. <!-- 默认节点(写自己主机的ip)端口,端口默认为9000 -->
  5.     <property>
  6.         <name>fs.defaultFS</name>
  7.         <value>hdfs://hadoop100:9000</value>
  8.     </property>
  9. <!-- 指定 Hadoop 运行时产生文件的存储目录 -->
  10. <!-- hdfs的临时文件的目录***这个要记好,后面初始化错误可能会用到***  -->
  11.   <property>
  12.     <name>hadoop.tmp.dir</name>
  13.     <value>file:/opt/software/hadoop-2.6.5/tmp</value>
  14.   </property>
复制代码
 

⒋配置hdfs-site.xml(文件系统)

  1. vim hdfs-site.xml
  2. 需要在和之间加入的代码:
  3. <!-- 设置数据块应该被复制的份数(和集群机器数量相等,目前只有一个填1,以后有几台就填几台) -->
  4. <property>
  5.   <name>dfs.replication</name>
  6.   <value>1</value>
  7. </property>
  8. <!--指定NameNode运行产生的文件存储目录-->
  9. <property>
  10.   <name>dfs.namenode.name.dir</name>
  11.   <value>file:/opt/module/hadoop-2.6.5/dfs/name</value>
  12. </property>
  13. <!--指定DataNode运行产生的文件存储目录-->
  14. <property>
  15.   <name>dfs.datanode.data.dir</name>
  16.   <value>file:/opt/module/hadoop-2.6.5/dfs/data</value>
  17. </property>
  18. <property>
  19.     <name>dfs.namenode.secondary.http-address</name>
  20.     <value>hadoop100:50090</value>
  21.   </property>
  22. <!-- nn web端访问地址-->
  23.   <property>
  24.     <name>dfs.namenode.secondary.https-address</name>
  25.     <value>hadoop100:50091</value>
  26.   </property>
  27. <!--namenode的hdfs-site.xml是必须将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS、LISTFILESTATUS等需要列出文件、文件>夹状态的命令,因为这些信息都是由namenode来保存的。-->
  28.   <property>
  29.     <name>dfs.webhdfs.enabled</name>
  30.     <value>true</value>
  31.   </property>
复制代码

⒌配置mapred-site.xml.template(盘算框架文件)

添加一个新的名为:mapred-site.xml文件,并且将mapred-site.xml.template文件内容覆盖进去
 
  1. cp mapred-site.xml.template mapred-site.xml
复制代码
然后编辑
  1. vim mapred-site.xml
  2. 需要在和之间加入的代码:
  3. <!-- mapreduce的工作模式:yarn -->
  4. <property>
  5.     <name>mapreduce.framework.name</name>
  6.     <value>yarn</value>
  7.   </property>
  8. <!-- 设置jobhistoryserver 没有配置的话 history入口不可用 -->
  9.   <property>
  10.     <name>mapreduce.jobhistory.address</name>
  11.     <value>hadoop100:10020</value>
  12.   </property>
  13. <!-- 配置web端口 -->
  14.   <property>
  15.     <name>mapreduce.jobhistory.webapp.address</name>
  16.     <value>hadoop100:19888</value>
  17.   </property>
复制代码
 

⒍配置 yarn-site.xml 文件

  1. vim yarn-site.xml
  2. 需要在和之间加入的代码:
  3. <!--用于指定resourcemanager的主机名-->
  4.   <property>
  5.     <name>yarn.resourcemanager.hostname</name>
  6.     <value>hadoop100</value>
  7.   </property>
  8. <!-- 这个属性用于指定在进行mapreduce作业时,yarn使用mapreduce_shuffle混洗技术 -->
  9.   <property>
  10.     <name>yarn.nodemanager.aux-services</name>
  11.     <value>mapreduce_shuffle</value>
  12.   </property>
  13. <!--用于指定混洗技术对应的字节码文件-->
  14.   <property>
  15.     <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
  16.     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  17.   </property>
  18. <!-- 用于指定在RM中的应用程序管理器接口的地址 -->
  19.   <property>
  20.     <name>yarn.resourcemanager.address</name>
  21.     <value>hadoop100:8032</value>
  22.   </property>
  23. <!--用于指定调度程序接口的地址  -->
  24.   <property>
  25.     <name>yarn.resourcemanager.scheduler.address</name>
  26.     <value>hadoop100:8030</value>
  27.   </property>
  28. <!-- 用于指定rm下的resource-tracker的地址 -->
  29.   <property>
  30.     <name>yarn.resourcemanager.resourcetracker.address</name>
  31.     <value>hadoop100:8031</value>
  32.   </property>
  33. <!--用于指定RM管理界面的地址-->
  34.   <property>
  35.     <name>yarn.resourcemanager.admin.address</name>
  36.     <value>hadoop100:8033</value>
  37.   </property>
  38. <!--用于指定RM的web访问的地址 -->
  39.   <property>
  40.     <name>yarn.resourcemanager.webapp.address</name>
  41.     <value>hadoop100:8088</value>
  42.   </property>
  43.   <property>
  44.         <name>yarn.log-aggregation-enable</name>
  45.         <value>true</value>
  46.   </property>
  47.   <property>
  48.         <name>yarn.log-aggregation.retain-seconds</name>
  49.         <value>604800</value>
  50.   </property>
  51.   <property>
  52.         <name>yarn.nodemanager.resource.memory-mb</name>
  53.         <value>3072</value>
  54.   </property>
  55.   <property>
  56.         <name>yarn.nodemanager.resource.cpu-vcores</name>
  57.         <value>2</value>
  58.   </property>
  59.   <property>
  60.         <name>yarn.scheduler.minimum-allocation-mb</name>
  61.         <value>256</value>
  62.   </property>
复制代码

⒎配置master的slaves文件

  1. vim slaves
复制代码

这样,修改Hadoop配置文件就完成了
⑻格式化后启动、调用实例、停止所有运行的hadoop进程

①格式化集群
格式化 NameNode(第一次启动时格式化,以后就不要总格式化):
 
  1. cd
  2. hdfs namenode -format
复制代码
注意: 这里如果安装的时间多次初始化,会导致错误,解决方法是删除/opt/hadoop目录下的tmp文件(就是上面配置文件core-site.xml中需要注意的地方)
②开启hadoop服务
开启hadoop之前需要进入hadoop下面的文件夹,我们进入文件夹并浏览文件夹内容
  1. cd /opt/software/hadoop-2.6.5/sbin
  2. ls
复制代码
运行效果 

红框为启动和关闭hadoop全部服务进程
蓝框为启动和关闭hadoop的HDFS服务进程
可以根据自己需要来启动与关闭
我这里就启动全部进程来演示一遍
 
  1. start-all.sh
复制代码

完成后输入jps命令可以检察到Jps、NameNode、DataNode与SecondaryNameNode共四个进程)

如果你没有选择启动全部进程,而选择启动HDFS服务进程,就没有ResourceManager与NodeManager两个进程,需要开启yarn服务才能检察

③开启hadoop大概遇到的问题
⒈如果报:localhost: Host key verification failed. 错时
按以下操作解决:
  1. stop-all.sh  //关闭hadoop
  2. ssh-keygen -R hadoop  //-R 后面是自己的主机IP或者自己更改过的IP名称
复制代码
然后再重新启动hadoop 
⒉出现:root@mycomputer’s password: mycomputer: Permission denied, please try again. 错误
解决办法:修改root密码
  1. passwd root                                          //修改root密码
  2. sudo vi /etc/ssh/sshd_config                //.辑配置文件,允许以 root 用户通过 ssh 登录
  3.  找到:PermitRootLogin prohibit-password禁用
  4.  添加:PermitRootLogin yes
  5. systemctl restart sshd                   //启动ssh
  6. cd /etc/ssh/                                                //进入ssh目录
  7. vim sshd_config                                 //进入查看,(里面 port 22 的 # 号是否去掉,如果没就去掉)
  8. ps -e | grep sshd                         //检查一下ssh服务是否开启
  9. ss -lnt                                                //查看22端口是否开启
复制代码
然后启动,一起回车 
如果发现还报:mycomputer: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 异常,以下解决办法:
  1. //原因:由于更换root密码,导致当前账号可能没有配置免密登录,所以要创建公钥和私钥
  2. ssh-keygen -t rsa
  3. cd .ssh
  4. ls
  5. touch authorized_keys                //创建authorized_keys文件
  6. chmod 600 authorized_keys        //修改权限为600
  7. ls
  8. cat id_rsa.pub >> authorized_keys                //将公钥追加到authorized_keys文件中去
  9. cd                                                //返回到mycomputer
  10. ssh mycomputer                                //试试看能否成功免密登录
  11. start-all.sh                                        //启动hadoop
复制代码

⑤用浏览器web 端检察 HDFS 文件系统
登录集群web页面检察集群信息
⒈打开浏览器访问 http://此处替换为hadoop100的IP地址:50070
例如:http://192.168.36.128:50070(我的)
⒉打开浏览器访问 http://此处替换为hadoop100的IP地址:8088
例如:http://192.168.36.128:8088(我的)
可以在win浏览器打开,也可以在虚拟机的火狐浏览器打开




恭喜你,已经乐成搭建Hadoop伪分布式 
⑥关闭Hadoop服务进程
关闭集群命令为:stop-all.sh 实行完成后记得关闭集群哦!
  1. stop-all.sh
复制代码
五、实行训练

实行使命:在伪分布模式上举行WordCount官方案例
(WordCount官方案例是指在WordCount项目中,提供的实际应用示例或案例研究。WordCount是一个常见的数据处理使命,尤其在编程和数据分析领域。它通常涉及统计一个文本文件或字符串中每个单词出现的频率。)
1、在本机的/opt/software/hadoop-2.6.5上创建input文件,并写入恣意内容

首先退回根目录cd,然后进入到hadoop-2.6.5的文件夹中,然后写入恣意内容,如'aaa bbb ccc aaa bbb aaa'    //字符串
 
  1. cd
  2. cd /opt/software/hadoop-2.6.5
  3. echo 'aaa bbb ccc aaa bbb aaa'>input
复制代码

2、 将input文件上传至集群,并放置在集群的根目录/下

首先需要先开启hadoop集群服务:start-all.sh
然后将input文件上传至集群,并放置在集群的根目录/下:hdfs dfs -put input /
表明:
这条命令是用来将当地文件系统中的文件上传到HDFS(Hadoop Distributed File System)中。
具体来说:
hdfs dfs:这是Hadoop提供的命令行工具,用于操作HDFS。
-put:这个选项用于将当地文件或目录上传到HDFS。
input:这是当地文件系统中要上传的文件或目录的路径。
/:这是HDFS中的目标路径,即文件上传到HDFS根目录下。
  1. start-all.sh
  2. hdfs dfs -put input /
复制代码

3、执行share目录下的MapReduce程序

  1. hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount input output
复制代码
 代码表明:
hadoop jar:这是用来运行一个JAR文件的Hadoop命令。JAR文件通常包罗了要执行的程序和它的依赖。
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar:这是JAR文件的路径。这个JAR文件包罗了Hadoop MapReduce的示例程序。在这个路径中,hadoop-mapreduce-examples-2.6.5.jar 是示例程序的JAR文件,2.6.5 是版本号。
wordcount:这是JAR文件中的一个示例程序的名称。在这里,它指的是一个WordCount程序,它盘算文本文件中每个单词的出现次数。
input:这是输入数据在HDFS中的路径。
wordcount 程序会从这个路径读取数据。
output:这是程序运行的输出路径。在HDFS中,程序的效果会被写入到这个路径下。
这条命令的意思是:使用 Hadoop 的 MapReduce 示例 JAR 文件中的 WordCount 程序,对 HDFS 中 input 路径下的文件举行处理,并将效果写入到 HDFS 的 output 路径下。

4、检察集群上的输出效果

  1. hdfs dfs -cat /user/root/output/*
复制代码
代码表明:
hdfs dfs:这是Hadoop提供的命令行工具,用于操作HDFS。
-cat:这个选项用于显示指定文件或目录的内容到尺度输出(通常是终端或命令行窗口)。 /user/root/output/*:这是要显示的文件路径,其中 * 是一个通配符,表示这个路径下的所有文件。 以是,hdfs dfs -cat /user/root/output/* 这条命令的意思是:显示HDFS路径 /user/root/output/ 下所有文件的内容
这个时间会出现一个错误代码,表示没有这样的文件或目录

说明 HDFS 中没有创建该目录,那么我们就创建一个目录,如下操作
①创建 /user/root 目录

首先需要在 HDFS 中创建 /user/root 目录:
  1. hdfs dfs -mkdir -p /user/root
复制代码
②上传输入文件到 HDFS

将当地的 input 文件上传到 HDFS:
  1. hdfs dfs -put input /user/root/input
复制代码
③验证上传的文件

查抄文件是否乐成上传:
  1. hdfs dfs -ls /user/root/input
复制代码

④重新运行 WordCount 使命

确认文件存在后,重新运行你的 Hadoop WordCount 使命:
 
  1. hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /user/root/input /user/root/output
复制代码

 

⑤检察集群上的输出效果

  1. hdfs dfs -cat /user/root/output/*
复制代码


当代运行结束后,出现上述代码,则表示乐成完成WordCount官方案例,正确输出每个单词出现的频率
⑥关闭hadoop进程

别忘了关闭hadoop进程:stop-all.sh
最后,送各人一句话:攀过那座山最终靠的不是技巧,而是落子无悔的勇气!
祝各位看官“出息似海,来日方长”



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4