导航:首页 > 编程语言 > java调用hadoop

java调用hadoop

发布时间:2022-12-29 20:52:53

1. java程序怎么向远程的hadoop提交maprece任务

你使用的是hdfs,但你在Configuration中只设置了mapred.job.tracker值,这个是jobtracker的地址,你需要设置namenode的地址。而放到集群时在new Configuration时会自动加载集群的配置文件,如core-site.xml,hdfs-site.xml等
解决方法:
1)直接调用Configuration的set方法为fs.default.name设置值,值为namenode地址
2)直接将集群的三个*-site.xml配置文件放入项目的classpath下,简单方便

2. eclipse(java api)操作hadoop hdfs,我试图将本地文件拷贝进hdfs,目标却是本地文件系统,不是hdfs。

恭喜啊,学习hadoop需要先学好命令啊。

想学linux命令就去www.linuxsky.cn,里面也可以学习脚本和svn的命令,哈哈

3. java怎么连接hdfs文件系统,需要哪些包

apache的Hadoop项目提供一类api可以通过java工程操作hdfs中的文件,包括:文件打开,读写,删除等、目录的创建,删除,读取目录中所有文件等。
1、到http://hadoop.apache.org/releases.html下载Hadoop,解压后把所有jar加入项目的lib里
2、程序处理步骤: 1)得到Configuration对象,2)得到FileSystem对象,3)进行文件操作,简单示例如下:
/**
*
*/
package org.jrs.wlh;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
* @PutMeger.java
* java操作hdfs 往 hdfs中上传数据
* @version $Revision$</br>
* update: $Date$
*/
public class PutMeger {

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

String[] str = new String[]{"E:\\hadoop\\UploadFileClient.java","hdfs://master:9000/user/hadoop/inccnt.java"};
Configuration conf = new Configuration();
FileSystem fileS= FileSystem.get(conf);
FileSystem localFile = FileSystem.getLocal(conf); //得到一个本地的FileSystem对象

Path input = new Path(str[0]); //设定文件输入保存路径
Path out = new Path(str[1]); //文件到hdfs输出路径

try{
FileStatus[] inputFile = localFile.listStatus(input); //listStatus得到输入文件路径的文件列表
FSDataOutputStream outStream = fileS.create(out); //创建输出流
for (int i = 0; i < inputFile.length; i++) {
System.out.println(inputFile[i].getPath().getName());
FSDataInputStream in = localFile.open(inputFile[i].getPath());

byte buffer[] = new byte[1024];
int bytesRead = 0;
while((bytesRead = in.read(buffer))>0){ //按照字节读取数据
System.out.println(buffer);
outStream.write(buffer,0,bytesRead);
}

in.close();
}

}catch(Exception e){
e.printStackTrace();
}
}

}

4. java 使用hadoop 连接mysql

金陵书生顾洪家境贫困,以卖字画为生,与母相依为命。

5. java调用Hadoop的jar

你把脚本换成其他可以直观查看运行结果的脚本,看看能不能运行;同时不在hadoop/bin目录下执行hadoop jar /usr/local/hadoop-1.2.1/hadoop-examples-1.2.1.jar wordcount input output看看能不能执行

6. java程序怎么向远程的hadoop提交maprece任务

将 hadoop执行job命令写到shell脚本中。类似 hadoop jar x.jar ×××.MainClassName inputPath outputPath这种命令。

hadoop客户机在本地,使用 Process执行shell脚本,java执行本地shell脚本的代码

1
2
3
4

Process process =null;
String command1 = " ./test.sh";
process = Runtime.getRuntime().exec(command1);
process.waitFor();

3.hadoop 在远程服务器上,java可以使用SSH连接远程服务器执行shell脚本。需要借助第三方jar包实现,常用的是ganymed-ssh2-build210.jar,网上有很多例子。

7. 如何编写hadoop java程序

1.编译java
# mkdir class
#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.java
2.生成jar包
#jar -cvf hademo.jar -C class/ .
added manifest
adding: com/(in = 0) (out= 0)(stored 0%)
adding: com/wan/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)
3.测试运行
#hadoop jar hademo.jar com.wan.demo.HADemo /test
检测:
#hadoop fs -ls /

