- 浏览: 14019 次
文章列表
/**
* @see 读取path下的所有文件
* @param path
* @return
* @throws IOException
*/
public static String[] getFileList(String path) throws IOException{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
List<String> ...
public static void createNewFile(String path, String content, FileSystem fs) throws Exception{
Configuration conf = new Configuration();
conf.set("dfs.support.append", "true");
Path d_path = new Path(path);
FSDataOutputStream os = null;
if( ...
Plugins: directory not found: plugins
java.lang.RuntimeException: Error in configuring object
在nutch-site.xml中添加:
<property>
<name>plugin.folders</name>
<value>apache-nutch-1.6\src\plugin</value>
</property>
/**
* @see 读取dst文件内容
* @param dst
* @return
* @throws Exception
*/
public static byte[] readHDFSFile(String dst) throws Exception
{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
// check i ...
如果提示http://www.xxx.com/ skipped. Content of size 67099 was truncated to 59363
在nutch-site.xml中添加:
<property>
<name>parser.skip.truncated</name>
<value>false</value>
</property>
这是因为网站的页面内容采用truncate的方式分段返回,而nutch的默认设置是不处理这种方式的,需要打开之。
如果修改了conf中的文件而没有效果的话试着重新ant编译一下。比如在本地执行可以爬取而在hadoop上不能爬取,可能是hadoop上不能识别新修改的配置文件而把url都filter掉了。用ant命令重新编译一次就好了
如果检测不到datanode就把/etc/hosts里对本主机hostname的映射注释掉,对本主机的映射只留下一个127.0.0.1 localhost就可以了。这个应该是优先级的原因,节点在解析hostname时由于127.0.0.1 hostname在前面,就把hostname解析成了127.0.0.1,在完全分布式的部署上就会出现检测不到datanode。
FileInputFormat.setMinInputSplitSize(job, 2L * 1024 * 1024 * 1024);
将使得小于 2G 的输入文件不会被分割处理。如果你的输入文件中有很多都是小于2G的,并且你的Hadoop集群配置了一个split的大小是默认的64M,那么就会导致 一个1点几G的文件就会被很多个map处理,从而导致输出文件数量很多。使用上面的方法设置了min input split size之后,减小输出文件数量的效果很明显。
编写WordMapper类
在工程下创建一个WordMapper 类,该类要继承Mapper< Object, Text, ...
去面试的一家公司出的面试题,让我回来做完发过去,记录一下
节点类:
//节点类
class Node{
public Node(int value){
this.value = value;
}
public Node(){
}
int value;
Node next;
}
获得随机的链表
//获得一个随机的单链表
public Node getRandomSingList(){
Node head = new Node();
Node n1 = new Node((int)(Math.random()*100));
Nod ...
节点类:
//节点类
class Node{
public Node(int value){
this.value = value;
}
public Node(){
}
int value;
Node next;
}
初始化链表
//初始化一个有序的单链表
public Node initList(){
Node head = new Node();
Node n1 = new Node();
Node n2 = new Node();
Node n3 = new Node();
Node n4 = new Nod ...