hadoop伪分布单机部署实践
2011-11-18 01:19
417 查看
终于尼玛不报错了,把步骤理一理,操作系统是ubuntu11.04
#1.首先下载hadoop,我下的是hadoop-0.20.203.0,tar解压,放到/var/下
#2.安装ssh,rsync,apt-get搞定
#3.建立名为hadoop的系统用户
#4.将hadoop安装目录拥有者改成hadoop用户
#5.切换至hadoop用户,之前用root老是不成功,有bug?
#6.设置ssh直接登录,copy from 官网
#7.进入hadoop目录,配置xml,官网有提供.需要注意的是,注意端口占用,默认配置namenode用9000端口,结果我一直没成功启动namenode,还以为哪里搞错了,仔细看了log才发现9000 already in use,lsof -i:9000一查,尼玛的php-cgi占用料,遂给namenode分配个靓号:8888.
#8.启动
#9.jps查看,发现
成功启动!
#10.准备数据,将某个目录copy至hadoop文件系统.就按官网来,将conf目录copy至hadoop的input目录,没有会自动生成
#11.开始mapreduce
使用相应jar包内的wordcount类作map/reduce处理,将input目录内文件做word count处理后结果导至hadoop的output2目录
#12.查看结果
PS:忘了说明需要配置java环境,以及在conf/hadoop-env.sh里配置JAVA_HOME为jdk路径,或者直接etc/enviroment里配置。
PHP写map/reduce(wordcount实例)
参考了那篇著名的python实现map/reduce的文章,php模仿python输出样例即可,quite simple!
#1.mapper.php
#2.reducer.php
必须和reducer.py那个例子输出一致.就是连续相同的元素才能合并。
Run!
查看结果
Bingo!
#1.首先下载hadoop,我下的是hadoop-0.20.203.0,tar解压,放到/var/下
#2.安装ssh,rsync,apt-get搞定
#3.建立名为hadoop的系统用户
#4.将hadoop安装目录拥有者改成hadoop用户
#chown -hR hadoop /var/hadoop-0.20.203.0
#5.切换至hadoop用户,之前用root老是不成功,有bug?
#6.设置ssh直接登录,copy from 官网
$ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa $cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#7.进入hadoop目录,配置xml,官网有提供.需要注意的是,注意端口占用,默认配置namenode用9000端口,结果我一直没成功启动namenode,还以为哪里搞错了,仔细看了log才发现9000 already in use,lsof -i:9000一查,尼玛的php-cgi占用料,遂给namenode分配个靓号:8888.
#8.启动
$bin/hadoop namenode -format $bin/start-all.sh
#9.jps查看,发现
11354 DataNode 11580 JobTracker 11740 TaskTracker 14412 Jps 11202 NameNode 11515 SecondaryNameNode
成功启动!
#10.准备数据,将某个目录copy至hadoop文件系统.就按官网来,将conf目录copy至hadoop的input目录,没有会自动生成
$bin/hadoop fs -put conf input
#11.开始mapreduce
$bin/hadoop jar hadoop-examples-*.jar wordcount input output2
使用相应jar包内的wordcount类作map/reduce处理,将input目录内文件做word count处理后结果导至hadoop的output2目录
#12.查看结果
$bin/hadoop fs -cat output2/*
PS:忘了说明需要配置java环境,以及在conf/hadoop-env.sh里配置JAVA_HOME为jdk路径,或者直接etc/enviroment里配置。
PHP写map/reduce(wordcount实例)
参考了那篇著名的python实现map/reduce的文章,php模仿python输出样例即可,quite simple!
#1.mapper.php
#!/usr/bin/php <?php error_reporting( 0 ); set_time_limit( 0 ); $content = file_get_contents("php://stdin",'r'); print preg_replace("#\s+#",PHP_EOL,$content); ?>
#2.reducer.php
#!/usr/bin/php <?php error_reporting( 0 ); set_time_limit( 0 ); $content = file_get_contents("php://stdin"); $split = explode(PHP_EOL,$content); $k = 0; for($i=0,$j=count($split);$i<$j-1;$i++): if($split[$i] != $split[$i - 1]) : $k++; endif; $a[$k][$split[$i]]++; endfor; foreach( $a as $val) : print key($val)."\t".current($val).PHP_EOL; endforeach; ?>
必须和reducer.py那个例子输出一致.就是连续相同的元素才能合并。
Run!
$bin/hadoop jar contrib/streaming/hadoop-*streaming*.jar -mapper /var/hadoop/mapper.php -reducer /var/hadoop/reducer.php -input /user/hadoop/input/* -output /user/hadoop/output7
查看结果
$bin/hadoop fs -cat output7/*
Bingo!
相关文章推荐
- redhat 5.4部署单机伪分布Hadoop集群
- hadoop单机部署 伪分布
- Hadoop浅学习&实践学习——初级1[单机|伪分布集群]
- 在Linux系统设置共享文件夹、Hadoop单机/伪分布部署,运行Hadoop Wordcount单词统计实例
- ubuntu部署hadoop之单机模式与伪分布式模式(个人笔记)
- hadoop单机部署伪分布式系列1:HDFS
- hadoop2.6.4+Ubuntu14.04的单机模式和伪分布模式环境搭建
- Hadoop单机伪分布的搭建
- linux下从安装JDK到安装ssh到hadoop单机伪分布式部署
- 云计算实践:基于Ubuntu的Spark、Hadoop、MongoDB的单机环境配置和开关方法
- Ubuntu搭建hadoop单机版伪分布环境
- 记一次kafka单机伪分布部署
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
- hadoop伪分布部署
- Hadoop-HBase 单机部署
- hadoop 2.2.0安装开发环境(单机伪分布模式)
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
- Hadoop学习之以全分布模式部署及问题
- Linux下Hadoop(伪分布) + Zookeeper + HBase(一个节点) 部署
- Hadoop-HBase 单机部署