毕业实习FinalShell Hadoop Scala安装运行问题解决及避坑事项
创始人
2025-05-30 13:54:03
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,你都能够成功的跑起来了!

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

相关内容

热门资讯

不惭屋漏的反义词 不惭屋漏的反义词有:暗室欺心,不惭屋漏[bù cán wū lòu]的意思:屋漏:古代室内西北角安放...
开宗明义的反义词 开宗明义的反义词有:旁敲侧击,转弯抹角,开宗明义[kāi zōng míng yì]的意思:开:阐述...
多愁善感的反义词 多愁善感的反义词有:愁眉苦脸,无情无义,多愁善感[duō chóu shàn gǎn]的意思:善:容...
业荒于嬉的反义词 业荒于嬉的反义词有:业精于勤,业荒于嬉[yè huāng yú xī]的意思:荒:荒废。贪恋玩耍就会...
浮躁的近义词 浮躁的近义词  【中文】:浮躁  【读音】:fú zào  【浮躁的意思】:轻浮急躁。  【近义词】...
关于舒服的反义词   下面是小编为大家收集整理的关于舒服的反义词,欢迎大家阅读参考!  【解释】  舒服( 注释: 身...
千载难逢的反义词 千载难逢的反义词有:习以为常,司空见惯,唾手可得,屡见不鲜,累见不鲜,千载难逢[qiān zǎi n...
百顺千随的反义词 百顺千随的反义词有:刚愎自用,百顺千随[bǎi shùn qiān suí]的意思:形容什么都顺从。...
从恶如崩的反义词 从恶如崩的反义词有:从善如流,从善如登,从恶如崩[cóng è rú bēng]的意思:指为恶如山崩...
井水不犯河水的反义词 井水不犯河水的反义词有:相得益彰,井水不犯河水[jǐng shuǐ bù fàn hé shuǐ]的...
一字不识的反义词 一字不识的反义词有:学富五车,立地书厨,立地书橱,一字不识[yī zì bù shí]的意思:一个字...
待答不理的反义词 待答不理的反义词有:宾至如归,待答不理[dài dā bù lǐ]的意思:指以冷淡的态度对人出自:冰...
拥挤的反义词是什么 拥挤的反义词是什么  拥挤是指人或车船等紧紧地挤在一起;下面是小编整理的关于拥挤的反义词是什么,欢迎...
勤奋的反义词是什么   一、【反义词】  怠惰、懒惰、散逸、怠慢、懒散、懈怠、疏懒  二、【基本解释】  [释义]  (...
飘风骤雨的反义词 飘风骤雨的反义词有:和风细雨,飘风骤雨[piāo fēng zhòu yǔ]的意思:同“飘风暴雨”。...
前程万里的近义词 前程万里的近义词有:云程万里,前程似锦,前程远大,前途无量,远举高飞,锦绣前程,鹏程万里,前程万里[...
暖衣饱食的近义词 暖衣饱食的近义词有:丰衣足食,饱食暖衣,暖衣饱食[nuǎn yī bǎo shí]的意思:形容生活宽...
铄石流金的近义词 铄石流金的近义词有:流金铄石,烁石流金,铄石流金[shuò shí liú jīn]的意思:高温熔化...
好高骛远的近义词   好高骛远( hào gāo wù yuǎn)  【解释】: 好:喜欢...
牛眠龙绕的近义词 牛眠龙绕的近义词有:牛眠吉地,牛眠地,牛眠龙绕[niú mián lóng rào]的意思:指有助于...