毕业实习FinalShell Hadoop Scala安装运行问题解决及避坑事项
创始人
2025-05-30 13:23:55
0

好久没有写文章了,主要还是技术学习少了,没有什么集中的干货分享给大家。最近我们在毕业实习,学习的是大数据,使用VMware,CentOS7,通过虚拟机配置Hadoop,配置完成后,在windows端,配置scala,使用IDEA运行scala项目。

最近遇到的问题非常多,感觉我就是个踩坑小子,别人一遍过两遍过,我三遍四遍才能弄好,遇到的问题不少人就没遇到,老师也不是很清楚,为了查了大量资料,劳神费力。所以把遇到的系列问题及解决办法分享出来,希望能帮助后来者少走弯路。

VMware-workstation-full-16.1.0下载:直接点击下载exe

CentOS-7-x86_64-DVD-镜像链接:CentOS镜像下载链接
提取码:gjal

这里需要说明的是,CentOS是用于虚拟机安装的,VM是运行虚拟机的,这个概念一定要清楚。还有就是, 由于不同的CentOS版本差异,安装过程稍微有些不同,有些版本在刚开始安装就让你输入用户名和密码,有些版本在完全安装好之后,进入界面会让你创建用户,再输入用户名和密码,所以在按照别人的安装步骤时,发现有不一样不要担心。还有就是有些版本安装过程或结束后会让你选择 时间,语言,最小安装选项,但是有些版本整个安装过程没有这些选项设置,你也不用担心,没有出现就不用管。下面这篇是安装虚拟机讲的比较好的,可以参考一下。

特别提醒:虚拟机账号默认root,密码推荐111,如果它提示太简单,你再次点击确定就好了,一方面设置太复杂不容易记,另外一方面,需要你输入密码的地方非常多,频率也非常高,密码复杂,你会很累。

虚拟机安装讲解

他的安装过程有些部分,比如语言选择,你可能遇不到,没关系,这种情况,你只用设置一下语言,如下图,你们创建好一个虚拟机后,进去会看到这个页面,没设置以前,你们看到的全是英文,可以根据位置进行设置

 

 在区域与语言中设置就好了。

然后进入终端,我的背景就是终端界面,进去后就干一件事,输入 ifconfig,获取你当前虚拟机的IP

 

只有上图那个后面的才是你的虚拟机当前IP。

获取ip干嘛,当然是要进行连接,通常使用的远程连接软件一个是 XShell,一个是FinalShell,很多人可能接触的XShell比较多,我之前也是XShell用户,但是它的问题真的太多了,不稳定还收费,用一段时间后,就无法使用了,甚至重新安装后,还是会遇到同样的问题。因此转到了FinalShell,这个远程连接真的非常好用,稳定免费可视化,所以我强烈推荐大家用这个软件。 

FinalShell下载链接:下载链接
提取码:dwh2

这是它的界面,按照如图就可以建立一个与虚拟机的连接

 连接过程如图,

 只用输入这些信息,点击确认,然后在首页点击连接就可以了。

好了,上面是给对安装软件有恐惧的朋友看的,下面讲我遇到的坑及解决办法。

问题1,在使用FinalShell连接虚拟机时,会遇到 连接超时,或者被拒绝,如图,java.net.ConnectException: Connection timed out: connect

 遇到这两种情况,是因为这个会话连接的那台虚拟机ip地址变了,所以你去对应虚拟机下 重新获取ip地址,然后重新连接就好了。

问题2:ssh:Could not resolve hostname slave1:Name or service not know 在分发互信文件或者远程登录其他虚拟机时,出现这样的提示。

遇到这样的问题,就是防火墙的原因,输入 systemctl status firewalld 查看防火墙状态,

 能看到它是活跃状态,再次输入 systemctl stop firewalld关闭防火墙,就好了。

提醒:尽量不要使用 systemctl disable firewalld 使防火墙永久开机不启动命令,这个命令没必要,而且容易导致其他问题,这是我踩的坑,不建议大家再去踩。

问题3:在获取hadoop版本,使用hadoop version命令时,出现 /opt/hadoop-2.8.5/bin/hadoop:行166:/usr/7lib/ jyvm/java-1.8.0-openjdak-1.8.0.131-11.b12.e17.x86 64/oin/java:没有那个文件或目录,出现这个问题的原因就是你虚拟机端的jdk出了问题。

解决办法,删除虚拟机自带的jdk,使用这个命令进行删除

