用java从hadoop中读数据

如果用eclipse 连接hadoop测试 一定要把core-site.xml  hdfs-site.xml 放到和包test同目录下 不然会报错程序会报File not found错误,并且加载相对应版本的的hadoop-core-xx.jar包

package test;
import java.io.*;
import java.util.*;
import java.net.*;
import org.apache.hadoop.fs.*;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapred.*;
import org.apache.hadoop.util.*;

public class Cat{
        public static void main (String [] args) throws Exception{
                try{
                        Path pt=new Path("hdfs://10.14.2.201:9000/user/hadoop/words.txt");
                        //Path pt=new Path("hdfs://npvm11.np.wc1.yellowpages.com:9000/user/john/abc.txt");
                        FileSystem fs = FileSystem.get(new Configuration());
                        BufferedReader br=new BufferedReader(new InputStreamReader(fs.open(pt)));
                        String line;
                        line=br.readLine();
                        long sum = 0L;
                        while (line != null){
                                sum ++;
                                System.out.println(line+"sum: "+sum);
                                line=br.readLine();
                        }
                }catch(Exception e){
                    e.printStackTrace();
                }
        }
}

时间: 2025-01-12 19:39:55

用java从hadoop中读数据的相关文章

浅析 Hadoop 中的数据倾斜

转自:http://my.oschina.net/leejun2005/blog/100922 最近几次被问到关于数据倾斜的问题,这里找了些资料也结合一些自己的理解. 在并行计算中我们总希望分配的每一个task 都能以差不多的粒度来切分并且完成时间相差不大,但是集群中可能硬件不同,应用的类型不同和切分的数据大小不一致总会导致有部分任务极大的拖慢了整个任务的完成时间,硬件不同就不说了,应用的类型不同其中就比如page rank 或者data mining 里面一些计算,它的每条记录消耗的成本不太一

java更改数据库中的数据

不废话,上代码 1 package com.ningmeng; 2 3 import java.sql.*; 4 5 /** 6 * 1:更改数据库中的数据 7 * @author biexiansheng 8 * 9 */ 10 public class Test04 { 11 12 public static void main(String[] args) { 13 // TODO Auto-generated method stub 14 try { 15 Class.forName("

Eclipse中java向数据库中添加数据

前面详细写过如何连接数据库的具体操作,下面介绍向数据库中添加数据. 注意事项:如果参考下面代码,需要 改包名,数据库名,数据库账号,密码,和数据表(数据表里面的信息) 1 package com.ningmeng; 2 3 import java.sql.*; 4 5 /** 6 * 1:向数据库中添加数据 7 * @author biexiansheng 8 * 9 */ 10 public class Test01 { 11 12 public static void main(String

Java删除数据库中的数据

1:删除数据库中数据表中的数据同样也是一个非常用的技术,使用executeUpdate()方法执行用来做删除SQL的语句可以删除数据库表中的数据 2:本案例使用Statement接口中的executeUpdate()方法,删除数据库中users表中id为1的用户信息 1 package com.ningmeng; 2 3 import java.sql.*; 4 /** 5 * 6 * @author biexiansheng 7 * 8 */ 9 public class Test06 { 1

java读取请求中body数据

/** * 获取request中body数据 * * @author lifq * * 2017年2月24日 下午2:29:06 * @throws IOException */ public static String getRequestBodyData(HttpServletRequest request) throws IOException{ BufferedReader bufferReader = new BufferedReader(request.getReader()); S

关于从文件中读数据,将字符串写到文件中的操作

import java.io.*; import java.util.ArrayList; import java.util.List; /** * Created by guan on 11/1/16. */ public class ReadFromFile { /** * 随机读取文件内容 */ public static void readFileByRandomAccess(String fileName) { RandomAccessFile randomFile = null; t

用Java向数据库中添加数据成功,但在数据库中找不到添加的数据

程序如下:--第一个类:package com.StudentCurriculavariable;import java.sql.*;public class JDBC_Connection {static String drivername="sun.jdbc.odbc.JdbcOdbcDriver";static String url="jdbc:odbc:chong";static String username="sa";static S

java根据数据库中的数据 的list 生成 tree 型 json

这些代码 本来 也是 我网上找的但是 很遗憾 ,用数据源取到的list ,无法正常返回到前台,list 转json 的时候 就会 出错 ,我展示 正确的代码 1. package com.labci.javamail.test; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; /** * 节点类 */ class Node { /

Java—从文件中读取数据

1.FileInputStream() // 构建字节输入流对象,参数为文件名 FileInputStream fin = new FileInputStream("message"); System.out.println("输入流可读入字节数:" + fin.available()); // 建立byte型数组b,从输入流读取的数据暂时存放在b中 byte b[] = new byte[fin.available()]; // 从输入流读取数据 fin.read