记Hadoop安装中出现的各种问题

Hadoop安装中出现的各种问题及解决办法

目录

      • 前言
      • 关于VBox安装
      • 关于Ubuntu安装及使用
      • 关于Hadoop安装及调试
      • 关于虚拟机和电脑间数据传输
      • 关于Linux的提示
      • 涉及Hadoop的常用命令
      • Linux系统的常用命令及基本练习
      • 本文涉及名词解释
      • 结语

前言

经历了几天的不断尝试,最终成功的安装并配置了Hadoop3.1.3,在安装的过程中踩了很多的坑,在此将我的经历分享给各位,希望在大家遇到问题时能给予一定的帮助,特别是初次接触或者打算学习大数据的朋友们,在安装及配置Hadoop之前如果能仔细阅读我的这篇文章,可以避免很多不必要的错误和麻烦,使安装过程更加顺利。

本文涉及安装过程:VirtualBox——Ubuntu18.04.4——Hadoop3.1.3

注:作者是按照厦门大学林子雨的系列安装教程进行安装操作的,其中不仅包含上述的版本,还有针对Mac系统,以及Centos、Ubuntu不同版本、Hadoop不同版本的详细安装教程,本文的写作目的就是在参考林子雨或其它安装教程安装Hadoop及之后的单机/伪分布式配置的过程中可能出现的问题进行统一的整理收纳,如已经安装好Ubuntu,请在内置的火狐浏览器打开本文,方便文中链接的访问与资源的下载。

关于VBox安装

VirtualBox下载地址(Win64bit)
可能出现的问题:
(1)虚拟机需要开启CPU 虚拟化,而进入BIOS的方式有所不同,需要根据自己的电脑型号搜索进入BIOS的方式。
(2)在安装VirtualBox虚拟机时,可能会弹出一些窗口询问是否要安装某些软件,一定要点击同意安装,否则,虚拟机不能正常运行。
(3)卸载虚拟机时,切不可直接在文件夹里删除,应该点击安装包,通过安装程序的“卸载”功能完成卸载。
(4)关于厦大数据库实验室提供的“大数据Linux实验环境虚拟机镜像文件
在虚拟机软件VirtualBox中直接导入该镜像文件,可以立即生成包含了全套大数据软件的Ubuntu系统,作者首先实用的就是这个镜像文件,但是在导入的过程中出现了无法解决的错误,便也只能放弃。可能配置不同,在此附上链接,可以试一试大数据Linux实验环境虚拟机镜像文件记Hadoop安装中出现的各种问题_第1张图片

关于Ubuntu安装及使用

在Windows中使用VirtualBox安装Ubuntu
可能出现的问题及解决办法:
(1)强烈建议使用Ubuntu官方的18.04或14.04
附:Ubuntu18.04.4官网下载链接下载下来是iso镜像文件,先不要急着解压,之后要在VBox内使用盘片导入,具体操作教程中有

Ubuntu安装时一定注意不要选择kylin版本,有很多人包括作者最初使用的是优麒麟版本的Ubuntu(在Vbox导入盘片时要看清iso文件)安装配置,从安装开始到后期配置有很多不同的地方(安装Ubuntu时会优麒麟会显示kylin的字样,且系统主题为蓝色 ),并且使用例如apt get-update等更新时经常出现更新失败的情况,影响后续的配置安装,后改为Ubuntu18.04 一些问题就迎刃而解,并且Ubuntu的新版提升了使用体验,诸如对分辨率设置很友好,在调整对话框大小后,系统会根据当显示情况自动调整分辨率,不需要经常的打开设置调整分辨率,等等。

优麒麟 Ubuntu Kylin是由中国CCN联合实验室支持和主导的开源项目,其宗旨是采用平台国际化与应用本地化融合的设计理念,通过定制本地化的桌面用户环境以及开发满足广大中文用户特定需求的应用软件来提供细腻的中文用户体验,做更有中国特色的操作系统。