yum remove *jdk*

,再使用这个命令搜索jdk重新安装

yum list |grep jdk*

,再进行安装 

yum install -y java-1.8.0-openjdk-devel.x86_64

记得把 -y 后面的那一串,换成你选的jdk,但是无论选哪个版本,后缀必须是 devel.x86_64 。

问题4:在配置hadoop后,开启hdfs时,提示 yarn-site.xml: java:没有那个文件或目录,或者hdfs-site.xml: java:没有那个文件或目录,那说明就是hadoop压缩包有问题。

解决办法就是,把hadoop安装包删除后,重新下载一个,一定要确保完整的下载Hadoop,比如原压缩包为235.1MB,你下载解压缩后为235MB,虽然只差了0.1MB,但是就会出现上述问题,导致你无法启动hdfs和yarn 。

Hadoop压缩包下载链接:下载链接
提取码:dpsk

我这个Hadoop压缩包大小为235.1MB,你解压缩后应该也显示235.1MB,否则就删除重下。

Hadoop配置教学

在CentOS和Hadoop集群配置,我遇到的问题能说的清的就这些,剩下的不能说问题,只能说是无尽的深坑,现在进行总结,希望你们看了能避坑。

避坑事项

1,只要你这个项目还需要使用虚拟机,就不要关机,虚拟机开关机一方面会导致ip改变,另外一方面可能会出现其他不可预料的问题,平时挂起就好了。

2,不要单方面关闭或者挂起虚拟机端,很容易导致finalshell无法连接到虚拟机,要么就是可以连接虚拟机,但是无法从finalshell端访问文件,就是打不开虚拟机端的文件,这就等于远程登陆已经失效了。出现这个问题,基本上解决不了,因为要解决这个问题,得先解决它后面的无数问题,最终只会无功而返。 最好也是唯一的解决办法就是,移除所有虚拟机,删除存放虚拟机目录下的所有文件,重新安装配置。

3,关于IP地址不断变化的问题,每个主机使用一个IP都有一个租期,租期到了自然会更换IP。所以每当IP改变无法连接时,重新获取,然后去 /etc/hosts 目录下,修改ip与主机名称的对应关系就好了。修改好主机之后,使用命令 for i in {1..3};do scp /etc/hosts@hslave${i}:/etc/hosts;done 分发到其他三台克隆机,红色字体那里修改为你的克隆机名称。

4,每新建一台虚拟机,第一件事就是删除原有jdk,使用yum 重新下载。因为新建的虚拟机中会自带一个jdk,那个jdk是不完整的,你后期使用一定会出问题,所以一开始就把它干掉。

5,每当重启了虚拟机,就使用一下这两个命令,,确保防火墙被关闭,避免它影响后续的一些命令。 

systemctl status firewalld   
systemctl stop firewalld

 6,上面说了,IP不断改变也正常,但是千万不要试着把它修改为静态IP,虽然可以修改,保证后续IP固定,但是你把动态路由改为静态路由,会引出其他很多问题,比如你要使用yum,它会提示镜像依赖而无法下载,因此,千万不要入这个坑。

7,一定要注意命令中的中英文符号使用,比如中划线,中英文的中划线 - 有一些区别,用错了就会出麻烦,尤其是格式化NameNode的时候。

8,每次修改了/etc/profile 文件后,都要执行一下命令

source /ect/profile

 source作用就是让文件中新放置的命令生效。

9,在进行远程登录时,推荐使用自己的手机热点,保持网络的稳定性,并且在连接时 只接受本次密钥连接,减少IP变化的次数。如果不使用finalshell时,将其会话全部关闭,避免再次连接时,出现单方面连接失败的错误,这个错误处理起来也比较麻烦。

下面进入到scala环节的问题及处理

Scala官网:官网链接 scala安装包分三种,.tgz,.msi ,.zip,虽然说msi不用进行环境配置,但是安装好后,在使用cmd命令窗口 输入 scala命令,它会报空指针异常nullpointException,还是需要配置 环境变量,因此下载zip其实也没麻烦到哪去, 链接:scala-2.11.8.zip版本下载
提取码:bunl 这个压缩包解压缩之后是一个文件夹,建议把这个 文件夹放在 这里

 放在里面什么也不用管,然后去配置环境变量,一个是在系统变量中 新增如图变量名和变量值,变量值就是你放scala文件夹的路径

还有就是 在 Path变量中,新增这么一行 ,放这么一行的时候一定要记得,开头和结尾都不能加空格,

