一
-
链接:https://pan.baidu.com/s/1cF7_cbMmYjLYCu5egIEFXw
提取码:ddb2 -
File --settings–Bulid–Bulid Tools–Maven 勾选倒数第二行的 Override
-
右键 pom.xml – Reimport (或 View – Tools Windows – Maven –
)
点击 Lifecycle中的install,联网会自动安装所需包 -
节点(虚拟机)断开,或者DataNode或者NodeManager进程自动终止,查看防火墙状态systemctl status firewalld
若Active :active (running)
则防火墙开启
若需要关闭linux虚拟机防火墙(确保为root用户),
命令:systemctl stop firewalld
关闭防火墙开机自启
命令:systemctl disable firewalld.service
这时Active : inactive (dead)
-
开启关闭Hadoop集群:
stop/start-dfs.sh
stop/start-dfs.sh
(start-all.sh
----包括前边的两个命令) -
在project的src–main–java–new–package(name: edu.qfnu.hadoop )在此包中新建new class,在Maven–lifcycle-install安装所需包,在C:\Users\username.m2\repository\edu\qfnu\hadoop\hdfs\1.0-SNAPSHOTC:中应该有hdfs-1.0-SNAPSHOT.jar,将此文件用WinRAR打开hdfs-1.0-SNAPSHOT.jar\edu\qfnu\hadoop - ZIP 应该有WordCounter.class和Del说明此文件已经编译(注:WordCounter没有运行成功)
pom.xml的systemPath字体为红色
- 原因:jdk路径不对
- 方法:点开前面的红色小灯泡,找jdk路径,Java-lib-tools.jar,点击ok即可
二把建立的Maven项目hdfs上传到Hadoop集群,和要统计单词数的文本new.txt
- 让三个虚拟机时间同步
命令:date
查看时间
命令:yum install -y ntp
:安装ntp服务,自动从网上获取时间
设置系统时间与网络时间同步ntpdate cn.pool.ntp.org
- 启动Hadoop集群(
start-all.sh
等价于start-dfs.sh + start-yarn.sh
)
cd /root hadoop fs
- ls/文件名:查看HDFS系统中的目录和文件
- hdoop fs -mkdir /input1创建input1目录,放置要处理的news.txt文件
-
把hdfs-1.0-SNAPSHOT.jar和news.txt上传到集群中(hadoop fs -put hdfs-1.0-SNAPSHOT.jar / 和(hadoop fs -put new.txt /input1/)
-
打开SFTP Session拖拽文件夹,上传完成后,在虚拟机中
cd /home/username
ls
查看文件是否存在 -
在[root@master username]下执行
hadoop fs -ls -R /
才可以看到input文件夹(input1文件夹是在集群中) -
再把文件上传到HDFS系统:
hadoop fs -put news.txt /input/
,执行hadoop fs -ls /input
查看文件是否已上传【注意:不能将hdfs-1.0-SNAPSHOT.jar上传到input文件夹中,该文件为二进制文件,input文件夹中放的是要处理的news.txt,如果将hdfs-1.0-SNAPSHOT.jar上传会出现乱码】 -
执行
hadoop jar hdfs-1.0-SNAPSHOT.jar edu.qfnu.hadoop.WordCounter
(必须关闭防火墙)map和reduce都显示100%后即为成功 -
执行
hadoop fs -get hdfs:/output1( hadoop fs -get /output1)
将生成的文件下载到本地查看 -
在root权限下的用户目录下执行ls即可看到output文件,
cd output1
然后ls
可见part-r-00000 _SUCCESS
两个目录,但此时cat part-r-00000
是一堆乱码(原因把hdfs-1.0-SNAPSHOT.jar文件也对单词进行了统计)! -
将原来的hdfs-1.0-SNAPSHOT.jar和生成的output文件删除
- 要从HDFS中删除文件,可以使用以下命令:
hadoop fs -rm -r -skipTrash /path_to_file/file_name
- 要从HDFS中删除文件夹,可以使用以下命令:
hadoop fs -rm -r -skipTrash /folder_name
- 删除文件夹
hadoop fs -rm -r /output1
hadoop fs -rm -r /input1/hdfs-1.0-SNAPSHOT.jar
hadoop fs -rm /hdfs-1.0-SNAPSHOT.jar
(未在某个文件夹中的jar包)- 在[root@master username]中的hdfs-1.0-SNAPSHOT.jar 使用
rm -rf hdfs-1.0-SNAPSHOT.jar
(不是在Hadoop集群中)
- 要从HDFS中删除文件,可以使用以下命令:
-
修改后把output1文件夹使用
hadoop fs -get /output1
下载到本地后,cat part-r-00000
即可查看 -
另一个DelDuplicate只需在与WordCounter相同的package中新建一个DelDuplicate类即可,执行上面相同的操作
① 拷贝D:\Program Files\JetBrains\IntelliJ IDEA 2018.3.5\plugins\maven\lib\maven3\conf\settings.xml 到 C:/用户/用户名/.m2 (如果.m2文件不存在,可以新建一个.m2文件夹);
② 修改.m2文件夹下的settings.xml,在 和之间添加:<mirror> <id>aliyun</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
```
使Maven下载jar包时从以上网址下载
若Maven的包还是有红线可以删除 .m2文件夹下存放jar包的repository,重新再install
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019041520443550.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI5ODU5MA==,size_8,color_FFFFFF,t_70)
https://blog.csdn.net/leanaoo/article/details/83153052一个关于Hadoop指令的博客