Hadoop在HA模式下远程上传文件的实现

在非HA模式下,只须如下代码就可以轻松实现上传文件,标红的这句是关键

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

        Configuration conf = new Configuration();
        conf.set("fs.defaultFS", "hdfs://master:9000");

        FileSystem fs = FileSystem.get(conf);

        fs.copyFromLocalFile(new Path("/home/lance/log.txt"), new Path("/log"));
    }
}

但是当是HA模式下,就不能简单地把hdfs://master:9000改为hdfs://mycluster,单纯这样的话系统会报如下错误:

Exception in thread "main" java.lang.IllegalArgumentException: java.net.UnknownHostException: mycluster

主要还是缺少必要属性,配置属性方式一般有两种:一种是直接把hadoop的配置文件放到工程目录下,在配置文件里面设置属性;一种是如上所示,用set方法设置。

以下就是所需的关键属性

core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://mycluster</value>
    </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.nameservices</name>
        <value>mycluster</value>
    </property>
    <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>nn1, nn2</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn1</name>
        <value>192.168.11.2:9000</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn2</name>
        <value>192.168.11.7:9000</value>
    </property>
    <property>
        <name>dfs.client.failover.proxy.provider.mycluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
</configuration>
时间: 2024-10-09 13:54:38

Hadoop在HA模式下远程上传文件的实现的相关文章

浏览器兼容模式下,上传文件问题

//在浏览器的兼容模式下,页面没有上传图片的时候,file != null && file.Count > 0 && file[""] != null 是成立的.但file[""].FileName != ""是不成立的 if (file != null && file.Count > 0 && file["file"] != null &&a

SSH 连接树莓派、远程上传文件

一.操作环境: 树莓派Raspbian系统 默认用户名:pi 默认密码:raspberry 假定局域网IP为 192.168.1.100 二.SSH登录 $ ssh [email protected] $ 输入密码 raspberry 三.远程上传文件 $ scp <localfile> [email protected]:/home/pi/ $ 输入密码 raspberry 参考链接:http://blog.csdn.net/arnoldlu/article/details/17394237

ie下获取上传文件全路径

ie下获取上传文件全路径,3.5之后的火狐是没法获取上传文件全路径的 1 /*获取上传文件路径*/ 2 function getFilePath(obj) { 3 var form = $(this).parents("form"); 4 form.validate(); 5 var fileObj = obj; 6 if (fileObj) { 7 if (window.navigator.userAgent.indexOf("MSIE") >= 1) {

git远程上传文件

[第一步]建立先仓库 第一步的话看一般的提示就知道了,在github新建一个repository(谷歌可以解决),都是可视化的界面操作,所以难度不大.或者看这里:https://help.github.com/articles/create-a-repo 这是官方help,虽然是英文的,但是基本都是图和代码,所以很容易读懂. 在github首页的右上角,点击红框中的Create New Repo. 进入新建仓库的界面 填一下仓库名称,Initialize this repository with

git远程上传文件至github

首先在github 上创建一个仓库,也可以创建一个组,几个人一个组创建一个仓库,共同去完成 任务并且可以资源共享. 在创建完仓库之后,然后进入终端,下载git 首先把仓库克隆到git上,命令为 :git clone https://github.com/jjuc/developRos.git 在终端输入git 就可以看到很多指令   jjuc代表我自己创的组,developRos 表示我创的仓库. 成功如下 [email protected]51:~$ git clone https://git

IE下AjaxForm上传文件直接提示下载的兼容性Bug

使用AjaxForm上传文件时候,在IE下直接提示下载保存: 我的示例代码: return this.Json( new { prop1 = 5, prop2 = 10 }); 这种问题只出现在IE下,是由于AjaxFrom只接受以Html格式返回的Json,所以需要在返回的json对象里设置content: return this.Json( new { prop1 = 5, prop2 = 10 }, "text/html");

linux远程登入、远程上传文件

一.远程登入 1.安装 Xshell5 2.查看是否具备连接 在linux 主机上输入 chkconfig --list | grep sshd #sshd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 #5要保持开启状态 如果没有开启手动开启指令 chkconfig --level 5 sshd on service sshd restart 3.查询机子ip ifconfig 4.配置Xshell5 基本上配置上ip即可 二.远程上传下载文件 1.安装Xftp 2.配

springmvc模式下的上传和下载

接触了springmvc模式后,对上一次的上传与下载进行优化, 上次请看这里. 此处上传的功能依旧是采用表格上传.文件格式依旧是 <form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data"> 后台则是 @RequestMapping("/upload") public Str

python 实现远程上传文件夹

python2 upload.py "ip" "root" "password" "22" "Only Project DLL" "d:\ENZO\Publish\Wxcrm.Admin\bin\release\netcoreapp2.1\centos.7-x64\publish" "/mondao/deployment/wxcrm-admin" #!/usr/bin