外部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