实验一 全分布模式下的Hadoop集群构建
一、实验目的和要求
(一)熟悉Linux基本命令。
(二)掌握如何设置静态IP地址,掌握如何修改主机域名。 (四)掌握如何配置Java环境变量,掌握Java基本命令。
(五)了解为何需要配置SSH免密码登录,掌握如何配置SSH免密码登录。 (六)熟练掌握在linux环境下如何构建全分布模式下的Hadoop集群。
二、实验内容
(一)安装和配置CentOS。 (二)安装和配置Java环境。 (三)启动和配置SSH免密码登录。 (四)安装和配置Hadoop。
三、实验仪器、设备
PC,VMWare,CentOS安装包,Oracle JDK安装包,Hadoop安装包。
四、实验原理
(一)Linux基本命令
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991年10月5日。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
本小节将介绍实验中涉及到的Linux操作系统命令: (1)查看当前目录
pwd命令用于显示当前目录: [root@master ~]# pwd /root
(2)目录切换
cd命令用来切换目录: [root@master ~]# cd /usr/local [root@master local]# pwd /usr/local
[root@master local]# (3)文件罗列
ls命令用于查看文件与目录: [root@master local]#ls (4)文件或目录拷贝
cp命令用于拷贝文件,若拷贝的对象为目录,则需要使用-r参数: [root@master local]#cp -r hadoop-2.8.1 /root/hadoop (5)文件或目录移动或重命名
mv命令用于移动文件,在实际使用中,也常用于重命名文件或目录:
[root@master ~]# mv hadoop hadoop2 #当前位于/root,不是/usr/local (6)文件或目录删除
rm命令用于删除文件,若删除的对象为目录,则需要使用-r参数:
[root@master ~]# rm -rf hadoop2 #当前位于/root,不是/usr/local (7)进程查看
ps命令用于查看系统的所有进程:
[root@master ~]# ps #查看当前进程 (8)文件压缩与解压
tar命令用于文件压缩与解压,参数中的c表示压缩,x表示解压缩: [root@master local]# tar -zxvf /home/xlh/Downloads/hadoop-2.8.1.tar.gz (9)查看文件内容
cat命令用于查看文件内容:
[root@master ~]# cat /usr/local/hadoop-2.8.1/etc/hadoop/core-site.xml (10)查看服务器IP配置
ip addr命令用于查看服务器IP配置: [xlh@master ~]$ ip addr
1: lo:
valid_lft forever preferred_lft forever inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33:
link/ether 00:0c:29:b8:e8:48 brd ff:ff:ff:ff:ff:ff
inet 192.168.18.131/24 brd 192.168.18.255 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::6232:735:2815:bfdf/64 scope link valid_lft forever preferred_lft forever
3: virbr0:
link/ether 52:54:00:82:29:91 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever
4: virbr0-nic:
link/ether 52:54:00:82:29:91 brd ff:ff:ff:ff:ff:ff [xlh@master ~]$ (二)vim编辑器
vim是一个类似于vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性,vim是vi的加强版,比vi更容易使用,vi的命令几乎全部都可以在vim上使用。
vim是实验中用到最多的文件编辑命令,命令行输入“vim 文件名”后,默认进入“命令模式”,不可编辑文档,需键盘点击“i”键,方可编辑文档,编辑结束后,需按“ESC”键,先退回命令模式,再按“:”进入末行模式,接着嵌入“wq”方可保存退出。
(三)Java基本命令
在安装Java环境后,可以使用Java命令来编译、运行或者打包Java程序。 (1)查看Java版本
[root@master ~]# java -version java version \
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode) (2)编译Java程序
[root@master ~]# javac Helloworld.java (3)运行Java程序
[root@master ~]# java Helloworld Hello World! (4)打包Java程序
[root@master ~]# jar -cvf Helloworld.jar Helloworld.class added manifest
adding: Helloworld.class(in = 426) (out= 289)(deflated 32%)
由于打包时并没有指定manifest文件,因此该jar包无法直接运行: [root@master ~]# java -jar Helloworld.jar no main manifest attribute, in Helloworld.jar (5)打包携带manifest文件的Java程序
manifest文件用于描述整个Java项目,最常用的功能是指定项目的入口类: [root@master ~]# cat manifest.mf Main-Class: Helloworld
打包时,加入-m参数,并指定manifest文件名:
[root@master ~]# jar -cvfm Helloworld.jar manifest.mf Helloworld.class added manifest
adding: Helloworld.class(in = 426) (out= 289)(deflated 32%) 之后,即可使用java命令直接运行该jar包: [root@master ~]# java -jar Helloworld.jar Hello World!
(四)SSH免密认证
Hadoop的基础是分布式文件系统HDFS,HDFS集群有两类节点以管理者-工作者的模式运行,即一个namenode(管理者)和多个datanode(工作者)。在Hadoop启动以后,namenode通过SSH来启动和停止各个节点上的各种守护进程,为了方便起见,需要在这些节点之间执行指令时采用无需输入密码的认证方式,因此,需要将SSH配置成使用无需输入密码的密钥文件认证方式。
(五)Hadoop配置文件
Hadoop配置文件很多,配置文件位于$HADOOP_HOME/etc/hadoop,关键的几个配置文件如表1-1所示。
表1-1 Hadoop主要配置文件
文件名称 hadoop-env.sh yarn-env.sh mapred-env.sh core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml slaves 格式 bash脚本 bash脚本 bash脚本 Hadoop配置XML Hadoop配置XML Hadoop配置XML Hadoop配置XML 纯文本 描述 记录Hadoop要用的环境变量 记录YARN要用的环境变量 记录MapReduce要用的环境变量 Hadoop core的配置项,包括HDFS和MapReduce常用的I/O设置等 HDFS守护进程的配置项,包括NameNode、SecondaryNameNode、DataNode等 YARN守护进程的配置项,包括ResourceManager、NodeManager等 MapReduce计算框架的配置项 运行DataNode和NodeManager的从节点机器列表(每行1个) 五、实验步骤
(一)安装和配置CentOS 1.安装CentOS虚拟机 2.设置静态IP地址
为了让主节点和从节点之间的通信可控,我们需要各个节点配置静态IP,方法是修改相应的配置文件,对于
CentOS 7
而言,对应的配置文件为
/etc/sysconfig/network-scripts/ifcfg-ens33,各机器可能不尽相同,自行查看本人的机器。
(1)查看主节点网卡配置文件名,具体过程如图1-1所示。