记Hadoop安装中出现的各种问题_第2张图片
(2)如果直接在文件夹中删除了虚拟机,导致虚拟机无法运行,建议下载360安全助手,彻底清理注册表后,再次安装。
(3)在VirtualBox创建虚拟电脑,建议安装Ubuntu16.04,不要安装CentOS,这样可以和林子雨老师课程实验环境完全吻合。Unbuntu的安装时间较长,一些老的电脑可能一次安装就会花掉6-8个小时,所以在选择版本时一定要考虑好,避免后续的多次安装产生的麻烦。
(4)在Ubuntu内,如果出现窗口显示不全的情况,就按住alt键,再把鼠标移动到对话框上端,点击鼠标左键拖拽移动对话框就可以显示其他的内容这个问题一般在安装时出现,当安装完成后,根据教程修改Ubuntu的显示分辨率后再全屏,就不会出现显示不全的情况
(5)Ubuntu18.0.4安装时选择分区后需要点击继续安装时如果出现按住alt还无法拖拽,无法单击继续安装按钮的情况,重新退出安装,选择英语语言就可以解决问题,但是后续安装好以后需要重新下载汉语的语言包及输入法。
附:Ubuntu如何修改默认语言为中文
(6)最好安装Ubuntu设置用户时就设置用户名为hadoop,这样会在后续的安装过程中省掉很多不必要的麻烦,不然后续安装hadoop时还需要新建hadoop用户。
(7)键盘布局问题,如果有时出现无法输入"~"的情况,在设置里边将输入设置从英语(英国)调到英语(美国)就行,设置完成可以查看一下键盘布局,此时就能输入了。
(8)关于Vbox提供的虚拟机和电脑之间的双向传输剪切板,可以在Vbox设置里打开双向复制粘贴,如果还是不能在虚拟机和电脑之间复制内容,需要再查找相关的解决办法。

在Ubuntu终端窗口中,复制粘贴的快捷键需要加上 shift,即粘贴是 ctrl+shift+v。

记Hadoop安装中出现的各种问题_第3张图片
(9)Ubuntu卡顿掉帧现象比较严重的话,可以在退出Ubuntu后在Vbox里边适当增加显存和内存

在分配内存时有条件的主机最好分配大一些的运行内存通常4G对应1-2G、8G对应3G,Ubuntu的使用会更加流畅。

(10)如果有时出现解决不了的问题,可以输入以下命令,尝试更新

sudo apt-get update

关于Hadoop安装及调试

Hadoop3.1.3安装教程_单机/伪分布式配置-Ubuntu18.04(16.04)
Hadoop2.6.0(2.7.1)安装教程-单机-伪分布式配置–Ubuntu14.04(16.04)

(1)Hadoop最好直接在Ubuntu的火狐浏览器里下载,注意是tar.gz不是src ,src是未编译版本,无法直接使用。
Hadoop3.1.3官网下载链接(在虚拟机用Firefox浏览器打开下载)
(2)关于使用什么分布式的安装,由于分布式需要多个主机同时运行,对电脑的要求很高,所以建议使用单机/伪分布式安装。

单机模式:单机模式:Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
伪分布式模式:Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
分布式模式:使用多个节点构成集群环境来运行Hadoop。

(3)关于安装java环境有两种办法,第一个就是按照教程中操作,下载安装JDK,第二种则是打开终端,输入下边命令,等待更新就好,安装时会自动生成usr/lib/jvm文件夹,如果安装成功,按照这个路径就能找到JDK

sudo apt install openjdk-8-jdk
apt search openjdk
sudo apt-get install default-jre

第一条输入以后如果安装成功就不用输入23条,当安装失败时再输入2和3条

(4)配置环境变量时,如果成功用vim编辑器打开文件,会弹出编辑窗口的,若没有弹出,则需要检查vim的安装是否成功,在编辑环境变量时如果安装的是openjdk-8-jdk,在配置环境变量时将路径里边相应的jdk换成openjdk-8-jdk就行,基本的vim编辑器操作方法参考下边教程
Linux系统中vim编辑器的安装和使用方法

vim编辑器是Linux系统上最著名的文本/代码编辑器,是vi编辑器的加强版,可以帮助我们完成文件的创建和代码的编写

(5)在Linux的终端中输入密码,终端是不会显示任何你当前输入的密码,也不会提示你已经输入了多少字符密码。而在windows系统中,输入密码一般都会以“*”表示你输入的密码字符,在输入sudo命令后,需要输入密码时,不要认为没有反应就是没输入,所以为了方便建议设置密码时就设置比较简单的密码。

sudo命令
安装中会大量使用到sudo命令。sudo是ubuntu中一种权限管理机制,管理员可以授权给一些普通用户去执行一些需要root权限执行的操作。当使用sudo命令时,就需要输入您当前用户的密码.

(6)执行相对路径时要保证已经cd进要执行相对路径的目录,比如下边的usr/local/hadoop,如果直接执行相对路径会提示找不到目标文件

cd /usr/local/hadoop
./bin/hadoop version

(7)输入shell命令时,注意不要出现拼写错误,例如将"start"拼成"strat"、将"local"拼成"loacl"的情况,否则会报错,找不到对应文件。
———————————————————————————————————
下面是关于Hadoop启动后出现的错误及解决办法(错误主要集中在NameNode/DataNode/SecondaryNode的启动上):

(8)执行./sbin/start-dfs.sh启动Hadoop进程后日志报告中出现错误:
ERROR conf.Configuration:error parsing conf hdfs-site.xml或core-sit.xml时,原因是在伪分布式配置修改core-site.xml和hdfs-site.xml时出现了拼写错误,需要先关闭进程sbin/stop-dfs.sh,再重新进入/usr/local/hadoop/etc/hadoop/使用gedit ./hdfs-site.xml打开相应的xml文件仔细查找错误,保存后重启hadoop进程
core-site.xml文件正确配置

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