8. 如何在hadoop-2.6.0上编译运行自己编写的java代码

在不使用eclipse情况使java程序在hadoop 2.2中运行的完整过程。整个过程中其实分为java程序的编译,生成jar包,运行测试。x0dx0a这三个步骤运用的命令都比较简单,主要的还是如何找到hadoop 2.2提供给java程序用来编译的jar包。具体可以查看:x0dx0aHADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib目录x0dx0a下面会通过一个在hadoop中创建一个目录的JAVA例子来进行演示x0dx0a具体代码如下:x0dx0ax0dx0apackage com.wan.demo;x0dx0ax0dx0aimport java.io.IOException;x0dx0aimport org.apache.hadoop.conf.Configuration;x0dx0aimport org.apache.hadoop.fs.FileSystem;x0dx0aimport org.apache.hadoop.fs.Path;x0dx0ax0dx0apublic class HADemo {x0dx0ax0dx0apublic static void main(String[] args) {x0dx0a// TODO Auto-generated method stubx0dx0amkdir(args[0]);x0dx0a}x0dx0ax0dx0apublic static void mkdir(String dir){x0dx0aConfiguration configuration=new Configuration();x0dx0aFileSystem fs;x0dx0atry {x0dx0afs = FileSystem.get(configuration);x0dx0afs.mkdirs(new Path(dir));x0dx0afs.close();x0dx0a} catch (IOException e) {x0dx0a// TODO Auto-generated catch blockx0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0a}x0dx0ax0dx0a把HADemo.java文件拷贝到linux环境中x0dx0a配置HADOOP_HOME/bin到环境中,启动集群,进入HADemo.java文件目录中x0dx0a注:下面的lib目录里面的文件由HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/ webhdfs/WEB-INF/lib目录中获取,下面做的目的是为了缩减命令长度x0dx0a1.编译javax0dx0a# mkdir classx0dx0a#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.javax0dx0a2.生成jar包x0dx0a#jar -cvf hademo.jar -C class/ .x0dx0aadded manifestx0dx0aadding: com/(in = 0) (out= 0)(stored 0%)x0dx0aadding: com/wan/(in = 0) (out= 0)(stored 0%)x0dx0aadding: com/wan/demo/(in = 0) (out= 0)(stored 0%)x0dx0aadding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)x0dx0a3.测试运行x0dx0a#hadoop jar hademo.jar com.wan.demo.HADemo /testx0dx0a检测:x0dx0a#hadoop fs -ls /x0dx0a x0dx0a结束!

9. 用 java遍历hadoop分布式文件系统中某个目录下的全部文件,我的hadoop是单节点的

原因:
你访问的是本地文件系统而非hdfs , 因为Configuration默认的是在core-default.xml中的属性fs.default.name默认值是file:///,表示本地文件系统。在我们new Configuration();时会默认加载core-default.xml文件,所以根据这个文件的fs.default.name值使用了本地文件系统。

解决方法:
一般安装hadoop时都是修改core-site.xml文件,这个文件设置的属性值一般使用来覆盖core-default.xml这个文件的,在core-site.xml文件中会设置fs.default.name值为hadoop的namenode的地址以及端口号,如hdfs://localhost:9000,即表示namenode是本机,也就是为分布式。所以我们在连接hdfs时需要指定连接的地址,也就是hadoop集群中core-site.xml中fs.default.name属性值。所以解决方法有三种:
1)在代码Configuration conf=new Configuration();之后手动为Configuration对象设置fs.default.name属性值,如:conf.set("fs.default.name","hdfs:localhost:9000");
2)在代码的classpath下创建一个文件,在文件中设置fs.default.name属性值,再使用conf.addResource("文件路径")将该文件添加到Configuration中;
3)直接将集群的core-site.xml添加到classpath下即可,无需手动添加到Configuration,在new Configuration时会自动加载该文件

10. 现有 java web程序,如何去连接hadoop

看你用什么版本的hadoop,推荐使用cdh版的

jar包导入web工程
调用HBase接口
如:
hbaseConfig = new Configuration();
conf = HBaseConfiguration.create(hbaseConfig);
admin = new HBaseAdmin(conf);
this.setTableName(tableName);

阅读全文

与java调用hadoop相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:736
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163