- 浏览: 222694 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
synack:
写的很好,图文并茂,语言简单清晰,赞!
SkipList 跳表 -
king_c:
jiandandecaicai 写道你好,请教一下是如何通过E ...
从Hadoop URL 中读取数据 -
jiandandecaicai:
你好,请教一下是如何通过Eclipse来连接Hadop机群的, ...
从Hadoop URL 中读取数据
开发MapReduce程序 一直都是在namenode 那台pc上用eclipse 直接运行,没有任何问题
今天在一台namenode上用eclipse 编译一M/R小程序,结果死活 都是
Exception in thread "main" org.apache.hadoop.ipc.RemoteException: java.io.IOException: Unknown protocol to job tracker: org.apache.hadoop.hdfs.protocol.ClientProtocol at org.apache.hadoop.mapred.JobTracker.getProtocolVersion(JobTracker.java:344) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:523) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1383) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1379) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:416) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1377) at org.apache.hadoop.ipc.Client.call(Client.java:1030) at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:224) at $Proxy1.getProtocolVersion(Unknown Source) at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:364) at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:106) at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:208) at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:175) at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89) at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1310) at org.apache.hadoop.fs.FileSystem.access$100(FileSystem.java:65) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1328) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:226) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:109) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:210) at org.apache.hadoop.fs.Path.getFileSystem(Path.java:187) at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.addInputPath(FileInputFormat.java:372) at gucas.xiaoxia.InvertedIndex.main(InvertedIndex.java:110)
baidu google了半天 也没找出如何在MapReduce之前动态设置 DFS的URI
无奈之下 只能求助与 M/R 源代码 发现 org.apache.hadoop.fs.FileSystem
java.lang.Object org.apache.hadoop.conf.Configured org.apache.hadoop.fs.FileSystem
setDefaultUri public static void setDefaultUri(Configuration conf, String uri) Set the default filesystem URI in a configuration. Parameters: conf - the configuration to alter uri - the new default filesystem uri
setDefaultUri 就是他了。
Configuration conf = new Configuration();
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); System.out.println(FileSystem.getDefaultUri(conf)); FileSystem.setDefaultUri(conf, new URI("hdfs://gucas-s2:9000")); //动态设置 dfs uri System.out.println(FileSystem.getDefaultUri(conf)); if(otherArgs.length != 2){ System.err.println("Usage: invertedindex <in> <out>"); System.exit(2); } Job job = new Job(conf, "InvertedIndex"); job.setJarByClass(InvertedIndex.class);
一定要在Job job = new Job(conf, "InvertedIndex"); 之前设置
FileSystem.setDefaultUri(conf, new URI("hdfs://gucas-s2:9000")); //动态设置 dfs uri
FileSystem.setDefaultUri(conf, new URI("hdfs://gucas-s2:9000")); //动态设置 dfs uri
否则无效
发表评论
-
关于Hadoop的InputFormat类
2012-01-01 14:35 1590org.apache.hadoop.mapreduce. ... -
Hadoop之更快的排序
2012-01-01 14:18 1341键默认的排序处理是 ... -
Hbase分析报告
2012-01-01 13:55 1926Hbase分析报告 本 ... -
MapReduce的输入输出格式
2012-01-01 13:53 5019默认的mapper是IdentityMapper,默认的 ... -
Hadoop_Configuration
2011-12-28 16:35 2008刚开始接触Hadoop的API时,首先第一个就 ... -
分布式数据库 HBase
2011-12-21 16:28 774觉的这篇文章介绍的比较详细,copy一下。作为记录。 ... -
Hadoop 集群 傻瓜式搭建手记
2011-12-21 16:21 1093关于Hadoop的配置,按照我的理解,应该有六个文件需要修改, ... -
hbase java编程实例
2011-12-23 09:34 1378HBase提供了java api来对HBase进行一系列 ... -
什么是面向列开源分布式数据库Hbase
2011-12-21 16:22 2193HBase是一个分布式的、面向列的开源数据库, ... -
HBase访问接口
2011-12-19 10:45 0访问接口 HBase Shell Java cli ... -
HBase关键算法 / 流程
2011-12-19 10:45 1172关键算法 / 流程 region定位 系统如何找到某 ... -
HBase系统架构
2011-12-19 10:44 792Client 1 包含访问hbase的接口 ... -
Hfile存储结构
2011-12-19 10:44 868转自淘宝数据平台 HBase中的所有数据文件都存 ... -
HBASE物理存储
2011-12-19 10:43 8931 已经提到过,Table中的所有行都按照row key ... -
Hbase表的结构
2011-12-19 10:42 887逻辑视图 HBase以表的形式存储数据。表有行和列 ... -
HBase 第一篇
2011-12-18 15:45 955Welcome to Apache HBase! ... -
Zookeeper工作原理
2011-12-16 10:14 1303zooKeeper是一个分布式的,开放源码的分布式应用程序协调 ... -
Paxos算法
2011-12-16 10:05 945Paxos算法是莱斯利·兰 ... -
拜占庭将军问题
2011-12-16 09:43 1451拜占庭将军问题 (Byzantine Generals P ... -
初识ZOOKEEPER
2011-12-15 20:47 942Hadoop下面的子项目ZooKeeper是一个用于协调 ...
相关推荐
使用`FileSystem.get()`方法,传入URI和配置对象,可以获取到与HDFS交互的`FileSystem`实例,例如:`FileSystem hdfs = FileSystem.get(new URI("hdfs://192.168.146.130:9000"), config, "hadoop");` 3. **文件...
5. **dfs.namenode.shared.edits.dir**:配置NameNode与JournalNode交互的URI,用于存储编辑日志。 ```xml <name>dfs.namenode.shared.edits.dir <value>qjournal://jn1.example.com:8485;jn2.example....
HDFS文件系统的访问通常通过URI(统一资源标识符)进行,例如`hdfs://namenode:port/path`。这些URI定义了不同类型的文件系统,如: 1. `LocalFileSystem`:本地文件系统,支持客户端校验和。 2. `...
URI uri = new URI("hdfs://hadoop01:9000"); // 创建一个配置文件 Configuration conf = new Configuration(); // 获取一个客户端对象 FileSystem fs = FileSystem.get(uri, conf, "root"); // 创建一个...
其中,`fs.defaultFS`是最重要的设置,它指定了Hadoop系统的默认文件系统,通常是一个HDFS URI(如hdfs://namenode:port)。`io.file.buffer.size`则规定了读写文件时缓冲区的大小,对性能有一定影响。 接着,`...
- `hadoop fs -put localfile hdfs://namenode:port/path`将本地文件上传至HDFS。 - `hadoop fs -get hdfs://namenode:port/path/localfile`将HDFS文件下载到本地。 此系列教程还涉及了其他关键的大数据技术,如...
- **fs.defaultFS**:此属性指定了Hadoop默认的文件系统,通常设置为HDFS的NameNode地址,如`hdfs://namenode_host:port/`。 - **io.file.buffer.size**:决定了HDFS读写时的缓冲区大小,直接影响I/O性能。 2. **...
HDFS文件或目录的示例路径可以是`hdfs://namenode:namenodeport/parent/child`,或者当配置文件的默认值为`namenode:namenodeport`时,也可以简化为`/parent/child`。 大多数HDFS的FS Shell命令行为与对应的Unix ...
本配置文件集合包含了运行Hadoop 2.x集群所需的关键组件设置,如HDFS、YARN和MapReduce。现在我们将详细讲解每个配置文件的作用及其重要性。 1. **hadoop-env.sh**: 这个文件是Hadoop环境变量的配置,主要设置JVM...
1. `fs.defaultFS`:设定HDFS的默认文件系统URI,通常为`hdfs://namenode_host:port`,其中`namenode_host`是NameNode的主机名,`port`是NameNode的RPC端口。 2. `io.file.buffer.size`:读写文件时使用的缓冲区...
**定义**:指定 NameNode 的 URI 地址。 **描述**:格式为 `hdfs://hostname/`,其中 hostname 可以是 IP 地址或域名。 ##### 3.2 mapred.job.tracker **定义**:指定 JobTracker 的主机名和端口号。 **描述**:...
- `fs.default.name`:定义NameNode的URI,指定HDFS的名称节点地址。 - `mapred.job.tracker`:JobTracker的主机和端口号,用于调度任务。 - `dfs.name.dir`:NameNode存储元数据的本地文件系统路径,可以设置多...
- `<name>fs.default.name</name>`:这是HDFS的默认URI,值设置为`hdfs://localhost:9000`,表示NameNode运行在本地主机的9000端口。 - `<name>hadoop.tmp.dir</name>`:定义了Hadoop临时文件的根目录,这里设置为...
在这个文件中,你可以找到关于NameNode、DataNode以及HDFS的各种参数设置,例如: - `fs.defaultFS`:定义了HDFS的默认命名空间URI,这是客户端连接HDFS的入口点。 - `dfs.replication`:设定副本因子,即每个数据...
这个文件包含了Hadoop的基础配置,如`fs.defaultFS`,它定义了默认文件系统的URI,通常是`hdfs://localhost:9000`,表示HDFS的NameNode;`io.file.buffer.size`则设置了读写文件时的缓冲区大小。 在配置完成后,...
例如,`fs.defaultFS`属性定义了Hadoop文件系统的默认URI,通常为HDFS的NameNode地址;`io.file.buffer.size`决定了读写文件时缓冲区的大小,影响数据传输效率。此外,还有关于安全性和日志记录的配置,如`io....
- `fs.default.name`:指定NameNode的URI地址,包括协议、主机名和端口号。 - `hadoop.tmp.dir`:定义Hadoop使用的临时目录。 - `hdfs-site.xml` - `dfs.name.dir`:设置NameNode存储元数据的本地目录。 - `dfs....
1. **fs.default.name**: 这个参数定义了默认的文件系统URI,例如`hdfs://master:8020/`,其中`master`是NameNode的主机名,`8020`是NameNode的RPC交互端口。 2. **dfs.http.address**: NameNode的Web管理界面运行...
hdfs-site.xml文件中设置了HDFS的副本数(dfs.replication),定义了NameNode和DataNode的数据存储路径。mapred-site.xml文件定义了MapReduce作业运行的框架(mapreduce.framework.name),以及作业历史服务器的相关...
配置文件包括`core-site.xml`(存储配置)、`hdfs-site.xml`(HDFS配置)、`yarn-site.xml`(YARN配置)和`mapred-site.xml`(MapReduce配置),需设置相应的集群参数,如NameNode、DataNode、ResourceManager和...