hadoop3.3.1单机与伪分布安装

@ubuntu下HADOOP3.3.1的单机和伪分布安装

首先说明本文中主要的安装步骤参考自林子雨老师的《大数据技术原理与应用》一书,本文旨在记录作者按照书中步骤配置hadoop时遇到的一些问题以及版本更迭后出现的问题,同时给出对应的解决方案。

ubuntu下HADOOP3.3.1的单机安装

  1. 首先在自己的ubuntu系统下新建立一个用户,即创建一个相对隔绝的实验环境(文中默认读者电脑为linux系统)

创建用户的命令如下

$ sudo useradd -m hadoop -s /bin/bash

接着为新用户设置密码

$ sudo passwd hadoop

最后为新用户添加管理员权限

$ sudo adduser hadoop sudo

这样一个新的在linux下的hadoop实验用户就建立好了,接下来重启进入实验用户hadoop

$ sudo shutdown -r       

linux重启指令

PS:以上操作指令作者在操作中未遇到任何报错,如有读者出现错误,敬请留言

  1. 更新apt和安装vim编辑器
    PS:如果是第一次使用linux系统,建议进行换源操作,此处不多赘述

更新apt命令如下

$ sudo apt-get update

安装vim编辑器命令如下

$ sudo apt-get install vim

在安装时需要确认,在提示处(y/n)输入y即可

  1. 安装SSH和配置SSH无密码登录

ubuntu系统默认已安装SSH客户端,故这里只需要安装SSH服务端,命令如下:

$ sudo apt-get install openssh-server

同样在遇到确认时输入y

在安装后使用如下命令登入本机:

$ ssh localhost

出现提示后输入yes,并输入本机密码即可登录,可以发现此处每次登录都需要输入密码,所以进行无密码登录配置

退出刚刚的登录

$ exit

利用ssh-keygen生成密钥,并将密钥加入授权,命令如下:

$ cd ~/.ssh/
$ ssh-keygen -t rsa

PS:此处在输入第二行指令后一直按回车enter键即可,不要连续输入额外字符
后续命令如下:

$ cat ./id_rsa.pub >> ./authorized_keys

PS:此处命令一行输完,不要分行

此时再使用 ssh localhost,不需要密码就可以登录

  1. 安装JAVA环境
    PS:这里对JAVA安装包的下载不作过多赘述,文中默认JDK版本为1.8且压缩包下载目录在 ~/下载

执行如下命令创建 “/usr/lib/jvm” 目录来存放文件:

$ cd /usr/lib
$ sudo mkdir jvm

执行如下命令对安装包进行解压:

$ cd ~
$ cd 下载
$ sudo tar -zxvf ./jdk-8u301-linux-x64.tar.gz -C /usr/lib/jvm

解压之后进行环境变量设置:

$ vim ~/.bashrc

在文件开头位置添加如下代码:
PS:进入vim后,按 i 进入编辑状态,在添加完内容后按 Esc 键退出编辑模式,再按 :,输入 wq! 保存并退出 vim

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_301
export JRE_HOME=${
    
    JAVA_HOME}/jre
export CLASSPATH=.:${
    
    JAVA_HOME}/lib:${
    
    JRE_HOME}/lib
export PATH=${
    
    JAVA_HOME}/bin:$PATH

按如上操作保存并退出vim后执行如下命令使文件生效:

$ source ~/.bashrc

这时使用如下命令查看JAVA是否安装配置成功:

$ java -version

至此,基础配置过程结束,接下来进行hadoop的配置

安装单机HADOOP

在运行hadoop单机模式时,所有节点都在同一台机器上,存储采用本地文件系统,并未涉及HDFS。

以下安装步骤中均使用HADOOP3.3.1进行实验

在hadoop官网(https://hadoop.apache.org/releases.html)下载3.3.1对应安装包,下载安装包的位置在 ~/下载 或是 ~/Downloads 目录下,安装包名为hadoop-3.3.1.tar.gz,接下来进行安装操作

PS:以下默认安装包被保存在 ~/Downloads

$ sudo tar -zxf ~/Downloads/hadoop-3.3.1.tar.gz -C /usr/local

此时已经将hadoop解压到了指定目录下,接下来对目录名进行修改并赋予权限

$ sudo mv ./hadoop-3.3.1.tar.gz ./hadoop
$ sudo chown -R hadoop ./hadoop

此时就可以用如下命令查看hadoop版本号

$ /usr/local/hadoop/bin/hadoop version

如果返回如下信息,则说明安装成功:

Hadoop 3.3.1
Source code repository https://github.com/apache/hadoop.git -r a3b9c37a397ad4188041dd80621bdeefc46885f2
Compiled by ubuntu on 2021-06-15T05:13Z
Compiled with protoc 3.7.1
From source with checksum 88a4ddb2299aca054416d6b7f81ca55
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.3.1.jar

HADOOP伪分布式安装

在分布式安装时,hadoop存储采用的是HDFS,名称节点和数据节点运行在不同的机器上。伪分布式安装是模拟一个集群分布,但集群中只有一个节点,并且名称节点和数据节点均在一台机器上。不过借助一些技术也可以在一台电脑上实现分布式安装,如虚拟机,docker,在下篇文章中将介绍使用docker进行hadoop分布式搭建的过程。

首先对hadoop安装目录中的两个文件( core.site.xml 和 hdfs.site.xml )进行修改
PS:以下涉及的文件路径为 /usr/local/hadoop/etc/hadoop ,使用 cd 指令访问后利用 ls 指令即可查看

修改后的 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>
               <property>
                     <name>dfs.http.address</name>
                     <value>127.0.0.1:50070</value>
               </property>
</configuration>

此处内容与书中稍有出入,两者均可,仅作参考。

在配置完成后对节点进行初始化:

$ cd /usr/local/hadoop
$ ./bin/hdfs namenode -format

执行后会出现很大一段回复,最后几行看起来很像报错了,此时不要着急,在最后十行回应中寻找 successfully formatted ,只要按照上文正常配置就可以初始化的,如果找不到,再进行debug。

至此,初始化成功后,就可以用如下命令启动HDFS

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

如果出现如下回应:

Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [peryol-ThinkPad-T540p]

接下来再使用如下指令查看所有的JAVA进程:

24297 Jps
24156 SecondaryNameNode
23932 DataNode
23789 NameNode

如果显示四个进程如上正常运行( 数字编号不同无所谓 ),则启动成功,并且可以在浏览器中访问web页面(http://localhost:50070)进行访问,如果按照书中的步骤配置,则访问地址编号(50070)稍有出入。

补充

  1. 在第一次启动时进行初始化后,再次启动不需要再初始化,如果某些情况需要再次初始化,请提前删除安装目录下的默认文件存储目录(/usr/local/hadoop/tmp),该目录在上文中修改的两个配置文件中设置。
  2. 如果在使用put指令时出现DataStreamerException报错,首先保证自己的linux系统防火墙处于关闭状态,再次尝试仍报错的情况下对hadoop进行初始化操作,注意事项参考第一点。
  3. 如果出现其他报错,检查上述步骤中是否有细节处处理错误,比如少打一个空格,指令拼写错误。

最后如有错误,还请大家批评指正。

猜你喜欢

转载自blog.csdn.net/weixin_45704680/article/details/120368821