`

java 远程连接Pseudo-Distributed Hadoop

阅读更多
本文主要描述如何实现在一台Linux机器上搭建一个Pseudo-Distributed的Hadoop,在另外一台机器上通过API访问
服务器端环境搭建:
1.版本信息
  java:1.8.0_172
  Hadoop: 2.9.1

2.设置JAVA_HOME
  在~/.bash_profile中追加如下内容
 
 
  JAVA_HOME=/usr/java/jdk1.8.0_172-amd64
  export JAVA_HOME
  

  执行如下命令使上述设置立即生效
 
 source ~/.bash_profile

3.设置hostname
 
hostname docker05

4.下载hadoop, 点击下载
5.解压下载的文件
$ tar xzvf hadoop-2.9.1.tar.gz

6.修改配置文件
6.1 修改etc/hadoop/core-site.xml文件,追加如下内容
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://docker05:9000</value>
  </property>
</configuration>

6.2 修改etc/hadoop/hdfs-site.xml文件,追加如下内容
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
   <name>dfs.permissions.enabled</name>
   <value>false</value>
  </property>
</configuration>

6.3 修改etc/hadoop/hadoop-env.sh,将JAVA_HOME修改成正确值
# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.8.0_172-amd64

7. 配置无密码登录
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  $ chmod 0600 ~/.ssh/authorized_keys

8. 格式化name node
$ bin/hdfs namenode -format

9.启动 dfs
sbin/start-dfs.sh


客户端环境
1.配置hostname
在客户端机器上也需要设置hostname,如192.168.0.172 docker05
2.工程目录如下


3. 工程pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>falcon.chengf</groupId>
	<artifactId>simple-hdfs-test</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<dependencies>
		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-client</artifactId>
			<version>2.8.1</version>
		</dependency>
	</dependencies>
</project>

4.测试代码
/**
 * 
 */
package simple.hdfs.test;

import java.io.IOException;
import java.net.URI;

import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
 * @author: 作者: chengaofeng
 * @date: 创建时间:2018-06-01 15:25:47
 * @Description: TODO
 * @version V1.0
 */
public class HdfsTest {
	public static String uri = "hdfs://docker05:9000";

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

		uploadLocalFile2HDFS("/Users/chengaofeng/Downloads/hadoop-test1.data", "/chengf/hadoop-test1.data");
	}

	public static boolean uploadLocalFile2HDFS(String localFile, String hdfsFile) throws IOException {
		if (StringUtils.isBlank(localFile) || StringUtils.isBlank(hdfsFile)) {
			return false;
		}
		hdfsFile = uri + hdfsFile;
		Configuration config = new Configuration();
		FileSystem hdfs = FileSystem.get(URI.create(uri), config);
		Path src = new Path(localFile);
		Path dst = new Path(hdfsFile);
		hdfs.copyFromLocalFile(src, dst);
		hdfs.close();
		return true;
	}
}



5.执行后到服务器端执行 hadoop fs -ls 可以看到文件正常上传了



遇到错误
1.
 starting namenodes on docker05
  docker05 Error: JAVA_HOME is not set and could not be found.
  localhost: Error:JAVA_HOME is not set and could not be found.

 
原因 hadoop-env.sh中JAVA_HOME的设置有问题
具体的修改办法如下:
vim etc/hadoop/hadoop-env.sh

将语句      export JAVA_HOME=$JAVA_HOME    

修改为      export JAVA_HOME=/usr/java/jdk1.8.0_172-amd64

保存后退出。

再次输入start-dfs.sh启动hadoop,则没有报错。
2.
权限问题
Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=chengaofeng, access=WRITE, inode="/":root:supergroup:drwxr-xr-x at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:350)

解决方法,可暂时去掉权限检查
在 hdfs-site.xml文件中追加
<property>
   <name>dfs.permissions.enabled</name>
   <value>false</value>
</property>

另一种连接方式,通过hdfs的配置文件来创建Configuration
1.工程目录


其中core-site.xml、hdfs-site.xml是从服务器上copy下来的文件
2.测试类
/**
 * 
 */
package simple.hdfs.test;

import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
 * @author: 作者: chengaofeng
 * @date: 创建时间:2018-06-01 15:25:47
 * @Description: TODO
 * @version V1.0
 */
public class HdfsTest {

	public static void main(String[] args) throws IOException {
		Configuration config = new Configuration();
		InputStream input = HdfsTest.class.getResourceAsStream("/core-site.xml");
		config.addResource(input);
		InputStream input2 = HdfsTest.class.getResourceAsStream("/hdfs-site.xml");
		config.addResource(input2);
		FileSystem hdfs = FileSystem.get(config);
		uploadLocalFile2HDFS("/Users/chengaofeng/Downloads/hadoop-test1.data", "/chengf/hadoop-test2.data", hdfs);
		
		System.out.println("upload ok");
	}

	public static boolean uploadLocalFile2HDFS(String localFile, String hdfsFile, FileSystem hdfs) throws IOException {
		if (StringUtils.isBlank(localFile) || StringUtils.isBlank(hdfsFile)) {
			return false;
		}
		
		Path src = new Path(localFile);
		Path dst = new Path(hdfsFile);
		hdfs.copyFromLocalFile(src, dst);
		hdfs.close();
		return true;
	}
}

  • 大小: 32.4 KB
  • 大小: 19.4 KB
  • 大小: 38.2 KB
分享到:
评论

相关推荐

    jsp物流信息网建设(源代码+论文)(2024vl).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

    中小学教师教育教学情况调查表(学生家长用).docx

    中小学教师教育教学情况调查表(学生家长用)

    航空车辆检测8-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar

    航空车辆检测8-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rarTepegozz-V2 2024-04-21 12:16 pm ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包含4794张图像。 Tepegozz以可可格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为640x640(拉伸) 应用以下扩展来创建每个源图像的3个版本: *水平翻转的50%概率 *垂直翻转的50%概率 *随机裁剪图像的0%至20% * -15和+15度之间的随机旋转 * 0到1.7像素之间的随机高斯模糊 *将盐和胡椒噪声应用于0.1%的像素 以下转换应用于每个图像的边界框: *以下90度旋转之一的同等概

    LabVIEW实现NB-IoT通信【LabVIEW物联网实战】

    资源说明:https://blog.csdn.net/m0_38106923/article/details/144637354 一分价钱一分货,项目代码可顺利编译运行~

    jsp网上购书系统设计(源代码+论文)(202490).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

    jsp网络购物系统[适合毕业设计](202429).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

    【图像去雾】基于matlab暗通道先验和引导图像过滤单图像去雾【含Matlab源码 9914期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    深圳建设工程公司合同管理制度.docx

    深圳建设工程公司合同管理制度

    【java毕业设计】智慧社区综合平台(源代码+论文+PPT模板).zip

    有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上

    基于yolov5实现目标检测+双目摄像头实现距离测量源码

    基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计) 基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计) 基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计) 基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计) 基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计) 基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计)基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计)基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计)基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计)基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计)基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计)基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计)基于yolov5实现目标检测+双目摄像头实现距离测量源码+文档(毕业设计)基于yolov5实现目标检测

    基于Java技术的下拉导航菜单设计源码

    该项目是一款采用Java技术实现的下拉式导航菜单设计源码,包含53个文件,涉及18个Java源文件、11个XML配置文件、9个PNG图片文件、6个JSON数据文件、4个Gradle构建脚本、2个Markdown文档以及1个开源许可证文件。

    LitJsonDLL类库

    LitJsonDLL类库

    免费下载:普通高中教科书 信息技术 必修2 信息系统与社会 (上海市中小学(幼儿园)_1riYg.zip

    免费下载:普通高中教科书 信息技术 必修2 信息系统与社会 (上海市中小学(幼儿园)_1riYg.zip

    【java毕业设计】智慧社区金融服务网络.zip

    有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上

    【数字信号传输】基于matlab AWGN通道BPSK数据传输系统【含Matlab源码 9925期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    车辆紧急防避撞AEB控制该模型包括,基于Carsim及Matlab simulink的联合仿真控制模型 (1)驾驶员制动模型来模拟制动过程; (2)实现以模糊控制实现期望减速度的计算, (3)纵向发动

    车辆紧急防避撞AEB控制该模型包括,基于Carsim及Matlab simulink的联合仿真控制模型 (1)驾驶员制动模型来模拟制动过程; (2)实现以模糊控制实现期望减速度的计算, (3)纵向发动机逆动力学模型实时求解期望节气门开度, (4)驱动与制动的切控制,以及制动压力与减速度之间的关系计算, (5)车辆动力学模型实现实际的风阻和滚动阻力的计算以及节气门开度计算等, 【资料】提供详细的建模过程,模型公式的耦合关系文档,帮你清晰的了解模型原理。

    免费下载:She-Hulk goes to Murderworld (Tim Dedopulos)_ylyy3.zip

    免费下载:She-Hulk goes to Murderworld (Tim Dedopulos)_ylyy3.zip

    屏幕截图 2024-12-21 170616.png

    屏幕截图 2024-12-21 170616

    【java毕业设计】智慧社区停车管理系统(源代码+论文+PPT模板).zip

    zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。

    本科毕设-基于三维卷积神经网络的卒中患者疲劳检测详细文档+全部资料+优秀项目+源码.zip

    【资源说明】 本科毕设-基于三维卷积神经网络的卒中患者疲劳检测详细文档+全部资料+优秀项目+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

Global site tag (gtag.js) - Google Analytics