hdfs-site.xml文件正确配置

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

(9)执行过一次NameNode格式化后,若后续开启Hadoop进程后输入jps没有列出相应成功进程提示的话,不要急着再一次格式化NameNode,因为多次格式化NameNode之后可能出现即便成功配置,启动进程后输入jps仍只显示jps的情况,而没有其它三个Node的情况,那样问题就比较麻烦了
要按照以下顺序排除所有错误后再格式化:

  1. 先重启Hadoop
 ./sbin/stop-dfs.sh #关闭Hadoop
 ./sbin/start-dfs.sh #开启Hadoop进程
  1. 重新打开core-site.xml和hdfs-site.xml核对错误
  2. 排除java环境变量问题
  3. 格式化NameNode

(10)权限被拒绝错误Permission denied访问输入jps后,只有jps参数,没有其他三个Node参数的情况,检查日志文件发现
记Hadoop安装中出现的各种问题_第4张图片
localhost: hadoop@localhost:Permission denied (publickey,password).
进程权限不够,访问被拒绝,则是之前配置SSH无密码登录时出现错误,需要重新进行SSH链接公钥认证

cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,注意要一直按回车
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权

在这里插入图片描述
Hadoop启动失败,输入jps 之显示jps而没有其他几个Node参数的另一个原因可能是ssh的安装配置出现问题,输入

ssh localhost

若没有显示地址,ssh可能没有安装好在这里插入图片描述
重新安装SSH server,并重设无密码登录

sudo apt-get install openssh-server

(11)启动 Hadoop 时出现很多 Could not resolve hostname提示
可通过设置 Hadoop 环境变量来解决。首先按键盘的 ctrl + c 中断启动,然后在 ~/.bashrc 中,增加如下两行内容(设置过程与 JAVA_HOME 变量一样,其中 HADOOP_HOME 为 Hadoop 的安装目录)

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

(12)若只有 DataNode 没有启动,可尝试如下的方法(注意这会删除 HDFS 中原有的所有数据,如果原有的数据很重要请不要这样做):

cd /usr/local/hadoop
./sbin/stop-dfs.sh   # 关闭
rm -r ./tmp     # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
./bin/hdfs namenode -format   # 重新格式化 NameNode
./sbin/start-dfs.sh  # 重启

(13)如果 SecondaryNameNode 没有启动,运行 关闭进程,然后再次尝试启动尝试

 sbin/stop-dfs.sh #注意要在cd /usr/local/hadoop下

(14)关于Hadoop伪分布式配置会出现很多不同的错误一般出错的提示在最后面,通常是写着 Fatal、Error、Warning 或者 Java Exception 的地方。不同环境出现的错误也不同,需要自己查看日志来分析错误原因,在网上搜索一下出错信息,尝试一些相关的解决方法。
如果启动成功,输入jps则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode,在火狐浏览器访问 Web 界面 http://localhost:9870 可以查看 NameNode 和 Datanode 信息,到这一步就算成功的安装并配置好Hadoop伪分布式了,给自己点掌声
记Hadoop安装中出现的各种问题_第5张图片

关于虚拟机和电脑间数据传输

虚拟机和电脑之间的文件传输有几种方法
1)直接拖拽传输,只能传输到当前用户的主文件夹下,也就是我们常说的 ~,而想把文件从主文件夹复制到安装软件的计算机目录下,则需要开启权限,并且一般来说root文件夹的权限不能更改,复制文件时会出现权限不够无法传输的情况记Hadoop安装中出现的各种问题_第6张图片
2) 使用Vbox虚拟机的文件管理器,打开方法:控制~文件管理器,使用方法:现在下方输入虚拟机的用户名和密码,点击创建链接,左边是电脑文件,右边是虚拟机文件,点击文件后再点复制按钮就可以传输文件,但同样的文件管理器也会出现权限不够的问题,仅从Ubuntu的计算机向电脑复制文件时可以,但返过来传输文件则没有反应
记Hadoop安装中出现的各种问题_第7张图片
3)使用Linux系统Filezilla工具,具体的下载如下(Filezilla安装在Windows上):
官网下载链接Windows64位
使用教程:FileZilla的使用教程

FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,
具备所有的FTP软件功能。
可控性、有条理的界面和管理多站点的简化方式
使得Filezilla客户端版成为一个方便高效的FTP客户端工具

4)在Windows系统中利用FTP软件向Ubuntu系统上传文件
使用方法:FTP软件使用方法

FTP就是文件传输协议。用于互联网双向传输,
控制文件下载空间在服务器复制文件从本地计算机
或本地上传文件复制到服务器上的空间。

