一、简介:Hadoop提供了API来运行MapReduce,可以使用java以外的语言编写map和raduce函数。Hadoop流使用Unix标准输入输出流作为Hadoop和程序之间的接口,可以使用任何支持标准输入输出的语言,方便了已有程序向Hadoop平台的移植。
原理:输入数据把标准输入流传输到map函数,先是一行一行的传输,然后把行写入标准输出;而Reduce具有相同的格式,从标准输入流读入行,并将最终结果写入标准输出。
二、添加Bash到Hadoop流中
1、创建HDFS输入文件夹
hadoop fs -mkdir /input
2、在本地(~/)创建file1、file2
(1)、touch file1.txt
vim file1.txt
(2)、touch file2.txt
vim file2.txt
3、把file1.txt、file2.txt导入HDFS的/input文件中
hadoop fs -put ~/file1.txt ~/file2.txt /input
4、创建Bash文件reduce.sh
touch reduce.sh
vim reduce.sh
5、查看Hadoop-2.8.0下是否存在hadoop-streaming.jar
6、执行