Mapreduce小试牛刀(1)
1.与hdfs一样,mapreduce基于hadoop框架,所以我们首先要启动hadoop服务器
---------------------------------------------------------------------------------------------------------------------------------
2.修改hadoop-env.sh位置JAVA_HOME配置,在JAVA_HOME前面加上export,重启主虚拟机,最好也把另外两个节点同位置的该配置文件改了
如果这里不配置好JAVA_HOME变量,那么在后续运行时会出现127号报错,显示未找到JAVA_HOME
---------------------------------------------------------------------------------------------------------------------------------
3.修改内存
修改yarn-site.xml文件中的内存大小。一般来说,第一次都分配的1024mb,但是在进行mapreduce运算时,会要求至少1536mb内存。但是不要直接设置为1536mb,不要忘记操作系统也会占用内存!但是也不要设置的太大,以免把本机下爆
---------------------------------------------------------------------------------------------------------------------------------
4.示例1
本地文档单词统计
1.在某一文件夹下,编辑一个txt文件
vi wdtest.txt
2.上传到某一hdfs的目录下
hdfs dfs -put wdtest.txt /input
3.利用hadoop自带的包,进行单词统计
hadoop jar /home/hadoop/hadoop-3.3.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount /input /output
系统会新建一个叫做ouput的目录收录统计结果(part-r-00000文件)
4.利用cat命令查看统计结果
hadoop fs -cat /output/part-r-00000
---------------------------------------------------------------------------------------------------------------------------------
5.示例2(Hadoop Streaming统计总的字节数)
输入如下代码,结果会在output2目录下显示
mapred streaming \
-input /input \
-output /output2 \
-mapper /bin/cat \
-reducer /usr/bin/wc
注意:要连续、完整输入这段代码,输完后会自动开始计算作业!
输入代码,查看统计结果:
hadoop fs -cat /output2/part-00000
分别为行数、单词数、字节数
这里采用了Hadoop Streaming工具集。Hadoop Streaming是Hadoop新推出的一个工具集。这个工具集并不是提供流式计算的功能,而是允许以命令行的方式代替千篇一律的Driver代码。但是与第一种方法相比,它并不能统计出各个单词出现的次数