本来是要用Hadoop给柯西搜索写一下锚文本聚集。但是发现上个版本的爬虫居然没有存锚文本,实在无聊,写了个统计域名(实际是host)的计数器。
输入:一行一个url
流程:提取url的domain,对domain计数+1
输出:域名,域名计数
这次完全用新的API写的。
代码如下:
Mapper
package com.keseek.hadoop;
import java.io.IOException;
import java.net.URI;
imp[......]
create keyspace yqjc_bbs;
use yqjc_bbs;
create column family title with comparator = AsciiType and keys_cached=1.0 and rows_cached = 1000000;[......]
1、Hadoop集群的机器最好是多核、多通道硬盘,但不要使用RAID。选用中档机器。例如8核、16GB内存、4×1TB硬盘。
2、集群可随着规模而不断扩充,当小集群时(10的数量级),namenode和jobtracker可以放在同一台机器上(同时保证有一份NFS远端的namenode备份)即可。再大就最好分别放在两台机器上。
3、Windows这么不靠谱的东西就不要用于生产环境了,生产环境最好用Linux,或者Unix。
4、Hadoop的网络拓扑结构分为:机架内Rack(在[......]
1、获取位置
sudo easy_install -m BitVector
....
Using /usr/local/lib/python2.6/dist-packages
....
2、删除egg文件和py、pyc
cd /usr/local/lib/python2.6/dist-packages
rm -rf BitVector-3.0.egg-info
rm BitVector.py
rm BItVecvor.pyc[......]
GenericOptionsParser可以让你的Map/Reduce程序具有Hadoop常用的属性。
一般无需直接用GenericOptionsParser,继承Configured即可。
public class ConfigurationPrinter extends Configured implements Tool {
//添加你需要的配置文件
static {
Configuration.addDefaultResource("hdfs-default.xml[......]