毕业实习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,否则就删除重下。

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配置好之后,这个时候重点就是使用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,你都能够成功的跑起来了!

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
根据提供的引用内容,finalshell是一个终端工具,用于远程连接和管理服务器。它本身并不用于安装Hadoop,但可以通过finalshell来执行Hadoop安装命令。 要在finalshell安装Hadoop,您需要按照以下步骤进行操作: 1. 首先,确保您已经在服务器上安装了Java Development Kit(JDK)。您可以使用以下命令检查JDK的安装情况: ```shell java -version ``` 如果未安装JDK,请根据您的操作系统下载并安装适当的JDK版本。 2. 下载Hadoop的压缩包(例如hadoop-3.3.0.tar.gz)并将其上传到服务器上的适当目录。 3. 在finalshell中打开一个终端连接到服务器。 4. 解压Hadoop压缩包。假设您将Hadoop压缩包上传到了`/opt`目录下,可以使用以下命令解压: ```shell tar -zxvf /opt/hadoop-3.3.0.tar.gz -C /opt ``` 5. 配置Hadoop环境变量。编辑`~/.bashrc`文件,并添加以下行: ```shell export HADOOP_HOME=/opt/hadoop-3.3.0 export PATH=$PATH:$HADOOP_HOME/bin ``` 6. 保存并关闭文件。然后,运行以下命令使环境变量生效: ```shell source ~/.bashrc ``` 7. 配置Hadoop的核心文件。进入Hadoop安装目录,并编辑`etc/hadoop/hadoop-env.sh`文件。找到以下行并设置正确的JDK路径: ```shell export JAVA_HOME=/path/to/jdk ``` 8. 配置Hadoop集群的其他文件,例如`etc/hadoop/core-site.xml`和`etc/hadoop/hdfs-site.xml`,根据您的需求进行相应的修改。 9. 启动Hadoop集群。使用以下命令启动Hadoop: ```shell start-dfs.sh start-yarn.sh ``` 现在,您已经成功地使用finalshell安装Hadoop。您可以使用Hadoop命令行工具进行进一步的配置和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值