%SCALA_HOME%\bin

 环境变量配置好之后,在cmd中 输入 scala -version 查看scala版本,然后输入scala,你会惊奇的发现,它报了一大段错,就一个意思,空指针异常,你可以根据下面这篇博客去进行解决

scala报空指针异常的解决办法

 scala配置好之后,这个时候重点就是使用IDEA创建IDEA项目,先说明一下,我的IDEA是2021社区版的。 创建的是maven项目,创建之前,先安装一个插件 Scala

 安装插件之后,直接创建maven项目,什么也不勾选,除了改项目名字和位置,直接next创建maven项目,创建maven项目之后,你要解决的问题,就是如何创建scala文件。

首先你要在pom.xml中引入依赖

 org.scala-langscala-library2.11.8

点击右上角弹出的刷新。当你这时候去main目录下的java目录创建Scala文件时,发现它依然是没有这个选项,这个时候 如果你点击新建Scala项目或者Java项目,会发现它下面会提示library is not specified ,也就是说你没指定库 ,但其实你的IDEA中,目前没有库,所以你要引入库,解决办法是,

idea创建项目时提示 library is not specified的解决办法

 在序号1这个长方形范围内,鼠标右键,它就会弹出如图所示的列表,点击 序号2那个选项,让它为你添加库,添加完成后,再次点击新建,就能看到 新建scala选项了。如图所示

至此,hadoop和scala,你都能够成功的跑起来了!

如果你有遇到新的问题和解决办法,欢迎评论区留言。

相关内容

热门资讯

DPDK — L3 Forwa... 目录 文章目录目录L3 Forwarding Application安装部署部署拓扑编译运行 L3f...
今天,乐高乐园内测:大牌主题乐... 今天,#上海乐高乐园度假区 正式启动内测及试运营。整体测试工作将分为内部测试和试运营两个阶段先后开展...
python——内存管理和垃圾... python内存管理和垃圾回收机制 这个知识点是面试时大多都会问到的,所以在此做整理以...
使用ebpf 监控golang... 一、背景 使用ebpf 监控grpc-go的应用,grpc-go http2 clie...
android studio学... 文章目录一、安装studio二、创建一个项目三、框架结构3.1 drawable目录3.2 res目...
50万起拍一半岛的经营权,拍卖... 红星资本局5月31日消息,一座面积1044.97亩的半岛的经营权以50万元价格开始拍卖,这一拍卖在网...
特朗普癫了?突然反咬中美贸易协... 知道他会反口,没想到这么快反口。不然为什么叫“疯王”呢?从昨晚到现在,特朗普又搞出三件大事:反咬中国...
[ 2204听力 ] 理论课 ... 逻辑关系 转折 、因果 、提问(?) 、强调(!) 、否定(-) 、对比 、举例(ex) 、 [ 理...
BFC块级格式化上下文 一、概念 BFC - Block Formatting Context 块级格式化上下文 BFC的定...
实验2---mybatis映射... mybatis映射文件 1.目的 通过该实验,掌握mybatis映射文件中结果映射re...
马斯克黯然下课,临走前给特朗普... 黯然下课,马斯克要走了。5月底,马斯克正式宣布,即将卸任“政府效率部”部长职务,为其在特朗普政府的任...
100天精通Python(可视... 文章目录0. 专栏导读1. 普通折线图2. 网格折线图3. 趋势折线图4. 对比折线图5. 百分比折...
济南大学202204(汉诺塔递... #include #include #include void hanoi(int n, char ...
从数据中获得成功!学会如何使用... 在当今数字化的世界中,社交媒体已成为企业推广产品和服务的主要渠道之一。然而࿰...
考研复试——离散数学 三年疫情都没有笔试,今年恢复,大概率会有笔试。 2023年3月19号&#...
并发基础之Callable与F... 目录前言浅析Callale接口Callale源码分析Callale简单演示浅析Future接口Fut...
DevOps是什么?DevOp... 目录专栏导读一、DevOps是什么?二、为什么会出现DevOps?1、容...
9、Cascaded Diff... 简介 主页:https://cascaded-diffusion.github.io/...
记首次小程序遇到坑及解决 前言 由于工作需要,首次进行微信小程序开发,从基础环境搭建到小程序发布&...
虚拟机使用AlmaLinux搭... 使用Parallels Desktop虚拟机运行 环境:AlmaLinux9.1 &#...