使用 java 从 HDFS 准确确定要加载到一个 Hbase table 中的文件?
Determine exactly files from HDFS to load into one Hbase table using java?
我是大数据和 Hadoop 的新手。我正在学习 Hadoop 和 Hbase。我遇到了问题,但仍然不知道。你能帮帮我吗?
我已经将 3 个 csv 文件放入 HDFS,包括:
- 文件 1(Subscribe_info.txt):numID,active_date,状态
- 文件 2(Recharge.txt):numID,recharge_history_date,数量,方法
- 文件 3 (Charge.txt): numID, charge_date, amount_charge
所有这些都通过以下方式相互关联:numID。
我需要将上面的所有数据加载到 Hbase table 中,行键是 numID 并包含所有相关的列,如下所示:
Hbase table: rowkey= userID -- Column: active_date - status - recharge_history - amount_recharge - method - charge - history - amount
我使用 Java 并创建了 3 个 类 来解析来自 3 个数据文件的数据。但是我不知道如何从 HDFS 读取文件路径并解析以将其放入 Hbase table.
您的要求有这些步骤
1) 您必须读取 HDFS 文件(在您的情况下,您必须读取 csv 文件,您可以使用 Open CSV 只是我在下面给出了一个读取普通文件的示例)
2) 准备一个 put 并上传到 HBASE
我已经提到了实现它的代码
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://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();
while (line != null){
System.out.println(line);
line=br.readLine();
}
}catch(Exception e){
}
}
}
希望这对您有所帮助..
我是大数据和 Hadoop 的新手。我正在学习 Hadoop 和 Hbase。我遇到了问题,但仍然不知道。你能帮帮我吗?
我已经将 3 个 csv 文件放入 HDFS,包括:
- 文件 1(Subscribe_info.txt):numID,active_date,状态
- 文件 2(Recharge.txt):numID,recharge_history_date,数量,方法
- 文件 3 (Charge.txt): numID, charge_date, amount_charge
所有这些都通过以下方式相互关联:numID。
我需要将上面的所有数据加载到 Hbase table 中,行键是 numID 并包含所有相关的列,如下所示:
Hbase table: rowkey= userID -- Column: active_date - status - recharge_history - amount_recharge - method - charge - history - amount
我使用 Java 并创建了 3 个 类 来解析来自 3 个数据文件的数据。但是我不知道如何从 HDFS 读取文件路径并解析以将其放入 Hbase table.
您的要求有这些步骤
1) 您必须读取 HDFS 文件(在您的情况下,您必须读取 csv 文件,您可以使用 Open CSV 只是我在下面给出了一个读取普通文件的示例)
2) 准备一个 put 并上传到 HBASE
我已经提到了实现它的代码
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://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();
while (line != null){
System.out.println(line);
line=br.readLine();
}
}catch(Exception e){
}
}
}
希望这对您有所帮助..