~~~~~~~~~~~~~~~~~~~~~~~~~更新~~~~~~~~~~~~~~~~~~~~~~~~~~~
本专题教程最终会以搭建4台机器(节点)的集群为教学目的,但会经历单机版(只有一台机器)、伪分布式(还是只有一台机器)、完全分布式(两台或两台以上的机器)的搭建过程。但无论是多少台机器,每一台机器的Linux设置几乎是一样的(除了IP网址不一样外)、Hadoop配置文件的配置也几乎一样的,因此我们主要集中精力配好一台机器就可以了,其他机器直接复制就行,需要做差异化配置的后面文章会特别提出。
一、本文需要完成的事情
1.配置linux网卡,使得你的linux系统可以上网以及和其他主机进行正常通行。
2.修改linux系统的主机名(你不想每台机器的名字都一样吧)
3.创建Hadoopuser用户,并赋予root权限。(其实这部不做也行,不做的话就是在root用户下安装Hadoop,权限过高,不利于多用户管理)
4.关闭linux防火墙(必做)
二、Linux 基础知识以及基础命令回顾
可能很多人刚开始接触linux,因此入手是一头雾水,我刚开始也是,正所谓万事开头难,如果你很熟悉linux系统的话,搭建Hadoop环境简直是小菜一碟。所以,为了大家不中途放弃,在正式搭建前,给大家稍微做一下linux知识回顾,讲一下配置中常用的一些命令,有些比较关键但目前用不到的,等用到了的时候再说一下,here we go!
(一)Linux的目录结构以及查看目录的命令
Linux的树状目录结构图如下;
/:根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件。根目录下还有etc、bin、dev、lib、sbin等子目录,各有作用,请看下文。
/bin 该目录为命令文件目录,包含了供系统管理员及普通用户使用的重要的linux和二进制文件。如我们后续常用的一些命令就是存储在这个文件目录下。
/etc:系统配置文件存放的目录,如网卡的配置、环境变量的配置、主机名配置等,后面我们会经常配置这个文件夹里面的文件
/home,系统默认的用户宿主目录,你新创建的账号家目录就是在home目录下面的,后面会用到。
/opt:给主机额外安装软件所摆放的目录(也不一定得放这,不过放这好管理,大家都默认是这里,是不是)
/root:系统管理员root的宿主目录,和/home下面的普通用户宿主目录类似
/usr:应用程序存放目录。
以上是linux的目录结构简单介绍,下面是关于目录的一些操作命令:
ls:列出当前目录下所有的目录以及文件(不包含隐藏文件和目录),如在根目录下输入ls:
如果想查看当前目录下所有目录文件包括隐藏的目录文件的话,在ls 后面加上-a就可以了,比如在根录下输入 ls –a:
可以看到加-a后多了 . 和 .. 这两个目录。“.”代表当前目录,“..”代表上一级目录。
ll:和ls命令功能相似,也是列出当前目录下所有的文件(不包含隐藏文件和目录,要显示隐藏文件同样加上-a即可),不同的是,ll会显示详细的信息,包括文件的权限、文件所属用户,所属组,文件大小以及文件创建或者更新日期等。如在/根目录下输入ll:
文件所属权限以及用户要弄清楚,后面对于配置环境来说很重要,很多人会在这里失败。
cd:用于切换当前工作目录至dirname(目录参数),其中dirname可以是绝对路径或相对路径。当dirname省略时,输入cd 进入是的宿主目录(就是当前用户的家目录)
在任意目录下面输入:cd /etc (这是绝对路径):
也可以输入 cd .. 返回上层目录:
pwd: 显示当前目录。如在当前目录输入pwd:
Mkdir :创建目录。可以直接输入mkdir name,则在当前目录下面直接创建目录。也可以输入绝对路径,如 mkdir /opt/test,则标识在/opt目录下面创建目录。
(二)linux文件操作
Linux目录下的文件有几种类型,如下图所示就是常见的几种类型:目录、文件、链接文件。
l开头的代表链接文件,d开头的代表目录,-代表是普通文件,如txt文本等。对于文本文件,我们常用的一些命令有:
touch filename :创建文件
cat filename : 输出文件内容
vi filename ,进入文本文件编辑模式。进入文本文件编辑模式后,按下i可进行内容输入、修改。修改完后,按下esc+shift|+:,再输入wq,则保存退出。若不想保存退出,则是按下esc + shift + :后,输入q!即可直接退出,内容不做保存。
最后,补充一下文件权限问题。大家从上面的图发现,所有文件最后右边都有一串字母,如drwxrwxrwx等,总体上可以分为4部分:
【文件或文件夹】【文件所属用户权限】【同组用户权限】【其他组用户权限】
【文件是-,文件夹是d】【r/w/x相加】【r/w/x相加】【r/w/x相加】
其中,r代表读权限,w代表写权限,x代表可执行权限(excute)。
我们通常把rwx用二进制表示,有权限位就为1,则为0.比如,r-x,则代表是有读和执行权限,没有写权限,用二进制表示为101,就是十进制的5.同理,rwx则是111,十进制是7.因此,一个文件如果用数字表示完整的权限的话会是这样子的:
drwx-wx--x 表示这个目录,文件所有者拥有读写以及执行的权限,同组用户具有写和执行权限,其他用户只有可执行权限,用十进制表示就是731.
如果要修改一个文件或目录的权限,可以用chmod命令。
Chmod 333 filename,就是把文件filename的权限修改为所有用户都只有写和执行的权限。一般只有root用户以及文件所有者才有权限对文件权限进行修改。
二、配置linux网络
1.查看当前网络配置
用linux用ifconfig 命令就可查看当前网路配置。
不对呀,提示comman not found呀。别急,这是因为有些linux系统bin目录下没有这个命令文件,需要自行安装,需要用yun install 命令安装即可。
既然ifconfig不能用,则我们用ip addr 命令代替,查看当前的配置。如图:
第一个框中的的地址127.0.0.1/8是主机地址,测试主机用的。下面那个ens33才是网卡地址,和外面通信用的。由图可见,刚安装好的linux是还没有配置ip网络的,因此我们需要给他配置IP地址。
Linux的网络配置文件在根目录下的etc目录下的sysconfig下的network-script目录ifcfg-ensxx的文件,我这里是ens33,有些人的电脑可能是其他数字。
用前面说的方法,使用vi命令编辑ifcfg-ens33文件,配置如下(红色框必须有):
配置完保存退出后,输入service network restart重启网络服务即可:
重启完成后,重新ip addr 一下:
是不是ens33的配置和之前不一样了?
用ping命令测试一下,我的电脑ip地址(非虚拟机里面的linux电脑哈)是192.168.92.34,因此:ping –c 4 192.168.92.234结果如下,说明配置成功,网络已通。
那是不是说明可以上网了吗。ping –c 4 www.baidu.com试试:
提示Name or service not known,是不是说明不能上因特网。不是的,因为我们还没配域名服务器,linux主机还不知道www.baidu.com的ip地址是啥,如果我们直接ping 百度的ip地址那就没问题了,比如 ping -c 4 183.232.231.172结果如下:
说明网络是通的,可以正常上网的(这对后面挺重要的,比较多命令需要联网安装),因此下一步我们需要配置域名服务器IP地址(其实这步可以省略,配不配域名服务器对搭建Hadoop来说没太大影响,只是顺便说下)
域名服务器的Ip地址在文件/etc/resolv.conf里,我们vi一下这个文件,输入以下图中内容,保存退出即可。
再重新ping www.baidu.com即可,结果如下:
2、修改linux系统的主机名
主机名配置文件是/etc/hosts,因此vi /etc/hosts,输入以下内容,保存退出。
备注:说明一下,这里面除了配置了本机Hadoop101名称外,还配置了其他的一些名称,这主要是方便后面新增其他3台机器的配置。以后可以直接用Hadoop101来代替192.168.100.101,其他的也同理。不信,可以ping Hadoop101试试,结果如下:
此外,还有个叫hostname的东西也可以配置一下,大家是否留意到,root后面@的内容是localhost,这是默认的主机名称,如果你想把它改成Hadoop101,是可以在/etc/hostname文件中修改
修改方法:vi /etc/hostname ,把里面的localhost.localdomain改成hadoop101即可,保存退出后,用reboot命令重启即可。重启后输入hostname命令查看就知道是否已修改成功了
3.创建一个用户,并赋予root权限。
这部分主要是想hadoop的创建者和root用户分开,root用户权限太大,不适宜所有事情和安装程序都在root用户下面进行。具体操作如下:
A.adduser hadoopuser ,增加用户
B.passwd hadoopuser,在后面需要连续输入两次密码,给hadoopuser设置密码。
C.给hadoopuser 赋予root权限,vi /etc/sudoers,找到Allow root to run 的东西,在root下面添加 Hadoopuser ALL=(ALL)ALL,保存退出即可。如下图:
另外说一下,可能有些同学在用vi修改sudoers时,提示无权限,那是因为有些同学的sudoers文件仅有root的读权限,如下图所示;
因此,需要修改文件的操作权限,使用前面说的命令
Chmod 777 sudoers
之后就可以修改了。修改完后,再用chmod 440 sudoers恢复原状,以防其他用户可以随便修改这个文件(意味着可以指定任何人具有root权限,这可不得了)
修改完后,使用sudo + 命令测试下是否正常,如果报
Sudoers world is writable 之类的错误,执行以下以下命令即可
pkexec chmod 555 /etc/sudoers。
4.关闭防火墙
A、查看下当前防火墙的状态:systemctl stauts firewalld,如下图,当前的防火墙是开启状态
B、关闭防火墙:systemctl stop firewalld
C、取消开机自动开启防火墙功能:systemctl disable firewalld
D、配置完后,重新查看防火墙状态:systemctl stauts firewalld,it is dead!!
好了,今天更新到这里,目前为止,linux主机的配置已基本完成,网络已调通,下一步就是配置jdk环境变量以及搭配单机版的hadoop了,本章篇幅有点长,有点啰嗦,感谢看到这里的朋友们,我们下期再见~