Hadoop
在操作之前我们可以重启一下云主机,使我们的全部配置生效而不是当前生效。
-
启动Hadoop
- 启动HDFS:
start-dfs.sh
- 会提示你是否继续连接等等,都yes即可!
- 输入
jps
查看是否成功 - jps是Java的一个命令,可以查看系统里所有的Java进程,前面的数组每个人都不一样,进程能对上就表示hdfs启动成功了。
- 启动YARN:
start-yarn.sh
- jps查看,相对于刚才多了两个进程:
- 至此Hadoop启动完成!你可以自由的奔放了!
- 启动HDFS:
-
测试Hadoop:
- 测试一:
- 访问内置web项目:
- Hadoop内置了一个现实运行状态的web项目,在启动HDFS后会自动部署到Master节点的50070端口,可以远程访问’http://云主机外网IP:50070’,查看HDFS的运行状态。
- 但是阿里云默认端口没有开放50070端口,需要我们开发此端口才可以正常访问。
- 入方向安全组规则添加一条,协议TCP自定义,目的端口50070/50070,授权对象0.0.0.0/0,描述写你描述此端口的描述,保存即可。
- 具体操作查看之前的端口操作文章。
- 再进行访问,出来这样就证明你成功了!
- 测试二:
- 上传文件到HDFS上
- 利用vim命令,在opt目录下生成一个文本文件
vim /opt/hello
- 插入你想插入的内容,这里随便,就是单词之间空格间隔即可。
cat /opt/hello
查看一下- 利用hdfs命令,将该文件上传到hdfs的根目录下
hdfs dfs -put 本地文件路径 HDFS的路径
hdfs dfs -put /opt/hello /
- 执行完毕,不会有任何提示!
- !!!成功的自动忽略此段,直接利用测试一进行查看文件。
- 如果提示你安全模式,就证明你刚装完Hadoop就自动进入了安全模式,一般是format过程出了问题。可能如下:
- 可以停止hdfs和yarn,然后 删除hadoop的本地临时文件夹 /opt/hadoop/tmp ,命令是
rm -rf /opt/hadoop/tmp
,之后 重新格式化一次hdfs,命令是hdfs namenode format
- 还是要注意,平时我们不能对tmp文件夹进行删除,否则HDFS将无法工作。
- 但是我们可以根据测试一里的web项目来查看该文件
- - 输入路径,go!查看文件,文件块128MB,太浪费了,副本数量为1,是我们设置的。
- 点击hello,查看详情。
- 测试三:
- 上传大文件,查看是否会自动分块。我们利用Hadoop压缩包做实验。
hdfs dfs -put /opt/hadoop-2.8.5.tar.gz /
- 查看文件
- 我们这里最想看的是block信息
- 也可以点击block信息查看详情。
- 以上我们是利用内置web应用来查看,接下来我们利用hdfs命令行来查看
- hdfs命令和linux命令极其相似,上手难度相对来说较亲民。
- 查看根目录下的文件
hdfs dfs -ls /
- 问题一:
- 在HDFS目录下真的存在我们刚才操作的/opt/hadoop-2.8.5.tar.gz文件吗?
- 答案是没有,但是为什么我们输入hdfs命令却又存在呢?
- 原因是NameNode维护着一个虚拟的目录结构,DataNode下存在的是block1和block2,但是DataNode并不知道block1和block2是啥,他只知道要去维护他。也就是真实存在的是block1和block2这些文件块,而不是/opt/hadoop-2.8.5.tar.gz这个文件。至于为什么我们看到的是这个文件是由于NameNode的功劳,他将block块进行整理再给我展示完整的文件。
- 测试一:
-
YARN测试:
-
利用内置的词频统计程序(MapReduce程序),对hello文件进行词频统计。
-
hadoop jar /opt/hadoop-2.8.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /hello /out
-
命令解释:
-
hadoop jar -> 在hadoop上运行一个jar文件中的程序 /opt/hadoop-2.8.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar -> 指定jar文件的路径 wordcount -> 运行jar文件中的名为wordcount的程序 /hello -> 对hdfs上的哪个文件或文件夹进行词频统计 /out -> 指定统计结果输出到hdfs上的哪个文件夹下,注意,该文件夹必须不存在!!!否则会报错,我们可以统计完删除该文件夹。也可以在下次操作之前先删除再操作。
-
-
运行成功会有如下内容,并且在根目录下会出现一个out文件夹,里面有两个文件。其中‘_SUCCESS’是标识文件,内容为空,是通过文件名表示本次任务运行成功。次品统计结果保存在’part-r-00000’文件中。
-
-
也可以利用内置web应用来查看
-
我们查看一下统计结果:
hdfs dfs -cat /out/part-r-00000
-
-
至此,我们的任务全部完成,你可以在Hadoop中奔放 了!
-
-
关闭Hadoop
- 关闭HDFS
stop-dfs.sh
- jps检查一下
- 关闭YARN
stop-yarn.sh
- jps检查一下
- 提示我nodemanager未关闭,利用kill -9命令关闭
kill -9 17083
- 最后只剩jps进程即可
- 关闭HDFS