虚拟机和电脑之间的双向剪切板不容易设置,安装时需要访问的链接最好直接在虚拟机的火狐浏览器上访问,同样下载的软件最好也直接在虚拟机里边下载,

关于Linux的提示

(1)Linux中英文的切换方式是使用键盘“shift”键来切换。
(2)~的含义
在 Linux 系统中,~ 代表的是用户的主文件夹,即 “/home/用户名” 这个目录,如你的用户名为 hadoop,则 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 后面的文字是注释,只需要输入前面命令即可。
(3)查询虚拟机的ip地址
打开终端——输入"ifconfig"——查看"inet地址" (每次不同,每次登陆,重新查询)
(4)在Linux的终端中输入密码,终端是不会显示任何你当前输入的密码,也不会提示你已经输入了多少字符密码。而在windows系统中,输入密码一般都会以“*”表示你输入的密码字符,在输入sudo命令后,需要输入密码时,不要认为没有反应就是没输入,所以为了方便建议设置密码时就设置比较简单的密码。

涉及Hadoop的常用命令

(1)启动Hadoop(要先进入Hadoop安装目录):

cd /usr/local/hadoop
./sbin/start-dfs.sh

(2)关闭Hadoop

 ./sbin/stop-dfs.sh

(3)更新apt

  sudo apt-get update

Linux系统的常用命令及基本练习

Linux系统常用命令
下面是一些基础的操作可以在自己的虚拟机上进行实验,里边的文件增加删除操作是安全的闭环动作,完成操作后不会对系统造成影响
1.切换到local文件夹:

 cd /usr/local

2.返回上一级:

cd ..

3.切换到用户主文件夹:

cd ~

4.查看usr下所有的文件和目录:

cd /usr
ls-al

———————————————————————————————————
目录(文件夹管理)
1.进入/tmp目录,创建一个名为a的目录,并查看/tmp目录下已经存在的哪些目录

cd /tmp
mkdir a 
ls -al

2.删除空目录:

 cd /tmp     rmdir a

3.在/tmp目录下新建test:

cd /tmp
mkdir test

3.将/usr目录下的文件bashrcl复制到/usr/test目录下:

sudo cp /usr/bashrcl /usr/test

4.将/usr目录下的test重命名为test2:

sudo mv /usr/test /usr/test2

5.将/usr/test2 目录下的移除(删除)bashrcl:

sudo rm /usr/test2/bashrcl

6.查看当前主用户文件夹下的.bashrc文件的内容(cat命令):

cat ~/.bashrc

7.文件查找(finder命令)找出主文件夹下文佳名为.bashrc文件:

find ~ -name .bashrc

8.压缩命令(tar),在根目录"/“下新建文件夹test,然后在根目录”/"下打包成

test.tar.gz
sudo mkdir /test
sudo tar -zcv -f /test.tar.gz test

9.解压缩命令,把上面的test.tar.gz压缩包,解压缩到/tmp目录

sudo tar -zxv -f /test.tar.gz -C /tmp

本文涉及名词解释

(1)单机模式:单机模式:Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
(2)伪分布式模式:Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
(3)分布式模式:使用多个节点构成集群环境来运行Hadoop。
(4)优麒麟:Ubuntu Kylin是由中国CCN联合实验室支持和主导的开源项目,其宗旨是采用平台国际化与应用本地化融合的设计理念,通过定制本地化的桌面用户环境以及开发满足广大中文用户特定需求的应用软件来提供细腻的中文用户体验,做更有中国特色的操作系统。记Hadoop安装中出现的各种问题_第8张图片
优麒麟(Ubuntu Kylin) 以Ubuntu为参考,得到来自Debian、Ubuntu、LUPA及各地Linux用户组等国内外众多社区爱好者的广泛参与和热情支持,其开发贡献者可参见Ubuntu Kylin开发者团队列表。现在最新的正式版本是19.10。
(5)Linux:Linux是一套免费使用和自由传播的操作系统内核,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统内核。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统内核。
(6)VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public License (GPL) 释出 VirtualBox,并提供二进制版本及 OSE 版本的代码。使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系统作为客户端操作系统。已由甲骨文公司进行开发,是甲骨文公司xVM虚拟化平台技术的一部份。
(7)Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
记Hadoop安装中出现的各种问题_第9张图片)
(8)FTP就是文件传输协议。用于互联网双向传输,控制文件下载空间在服务器复制文件从本地计算机或本地上传文件复制到服务器上的空间。
(9)FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,
具备所有的FTP软件功能。可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户端工具
记Hadoop安装中出现的各种问题_第10张图片

结语

如有错误,欢迎指正,后续有机会还会继续做一些问题补充,祝大家都能成功的安装好自己的Hadoop
在这里插入图片描述

转载请注明出处

你可能感兴趣的:(Hadoop安装)