毕业实习FinalShell Hadoop Scala安装运行问题解决及避坑事项
Posted 枫渝浪天下
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了毕业实习FinalShell Hadoop Scala安装运行问题解决及避坑事项相关的知识,希望对你有一定的参考价值。
好久没有写文章了,主要还是技术学习少了,没有什么集中的干货分享给大家。最近我们在毕业实习,学习的是大数据,使用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,否则就删除重下。
在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中引入依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/org.scala-lang/scala-library -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.11.8</version>
</dependency>
</dependencies>
点击右上角弹出的刷新。当你这时候去main目录下的java目录创建Scala文件时,发现它依然是没有这个选项,这个时候 如果你点击新建Scala项目或者Java项目,会发现它下面会提示library is not specified ,也就是说你没指定库 ,但其实你的IDEA中,目前没有库,所以你要引入库,解决办法是,
idea创建项目时提示 library is not specified的解决办法
在序号1这个长方形范围内,鼠标右键,它就会弹出如图所示的列表,点击 序号2那个选项,让它为你添加库,添加完成后,再次点击新建,就能看到 新建scala选项了。如图所示
至此,hadoop和scala,你都能够成功的跑起来了!
如果你有遇到新的问题和解决办法,欢迎评论区留言。
FinalShell监管虚拟机设置以及各种意外的解决方案
前几天我们已经成功导入了三台虚拟机分别是hadoop01,hdaoop02和hadoop03,今天我们来实现进行对这三台虚拟机的操控
注:本次操作可适用与各种虚拟机的监管操纵这里仅拿const 7进行操作
首先还是给大家一个FinalShell的:https://pan.baidu.com/s/10y7XtepL7L4X739Sqtfx6A
百度网盘链接 提取码:2022
安装没什么好说的一直下一步,唯一需要注意的就是安装目录不要有中文和空格。
直接开始操作首先在使用我们FinalShell是要确保我们的服务器或是虚拟机是开启状态
这里可以看到我们已经开启了我们的三台虚拟机,在使用咱们的主角之前还要对虚拟机的ip做一些配置工作。
首先找到C:\\Windows\\System32\\drivers\\etc下hosts文件右键打开他。
双击 打开后可以看到我下面是已经配置好的域名,因为自己 创建的虚拟机是没有域名的所以在自己的主机域名映射路径为其创建一个(仅供学习使用)
完成之后保存关闭就ok了
格式为 虚拟机ip 虚拟机名称 虚拟机名称.itcast.cn
如果出现了无法保存的情况只需要右击hosts文件点击安全→编辑→选择users用户→点击完全控制
完成之后点击应用然后确定就能保存了
接下来就是咱们今天的主角了,双击打开它。
(这里打开后可能会提示版本更新或是自动更新失败这时候就不用管他直接叉掉)
在这里依次点击(这里根据要连接的不同系统选择不同的连接方式liunx用ssh连接windows就用下面那个远程桌面连接)
名称:(随意起,不过一般与主机名相同)
主机名:(这里为虚拟机的ip地址或是咱们之前在hoses编辑的短名和那个域名都可以)
主机名害怕出错也不会嫌麻烦的话可以直接输虚拟机ip
备注:(不用管)
用户名:(因为连接的是liunx虚拟机这里直接写root)
密码:(就是你要连接的虚拟机的管理员账户的密码)
完成后点确定就可以了。
创建好了直接双击就可以了
看出现了这条指令就是说明连接失败,原因一般是在建立连接的时候主机名或是用户名和密码错误导致的。然而经过我们检查都没有问题,这时候我们就要吧目光放到主机和虚拟机的网络连接上了。
首先我们知道hadoop01的ip为192.168.56.6(不知道去看我上一篇文章)打开主机的网络编辑
点击高级网络设置,然后找到VMwear Network VMnet8网络点击查看其他属性
将ip分配改为手动具体配置可参考下图
这时主机网络也与虚拟机网络配置也可以了我们再测试一下,欸还是不行,这时候就要考虑防火墙的问题了
虚拟机防火墙问题好说所以我们来先解决主机防火墙问题
设置→隐私和安全性→windows安全中心→打开windows安全中心→防火墙与网络保护→高级设置→入站规则
把这几个v4和虚拟机监控全打上对勾(右击启用就行)
接下来就是虚拟机防火墙的问题了,这里使用systemctl stop firewalld.service指令关闭防火墙,不过下次开机后还会再次启动,使用systemctl disable firewalld.service可以使开机不再启动防火墙
接下来测试一下FinalShell
还是不行不过我找了好久都没找到问题,防火墙,ip,网络全部都检查了一遍都没发现问题最后发现问题是出在了虚拟机hadoop本身上。我最后拿hadoop02进行了以上操作最后成功了
这里可以查看cpu和内存的使用率,也可以像windows那样查看文件
hadoop01失败的原因是他那个虚拟机的ip不知道为啥没了。
有知道解决办法的大佬希望可以私信告诉我一下感谢。
这个就是FinalShell监管虚拟机设置了,如果对大家有所帮助希望给个赞鼓励一下。
以上是关于毕业实习FinalShell Hadoop Scala安装运行问题解决及避坑事项的主要内容,如果未能解决你的问题,请参考以下文章