Hadoop有以下几种运行模式:
- 单机/本地模式:这是Hadoop的默认模式(又称非分布式模式),无需进行其他配置即可运行非分布式即单Java进程,方便进行本地开发调试,适合需要快速安装、体验Hadoop的用户。它访问的是本地磁盘,并不会去访问分布式文件系统HDFS。
- 伪分布式模式:学习Hadoop一般是在伪分布式模式下进行。伪分布式的意思是虽然各个模块是在各个进程上分开运行的,但是最终还是运行在一个操作系统上,并不是真正的分布式。在该模式下,Hadoop可以在单节点上以伪分布式的方式运行,Hadoop进程以分离的JAVA进程来运行,节点既作为Namenode也作为Datanode,同时读取的是HDFS中的文件。简单来说,这个模式就是在一台机器上各个进程上运行Hadoop的各个模块。下文我们也主要采用这个模式来部署Hadoop。
- 分布式模式:使用多台服务器构成集群环境来运行Hadoop,该模式是生产环境采用的模式。
Hadoop安装记录
由于笔者决定采用伪分布式模式运行Hadoop框架,该模式并非生产环境所采用的模式,笔者只是希望通过该模式了解Hadoop集群的一些功能,因此没有非常严格地去查看安装的Hadoop框架以及对应的JDK版本,只是照本宣科地跟着林子雨老师的教程过了一遍。正常的Hadoop框架配置应当预先准备好这一步。
查看环境
参考资料:blog.csdn.net/YUE\_sasa/a…
笔者采用的命令是:
uname -a
在装好Ubuntu系统后,在安装Hadoop之前还需要一些工作。
创建Hadoop用户
首先是创建一个名为"
h
a
d
o
o
p
hadoop
hadoop"的用户,创建该用户命令如下:
$ sudo useradd -m hadoop -s /bin/bash
该命令创建了可以登陆的"
h
a
d
o
o
p
hadoop
hadoop"用户,然后可以为其设置密码。
$ sudo passwd ******(个人密码)
同时我们还可以为
h
a
d
o
o
p
hadoop
hadoop用户增加管理员权限,方便部署,在学习过程中可以解决一些比较复杂棘手的权限问题。
$ sudo adduser hadoop sudo
最后注销当前用户,返回登录界面,选择刚才创建的
h
a
d
o
o
p
hadoop
hadoop用户进行登录。
更新apt
在这里,apt(Advanced Packaging Tool)是一个Ubuntu中的Shell前端软件包管理器。apt命令提供了查找、安装、省级、删除某一个/一组甚至全部软件包的命令,且命令非常简洁易记忆。
在使用
h
a
d
o
o
p
hadoop
hadoop用户登录后,要先更新一下apt,因为后续需要用到apt安装软件。我们可以使用下面这条代码:
$ sudo aptget update
如果出现问题,可以参考一下林子雨老师的视频进行配置。
后续我们还需要更改一些配置文件,一般有两种方法:1.使用vim。2.使用gedit。gedit用起来感觉更偏向于windows的txt,对于刚接触Linux系统的同学比较友好。一般来说,linux系统都是默认带有gedit的。gedit的一个坏处是:如果文件更改完不及时关闭gedit程序,会导致终端被占用而无法使用终端。如果需要使用到vim,可以输入下面的代码:
$ sudo apt-get install vim
vim的使用可以参考这篇教程:(4条消息) Linux Vim编辑器的基本使用__HsForPyp的博客-CSDN博客
安装SSH、配置SSH无密码登陆
集群、单节点模式都需要用到SSH登陆(类似于远程登陆),Ubuntu默认已经安装了SSH client,此外还需要安装SSH server:
$ sudo apt-get install openssh-server
安装后,可以使用如下命令登陆本机:
$ ssh localhost
如果你是首次登陆,会出现以下提示,只需要输入yes然后根据题示输入密码,即可登录到本机。
但是这样每次登陆都是需要输入密码,相对来说比较繁琐,将SSH配置成无密码登陆会比较方便。
然后我们可以退出刚才的SSH:
$ exit
在回到原先的终端窗口后,我们就可以利用SSH-keygen生成密钥,并且将密钥加入到授权中:
$ cd ~/.ssh/
$ ssh-keygen -t rsa #会有提示,一直摁回车就好
$ cat .id_rsa.pub >> ./authorized_keys #加入授权
此时再使用ssh localhost命令,无需输入密码就可以直接登陆了:
安装Java环境
因为我们需要安装的是Hadoop3.1.3,其需要的JDK版本在1.8以上。我们要先在JDK官网下载JDK1.8的安装包并保存到本地,然后手动安装。
在Linux命令行界面中,我们执行如下命令就可以实现安装包的解压缩:
$ cd /usr/lib
$ sudo mkdir jvm #该位置用于存放JDK文件
$ cd ~ #进入到hadoop用户的主目录
$ sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #解压JDK文件到jvm目录下
JDK文件解压缩后,我们可以执行如下命令去jvm目录查看一下:
$ cd /usr/lib/jvm
$ ls
看到上图中的结果之后就说明JDK文件已经解压成功。下面继续执行如下命令,设置环境变量:
$ cd ~
$ vim ~/.bashrc
在该文件中,输入上图中四条export语句。要注意JAVA_HOME变量的位置一定要是JAVA安装路径的具体地址,否则后面会卡步骤。
保存.bashrc文件后并退出vim编辑器。然后继续执行如下命令使修改的文件立刻生效:
$ source ~/.bashrc #使文件立刻生效
$ java -version #查看是否安装成功
如果屏幕上返回上图中的信息,则说明JAVA环境安装成功。
Hadoop安装
这个和安装JDK一样,先去Hadoop官网下载相关压缩包即可。
$ sudo tar -zxf ~/hadoop-3.1.3.tar.gz -C /usr/local #解压代码
$ cd /usr/local/
$ sudo mv ./hadoop-3.1.3/ ./hadoop #将文件夹名改为hadoop
$ sudo chown -R hadoop ./haoop #修改文件权限
Hadoop解压之后即可使用,可以通过下面的代码检查其是否可用:
$ cd /usr/local/hadoop
$ ./bin/hadoop version
Hadoop伪分布式配置
如果Hadoop在单节点上以伪分布式的方式运行,Hadoop进程以分离的JAVA进程来运行,节点既可以作为NameNode也可以作为DataNode,同时,该模式下读取的是HDFS中的文件。
伪分布式需要修改两个配置文件
c
o
r
e
−
s
i
t
e
.
x
m
l
core-site.xml
core−site.xml和
h
d
f
s
−
s
i
t
e
.
x
m
l
hdfs-site.xml
hdfs−site.xml。Hadoop的配置文件是xml形式,每个配置以声明property的name和value的方式来实现。这里的修改会比较多,建议采用gedit编辑会相对来说比较容易上手,方便初学者学习。
需要在两个配置文件中补充上述两张图中红色方框内的内容即可。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新