环境:Vmware 8.0 和ubuntu11.04
Hadoop 实战之Streaming(四)---通过脚本使用Streaming
第一步: 首先在/home/tanglg1987目录下新建一个start.sh脚本文件,每次启动虚拟机都要删除/tmp目录下的全部文件,重新格式化namenode,代码如下:sudo rm -rf /tmp/*
rm -rf /home/tanglg1987/hadoop-0.20.2/logs
hadoop namenode -format
hadoop datanode -format
start-all.sh
hadoop fs -mkdir input
hadoop dfsadmin -safemode leave
第二步:给start.sh增加执行权限并启动hadoop伪分布式集群,代码如下:
chmod 777 /home/tanglg1987/start.sh
./start.sh
运行过程如下:
第三步:上传本地文件到hdfs
在专利局http://data.nber.org/patents/网站下载专利数据
http://data.nber.org/patents/apat63_99.zip
hadoop fs -put /home/tanglg1987/apat63_99.txt input
第四步:新建一个RandomSample.php的Php文件
<?php
while (!feof(STDIN)) {
$line = fgets(STDIN);
if (mt_rand(1,100) <= $argv[1]) {
echo $line;
}
}
第五步:安装php开发环境
sudo apt-get install php5 php5-gd php5-cli
第六步:编写一个名为:list-4-4.sh的shell脚本
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-0.20.2-streaming.jar -input input/apat63_99.txt -output output -file /home/tanglg1987/test/streaming/RandomSample.php -mapper 'php RandomSample.php 10' D mapred.reduce.tasks=1
第七步:给list-4-4.sh增加执行权限并启动脚本,代码如下:
chmod 777 /home/tanglg1987/list-4-4.sh
./list-4-4.sh
第八步:运行过程如下:
第九步:查看结果集,运行结果如下: