【Hadoop】外部eclipse连接虚拟机


关于这一篇,其实我觉得用到的人也不多,但是搞Hadoop又必不可少,所以出的指引吧,毕竟我在网上也没看到很完整的配置过程,真心踩了巨多的雷,所以这篇也算排雷篇。
我觉得有必要解释一下这个外部eclipse连接虚拟机,是虚拟机可以直接使用在windows的eclipse(在windows中的eclipse写的代码运行结果(编写一个文本)可以在虚拟机中显示(显示这个文本))

一、环境介绍

首先本机是 Windows10 家庭版
虚拟机版本是 VMware Workstation Pro 15
映像文件是 CentOS 7 64位
Hadoop集群是hadoop-2.7系列版本

二、准备

我们需要下载一个Windows版的Hadoop,以便更好地连接。关于版本我下的是Hadoop-2.8系列就可。

三、环境变量

在这里插入图片描述打开环境变量,在路径输入这个路径就可。Windows版Hadoop\bin的位置。

四、配置hosts文件

路径:C盘下,windows/system32/driver/etc
找到hosts文件,以记事本形式打开
在这里插入图片描述

在最后添加上虚拟机的IP地址,以及主机名
就例如
192.168.2.11 onlyky1
192.168.2.12 onlyky2
192.168.2.13 onlyky3
就这样形式添加到最后。

在这里就有一个很麻烦的点,因为hosts文件是系统文件,普通记事本保存不了,需要另想办法了。建议一种简单的吧,下载 Notepad ++是可以的。当然还有其他方法。

五、导入Linux版Hadoop

在这里插入图片描述
就这个地址,在下载的window版的Hadoop的share目录下添加虚拟机中的Hadoop安装包。

六、eclipse里的配置

首先新建一个maven项目,然后新建一个文件夹,以这种方式建立文件夹
在这里插入图片描述
然后将开始导包
在这里插入图片描述
在这里插入图片描述

这两个地址的一共六个的jar包,与此同时,还需要,虚拟机里Hadoop安装包share/hadoop/common/lib里面所有的jar包,还有share/hadoop/hdfs/lib里面所有的jar包。

选中全部的然后build path

七、eclipse中代码运行

在之前的maven项目下创建一个类,填写下面代码

public class HdfsClientDemo {

	public static void main(String[] args) throws Exception {
		/**
		 * Configuration参数对象的机制: 构造时,会加载jar包中的默认配置 xx-default.xml 再加载
		 * 用户配置xx-site.xml ,覆盖掉默认参数 构造完成之后,还可以conf.set("p","v"),会再次覆盖用户配置文件中的参数值
		 */
		// new Configuration()会从项目的classpath中加载core-default.xml hdfs-default.xml
		// core-site.xml hdfs-site.xml等文件
		Configuration conf = new Configuration();

		// 指定本客户端上传文件到hdfs时需要保存的副本数为:2
		conf.set("dfs.replication", "2");
		// 指定本客户端上传文件到hdfs时切块的规格大小:64M
		conf.set("dfs.blocksize", "64m");

		// 构造一个访问指定HDFS系统的客户端对象:
		// 参数1:——HDFS系统的URI,参数2:——客户端要特别指定的参数,参数3:客户端的身份(用户名)
		FileSystem fs = FileSystem.get(new URI("hdfs:/p-01:9000/"), conf, "root");

		// 上传一个文件到HDFS中
		fs.copyFromLocalFile(new Path("D:/zhishixianrenbushijun.txt"), new Path("/aaa/"));

		fs.close();
	}

这个代码用来连接外部eclipse和虚拟机。这个代码还需要微调,自己导入内部包啥的,还需要改ip地址,或者是上传路径。

** 八、结果显示**

在这里插入图片描述
在虚拟机中
输入命令:hadoop dfs -ls /
如果在虚拟机中查到上传的文件或者其他东西,就成功了。

还有一个大大大大前提,在六以后的配置,就需要虚拟机启动Hadoop,否则无效。

制作人:只识闲人不识君
日期:2020.06.07

猜你喜欢

转载自blog.csdn.net/weixin_46069678/article/details/106606576