怎么使用java代码直接将从外部拿到的数据存入hdfs

作者&投稿:豆卢庭 (若有异议请与网页底部的电邮联系)
如何使用MR来读取数据库的数据,并写入HDFS上~

如下面这个shell脚本:
#Oracle的连接字符串,其中包含了Oracle的地址,SID,和端口号
CONNECTURL=jdbc:oracle:thin:@20.135.60.21:1521:DWRAC2
#使用的用户名
ORACLENAME=kkaa
#使用的密码
ORACLEPASSWORD=kkaa123
#需要从Oracle中导入的表名
oralceTableName=tt
#需要从Oracle中导入的表中的字段名
columns=AREA_ID,TEAM_NAME
#将Oracle中的数据导入到HDFS后的存放路径
hdfsPath=apps/as/hive/$oralceTableName
#执行导入逻辑。将Oracle中的数据导入到HDFS中
sqoop import --append --connect $CONNECTURL --username $ORACLENAME --password $ORACLEPASSWORD --target-dir $hdfsPath --num-mappers 1 --table $oralceTableName --columns $columns --fields-terminated-by '\001'
执行这个脚本之后,导入程序就完成了。

额,是指什么?啥叫将hdfs上的文件导入数据
上传 hdfs dfs -put
下载 hdfs dfs -get
如果已经存在的文件似乎是不能修改的,比如HIVE输出结果到目录就是覆盖(而不是修改)。

存入HDFS有好几种数据格式,我这里给你列出一种格式的存储,sequence的

public class SeqWrite {

private static final String[] data = { "a,b,c,d,e,f,g", "h,i,j,k,l,m,n", "o,p,q,r,s,t", "u,v,w,x,y,z", "0,1,2,3,4", "5,6,7,8,9" };

public static void main(String[] args) throws IOException, Exception {

Configuration configuration = new Configuration();
//这里是你主机的地址
configuration.set("fs.defaultFS", "192.168.51.140");
//这个是存储的路径
Path path = new Path("/tmp/test1.seq");
Option option = SequenceFile.Writer.file(path);
Option optKey = SequenceFile.Writer.keyClass(IntWritable.class);
Option optValue = SequenceFile.Writer.valueClass(Text.class);
SequenceFile.Writer writer = null;
IntWritable key = new IntWritable(10);
Text value = new Text();

writer = SequenceFile.createWriter(configuration, option, optKey, optValue);

for (int i = 0; i < data.length; i++) {
key.set(i);
value.set(data[i]);
writer.append(key, value);
writer.hsync();
Thread.sleep(10000L);
}

IOUtils.closeStream(writer);
}
}


创建对象 注入属性 在添加不就可以了

怎么使用java代码直接将从外部拿到的数据存入hdfs
答:public class SeqWrite {private static final String[] data = { "a,b,c,d,e,f,g", "h,i,j,k,l,m,n", "o,p,q,r,s,t", "u,v,w,x,y,z", "0,1,2,3,4", "5,6,7,8,9" };public static void main(String[] args) throws IOException, Exception {Configuration con...

java如何将从文件中读取的字符串按照指定符号拆分开来
答:您好:JAVA中字符串拆分,一般使用 split方法,参数是使用拆分的字符串,返回值是 拆分后的结果数组。比如您写的内容,使用方法的方式为: String[] args = str.split("#\\+#"); 其中+号为特殊字符,需要转义。具体代码及运行结果如下:拆分通过 split方法即可实现,需要注意是否包含特殊字符的情况。

java界面里怎么将从数据库中按条件查询的结果显示在界面里。。急求_百...
答:首先创建可以可以操作数据库的模型用来实现crud package model;/ 负责对数据库操作的表模型 / import java.sql.*;public class SqlModel { static Connection con=null;static PreparedStatement ps=null;static ResultSet rs=null;//ResultSet rs2=null;public SqlModel(){ try { //加载驱动 Class.f...

java如何将从数据库取出的数据预先存入到内存?
答:获取的时候直接cache.get(key)就可以了。java如何从数据库读取数据并写入txt文件:将数据查询出来放在list中,然后写入文件。给你个写入的类,查询数据自己如果能搞定最好了。FileWriter fileWriter=new FileWriter("c:\\Result.txt");int [] a=new int[]{11112,222,333,444,555,666};for (int i...

怎样用java代码把数据导入到数据库中
答:Java可以使用JDBC对数据库进行读写。JDBC访问一般分为如下流程:1、加载JDBC驱动程序:在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。例如:try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver"...

java怎么运行代码
答:1. 打开命令提示符或终端窗口。2. 使用cd命令导航到包含Java代码的目录。3. 编译Java代码,使用以下命令: ```shell javac YourClassName.java ``` 其中,YourClassName是您的Java类名。4. 运行Java程序,使用以下命令: ``` java YourClassName ``` 其中,YourClassName是您的Java类名。 如果您...

jsp和java和servlet 如何将从数据库中查询的字段显示在性别单选按钮_百 ...
答:1.servlet中的操作:这里只谈字段,不涉及封装成对象。把从数据库查出来的性别字段的值,放到request作用域,然后转发到显示性别单选按钮的页面。例如:request.setAttribute("gender",gender);2.jsp页面核心代码:从request作用域取出性别的值进行比较。男 女 ...

下载的java代码如何使用呢?加5分
答:在虚拟机或手机上加载.jar的文件。就ok了吧

java代码如何分析和重构
答:解析代码:使用Javaparser解析Java代码非常简单,只需要调用ParseUtil.parse()方法即可将Java代码解析为抽象语法树(AST)。然后,开发人员可以使用Javaparser提供的各种API来遍历AST,查找和修改代码中的元素。修改代码:Javaparser允许开发人员通过AST对Java代码进行修改。例如,可以使用Javaparser的API来添加新的...

怎么运行java
答:保存Java源代码文件,例如保存为HelloWorld.java。打开命令提示符或终端窗口,在其中使用cd命令切换到Java源代码文件所在的目录。例如:cd C:\Users\UserName\Documents\Java 其中UserName是你的用户名,Java是Java源代码文件所在的目录名。编译Java源代码文件,使用以下命令:javac HelloWorld.java 这会将Java...