HDFS java API TROUBLESHOOTING
官方文档:
https://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-common/SingleCluster.html
配置免密登录,用于 nameNode 与 dataNode 通信
ssh-keygen -t rsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
验证ssh,不需要输入密码即可登录。登录后执行 exit 退出。
ssh localhost
exist
etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.3.127:8020</value>
</property>
</configuration>
etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value></value>
</property> <property>
<name>dfs.name.dir</name>
<value>file:/home/hdfs/name</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property> <property>
<name>dfs.data.dir</name>
<value>file:/home/hdfs/data</value>
<description>datanode上数据块的物理存储位置</description>
</property>
</configuration>
开放端口
firewall-cmd --add-port=/tcp --permanent
firewall-cmd --add-port=/tcp --permanent
firewall-cmd --add-port=/tcp --permanent
firewall-cmd --reload
1. java.lang.IllegalArgumentException: URI has an authority component
在执行 `bin/hdfs namenode -format` 的时候报错。
检查 hdfs-site.xml 配置是否正确
<property>
<name>dfs.name.dir</name>
<value>file:/home/hdfs/name</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property> <property>
<name>dfs.data.dir</name>
<value>file:/home/hdfs/data</value>
<description>datanode上数据块的物理存储位置</description>
</property>
2. java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.
解压 hadoop-2.9.2.tar.gz 到 D:\app\
System.setProperty("hadoop.home.dir", "D:\\app\\hadoop-2.9.2");
3. java.io.FileNotFoundException: Could not locate Hadoop executable: D:\app\hadoop-2.9.2\bin\winutils.exe
下载 winutils.exe 放到 {HADOOP_HOME}\bin\ 下
4. Permission denied: user=xxx, access=WRITE, inode="/":root:supergroup:drwxr-xr-x
/**
* 解决无权限访问,设置远程hadoop的linux用户名称
*/
private static final String USER = "root"; fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, USER);
5. java.net.ConnectException: Connection timed out: no further information 与 org.apache.hadoop.ipc.RemoteException: File /hello-hadoop.md could only be replicated to 0 nodes instead of minReplication (=1). There are 1 datanode(s) running and 1 node(s) are excluded in this operation.
# 开放 dataNode端口
firewall-cmd --add-port=/tcp --permanent
firewall-cmd --reload
6. No FileSystem for scheme "hdfs"
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${org.apache.hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${org.apache.hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${org.apache.hadoop.version}</version>
</dependency>
有问题欢迎留言交流。
技术交流群:282575808
--------------------------------------
声明: 原创文章,未经允许,禁止转载!
--------------------------------------
HDFS java API TROUBLESHOOTING的更多相关文章
- HDFS Java API 常用操作
package com.luogankun.hadoop.hdfs.api; import java.io.BufferedInputStream; import java.io.File; impo ...
- HDFS shell操作及HDFS Java API编程
HDFS shell操作及HDFS Java API编程 1.熟悉Hadoop文件结构. 2.进行HDFS shell操作. 3.掌握通过Hadoop Java API对HDFS操作. 4.了解Had ...
- 【Hadoop】HA 场景下访问 HDFS JAVA API Client
客户端需要指定ns名称,节点配置,ConfiguredFailoverProxyProvider等信息. 代码示例: package cn.itacst.hadoop.hdfs; import jav ...
- hadoop hdfs java api操作
package com.duking.util; import java.io.IOException; import java.util.Date; import org.apache.hadoop ...
- HDFS Java API
HDFS Java API 搭建Hadoop客户端与Java访问HDFS集群
- HDFS Java API 的基本使用
一. 简介 二.API的使用 2.1 FileSystem 2.2 创建目录 2.3 创建指定权限的目录 2.4 创建文件,并写入内容 ...
- Hadoop 学习之路(七)—— HDFS Java API
一. 简介 想要使用HDFS API,需要导入依赖hadoop-client.如果是CDH版本的Hadoop,还需要额外指明其仓库地址: <?xml version="1.0" ...
- Hadoop 系列(七)—— HDFS Java API
一. 简介 想要使用 HDFS API,需要导入依赖 hadoop-client.如果是 CDH 版本的 Hadoop,还需要额外指明其仓库地址: <?xml version="1.0 ...
- HDFS Java API的使用举例
HDFS是Hadoop应用程序使用的主要分布式存储.HDFS集群主要由管理文件系统元数据的NameNode和存储实际数据的DataNodes组成,HDFS架构图描述了NameNode,DataNode ...
随机推荐
- pip问题:ImportError: cannot import name main
问题描述 今天使用pip安装python包的时候,提示可以升级到最新版的pip,然后就升级了pip,从8.1.1到19.0.3,结果,就出现了下面的问题,pip不能用了: Traceback (mos ...
- Jmeter 使用集合点
概念解释 集合点,这个概念是loadrunner中的. 这个东西可以这样理解,比如我们在跑100起跑的时候,需要在发令枪响之后,10人同时起步,等10人同时达到终点, 再次开发令枪,重复上面的动作. ...
- free - 显示系统内存信息
free - Display amount of free and used memory in the system 显示系统中空闲和已使用内存的数量 格式: free [options] opti ...
- zabbix3.4中报错解:telnet service is down on决方法
当新添加的监控主机报telnet service is down on的时候,大家不要惊慌,这个是属于模板中添加了一项监控参数,监控被监控机的telnet服务,有两种解决办法,第一呢就是找到对应的监控 ...
- 离线环境下自动化部署python环境(含openssl)
遇到有项目要在内网环境下安装python项目,所以空余时写了自动化部署python环境和python项目的脚本,由于项目涉密,这里仅提供自动化部署python环境的shell脚本,包括openssl的 ...
- python实现文件批量编码转换
起因:大三做日本交换生期间在修一门C语言图像处理的编程课,在配套书籍的网站上下载了sample,但是由于我用的ubuntu18.04系统默认用utf-8编码,而文件源码是Shift_JIS编码,因而文 ...
- JAVA线程池的创建与使用
为什么要用线程池? 我们都知道,每一次创建一个线程,JVM后面的工作包括:为线程建立虚拟机栈.本地方法栈.程序计数器的内存空间(下图可看出),所以线程过多容易导致内存空间溢出.同时,当频繁的创建和销毁 ...
- Docker容器的简单使用
1. docker的使用 1> 创建容器 创建并启动容器: docker run -it -name 容器名 镜像: 版本 /bin/sh(bash) 创建并不启动容器:docker crea ...
- Android 还可以走多久?
最近,有位知识星球的球友问我这么一个问题: 我做 Android 开发五年多时间了,但是最近总是很焦虑,看着人工智能越来越火,很担心 Android 要不行了,想问下,我现在要转行么?Android ...
- 《团队名称》第八次团队作业:Alpha冲刺day1
项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8-软件测试与ALPHA冲刺 团队名称 快活帮 作业学习目标 (1)掌握 ...