javahadoop上传文件夹|java怎么连接hdfs文件系统需要哪些包

① 关于用java写程序把本地文件上传到HDFS中的问题

第一个错误是参数不对第二错误时你没有能够创建目录,不知道是不是没有权限

② 利用JAVA+API向HDFS文件系统上的文件写入数据一共有哪三种方法,请叙述该三种

摘要一.构建环境

③ java用org.apache.hadoop.fs 这个api向hdfs上传文件是根据什么协议

HTTP是很常见的协议,虽然用得很多,但对细节的了解却是很浅,这回通过向服务端上传文件信息来理解细节。网络库的选择:1、WinHTTP是windows下常用的库;2、CURL是广受喜爱的开源库。对于我来说,libcurl最大的优点是使用方便,可以把注意力更多的集中到业务层上,提高工作效率,避免重造轮子;缺点是略大(MD编译有264KB,MT编译有340KB),不像WinHTTP可以由windows操作系统集成。下边展示如何使用这两种网络库实现表单POST文件。

④ hadoop 非java程序怎么上传

用客户端Xshell 直接上传到某个文件夹里面

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

在Hadoop上运行MapRece任务的标准做法是把代码打包到jar里面,上传到服务器,然后用命令行启动。如果你是从一个Java应用中想要启动一个MapRece,那么这个方法真是又土又麻烦。其实YARN是可以通过Java程序向Hadoop集群提交MapRece任务的。与普通的任务不同的是,远程提交的Job由于读不到服务器上的mapred-site.xml和yarn-site.xml,所以在Job的Configuration里面需要添加一些设置,然后再提交就可以了。贴上一个示例代码,大家一看就明白了:[java] view plain public class RemoteMapReceService { public static String startJob() throws Exception { Job job = Job.getInstance(); job.setJobName("xxxx"); /*************************** *…… *在这里,和普通的MapRece一样,设置各种需要的东西 *…… ***************************/ //下面为了远程提交添加设置: Configuration conf = job.getConfiguration(); conf.set("maprece.framework.name", "yarn"); conf.set("hbase.zookeeper.quorum", "MASTER:2181"); conf.set("fs.default.name", "hdfs://MASTER:8020"); conf.set("yarn.resourcemanager.resource-tracker.address", "MASTER:8031"); conf.set("yarn.resourcemanager.address", "MASTER:8032"); conf.set("yarn.resourcemanager.scheler.address", "MASTER:8030"); conf.set("yarn.resourcemanager.admin.address", "MASTER:8033"); conf.set("yarn.application.classpath", "$HADOOP_CONF_DIR," +"$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*," +"$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*," +"$HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*," +"$YARN_HOME/*,$YARN_HOME/lib/*," +"$HBASE_HOME/*,$HBASE_HOME/lib/*,$HBASE_HOME/conf/*"); conf.set("maprece.jobhistory.address", "MASTER:10020"); conf.set("maprece.jobhistory.webapp.address", "MASTER:19888"); conf.set("mapred.child.java.opts", "-Xmx1024m"); job.submit(); //提交以后,可以拿到JobID。根据这个JobID可以打开网页查看执行进度。 return job.getJobID().toString(); } }

⑥ hadoop上传文件出错:java.io.IOException: Mkdirs failed to create /user/hadoop

不了解Hadoop,不过看错误是创建文件夹失败,最好检查下权限问题

⑦ hadoop使用put上传文件出错

先看看 /user/xxx目录的权限:drwxr-xr-x – hdfs supergroup 表示它属于hdfs用户,组名为 supergroup因此需要使用 sudo -u hdfs hadoop fs -put localfile /user/xxx 来指定使用 hdfs 用户来执行上传命令。参考 当高兴地执行sudo -u hdfs hadoop fs -put localfile /user/xxx 以为能成功上传时,又报错:put: localfile No such file or directory 说找不到本地文件localfile,可是用 ls 明明 能看到 localfile ,后来在一篇文章(参考)中发现发来是lcoalfile的权限问题。

⑧ java调用hadoop api向hdfs上传文件问题

var baseText3=null function srsd(){ var popUp3=document.getElementById("popupcontent3"); popUp3.style.top=""; popUp3.style.left=""; if (baseText3==null){ baseText3=popUp3.innerHTML; popUp3.innerHTML=baseText3+"<div id=\"statusbar3\"><a onclick=\"hidePopup3();\"></a></div>";}

⑨ 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(); } } }


赞 (0)