Hadoop平台搭建与应用(第2版)(微课版) 课件 项目1-3 认识大数据、Hive环境搭建与基本操作、Zooeeper环境搭建与应用_第1页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目1-3 认识大数据、Hive环境搭建与基本操作、Zooeeper环境搭建与应用_第2页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目1-3 认识大数据、Hive环境搭建与基本操作、Zooeeper环境搭建与应用_第3页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目1-3 认识大数据、Hive环境搭建与基本操作、Zooeeper环境搭建与应用_第4页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目1-3 认识大数据、Hive环境搭建与基本操作、Zooeeper环境搭建与应用_第5页
已阅读5页,还剩158页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务1.1认知大数据,完成系统环境搭建任务实施新建虚拟机时,此虚拟机内存设置4G,磁盘大小使用40G任务实施(1)安装CentOS系统(确保CentOS系统版本在7及以上,以便配合后续Docker安装)。①

在VMware中设置CentOS7镜像,进入后选择第一项安装CentOS7,如图所示。②在新打开页面中设置时间(DATE&TIME),分配磁盘(INSTALLATIONDESTINATION)和网络设置(NETWORK&HOSTNAME)等,如图所示。③单击“INSTALLATIONDESTINATION”链接,在打开的界面中选择“Iwillconfigurepartitioning”选项,然后单击“Done”按钮,跳转到分配磁盘页面即可进行磁盘分配,如图1-10所示。点击加号,swap设置为内存的1-2倍(4-8G),boot设置为512MB-1024MB,home设置为6-10G,剩下的全给“根/”目录单击“NETWORK&HOSTNAME”链接,可以进行网络和主机名称设置,如图所示。④单击图1-9安装设置页面中的“BeginInstallation”按钮,在新打开界面中分别设置root账户密码和创建普通用户,如图所示。在创建用户界面,勾选第一个选项,可将创建的用户设置为管理员,单击“Done”按钮,完成创建操作。安装操作完成后,单击“Reboot”按钮重启操作系统,如图所示。⑤在用户登录提示后,输入设置的账号和密码,进入CentOS系统,如图所示。(2)CentOS中常用命令的使用①常用文件和目录操作命令有“cd”“ls”“ll”“mkdir”“rm”“cp”“touch”“pwd”“mv”“vi”等。命令“cd”用于切换当前工作目录,操作命令及结果如下。[root@CentOS~]#cd/usr/[root@CentOSusr]#命令“ls”用于显示指定工作目录中的内容(列出当前工作目录所含的文件及子目录),操作命令及结果如下。[root@CentOSusr]#lsbinetcgamesincludeliblib64

libexeclocalsbinsharesrctmp命令“ll”用于显示指定工作目录中的内容(列出当前工作目录所含的文件及子目录,包含隐藏目录),操作命令及结果如下。[root@CentOSusr]#lltotal116dr-xr-xr-x.2rootroot24576Feb612:33bindrwxr-xr-x.2rootroot6Apr112018etcdrwxr-xr-x.2rootroot6Apr112018gamesdrwxr-xr-x.35rootroot4096Feb515:08includedr-xr-xr-x.29rootroot4096Feb2514:54libdr-xr-xr-x.41rootroot20480Feb515:56lib64drwxr-xr-x.23rootroot4096Feb515:56libexecdrwxr-xr-x.15rootroot175Feb2514:55localdr-xr-xr-x.2rootroot16384Feb612:33sbindrwxr-xr-x.79rootroot4096Feb515:56sharedrwxr-xr-x.4rootroot34Feb512:37srclrwxrwxrwx.1rootroot10Feb512:37tmp->../var/tmp命令“mkdir”用于建立目录的子目录,操作命令及结果如下。[root@CentOSusr]#mkdirfiles[root@CentOSusr]#lsbinetcfilesgamesincludeliblib64

libexeclocalsbinsharesrctmp命令“touch”用于建立一个新的文件,操作命令及结果如下。[root@CentOSusr]#touchfiles.txt[root@CentOSusr]#lsbinetcfilesfiles.txtgamesincludeliblib64

libexeclocalsbinsharesrctmp命令“rm”用于删除一个文件,操作命令及结果如下。[root@CentOSusr]#rmfiles.txtrm:removeregularemptyfile‘files.txt’?yes[root@CentOSusr]#lsbinetcfilesgamesincludeliblib64

libexeclocalsbinsharesrctmp命令“rm-r”用于删除一个文件或目录(可以包含多个子文件),操作命令及结果如下。[root@CentOSusr]#rm-rfiles/rm:removedirectory‘files/’?yes[root@CentOSusr]#lsbinetcgamesincludeliblib64

libexeclocalsbinsharesrctmp命令“cp”用于复制文件或目录,操作命令及结果如下。[root@CentOSusr]#touchfiles.txt[root@CentOSusr]#cpfiles.txtFILE.txt[root@CentOSusr]#lsbinetcfiles.txtFILE.txtgamesincludeliblib64

libexeclocalsbinsharesrctmp命令“pwd”用于显示当前工作路径,操作命令及结果如下。[root@CentOSusr]#pwd/usr命令“mv”用于为文件或目录改名,或将文件或目录移至其他位置,操作命令及结果如下。[root@CentOSusr]#mvfiles.txtfiles02.txt[root@CentOSusr]#lsbinetcfiles02.txtFILE.txtgamesincludeliblib64

libexeclocalsbinsharesrctmp命令“vi”用于使用vi编辑器打开指定文件(vi编辑器中常用参数有i、I、A、?、:q、:wq、:q!)。参数“i”用于从光标当前位置进入编辑状态。参数“I”用于从光标当前所在行最前位置进入编辑状态。参数“A”用于从光标当前所在行最后位置进入编辑状态。参数“?”用于查找指定内容所在位置,找到后按N表示向下查找,按n表示向上查找。参数“:q”用于在没有任何修改操作的情况下退出vi编辑器。参数“:q!”用于强行退出vi编辑器。参数“:wq”用于在进行编辑后保存并退出vi编辑器。②常用文件权限修改命令有“sudo”“chmod”“chown”等。命令“sudo”用于以系统管理员的身份执行指令,操作命令及结果如下。[user01@CentOSusr]$mkdirstudentmkdir:cannotcreatedirectory‘student’:Permissiondenied[user01@CentOSusr]$sudomkdirstudent[sudo]passwordforuser01:[user01@CentOSusr]$lsbinetcfiles02.txtFILE.txtgamesincludeliblib64

libexeclocalsbinsharesrcstudenttmp命令“chmod”用于更改指定文件或目录拥有的权限,如将student目录更改为777权限,操作命令及结果如下。

[root@CentOSusr]#chmod777student/[root@CentOSusr]#lltotal116dr-xr-xr-x.2rootroot24576Feb612:33bindrwxr-xr-x.35rootroot4096Feb515:08includedr-xr-xr-x.29rootroot4096Feb2514:54libdrwxrwxrwx.2rootroot6Mar1314:40student命令“chown”用于更改指定文件或目录的用户拥有者,例如,将student目录拥有者和拥有组从root更改为指定的用户和用户组,操作命令及结果如下。[root@CentOSusr]#chown-Ruser01:user01student/[root@CentOSusr]#lltotal116dr-xr-xr-x.2rootroot24576Feb612:33bindrwxr-xr-x.35rootroot4096Feb515:08includedr-xr-xr-x.29rootroot4096Feb2514:54libdrwxrwxrwx.2user01user016Mar1314:40student③常用下载与压缩命令有“tar”“yuminstall”等。命令“tar”用于解压tar.gz类型的压缩文件,操作命令及结果如下。[root@CentOSopt]#tar-zxvf

jdk-8u341-linux-x64.tar.gz-C/usr/lib[root@CentOSlib]#lsdebuggrubmodprobe.dpython2.7systemddracutjdk1.8.0_341modulesrpmtmpfiles.d命令“yuminstall”能够从指定的服务器自动下载相应软件包,执行命令完成会看到“Complete”字样的提示信息,此处以安装“vim”为例,操作命令如下:[root@CentOS~]#yuminstall-yvim可以为系统更换国内yum源,首先通过yum安装软件wget,操作命令如下。[root@CentOS~]#yuminstall-ywget然后切换目录到“/etc/yum.repo.d/”目录下,并通过mv对本地默认yum源“CentOS-Base.repo”进行备份,操作命令如下。[root@CentOSyum.repos.d]#mvCentOS-Base.repoCentOS-Base.repo.bak通过wget软件,执行“wget-O/etc/yum.repo.d/CentOS-Base.repohttps://mirrors.ali/repo/Centos-7.repo”命令更换yum源,此处以更换阿里云yum源为例,操作命令及结果如下。[root@CentOSyum.repos.d]#wget-O/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo--2023-03-1306:56:43--https://mirrors.aliyun.com/repo/Centos-7.repoResolvingmirrors.aliyun.com(mirrors.aliyun.com)...84,1,01,...Connectingtomirrors.aliyun.com(mirrors.aliyun.com)|84|:443...connected.HTTPrequestsent,awaitingresponse...200OKLength:2523(2.5K)[application/octet-stream]Savingto:'/etc/yum.repos.d/CentOS-Base.repo'100%[=======================>]2,523--.-K/sin0.01s2023-03-1306:56:43(220KB/s)-'/etc/yum.repos.d/CentOS-Base.repo'saved[2523/2523][root@CentOSyum.repos.d]#换源后,执行“yumcleanall”清除yum源缓存,并执行“yummakecache”生成缓存,等待提示MetadataCacheCreated,操作命令及部分结果如下。[root@CentOSyum.repos.d]#yumcleanallLoadedplugins:fastestmirror,ovlCleaningrepos:baseextrasupdatesCleaninguplistoffastestmirrors[root@CentOSyum.repos.d]#yummakecache

Loadedplugins:fastestmirror,ovlDeterminingfastestmirrors④静态ip设置和远程连接。通过“ipaddr”命令查看自动分配的ip,此处ip为58,如图所示。修改静态ip需要执行“vi/etc/sysconfig/network-scripts/ifcfg-ens33”命令,查看ifcfg-ens33文件,修改BOOTPROTO的值为static,ONBOOT的值为yes,并分别添加IP,子网掩码,网关,DNS1和DNS2,修改完成后,按“Esc”键返回命令模式,输入“:wq!”保存修改并退出,具体修改后“ifcfg-ens33”(注意此处的ifcfg-ens**操作时数字部分可能会略有不同)文件内容如下。BOOTPROTO="static"ONBOOT="yes"IPADDR=58NETMASK=GATEWAY=DNS1=DNS2=保存退出后,重启网络服务,操作命令及结果如下。[root@CentOS~]#servicenetworkrestartRestartingnetwork(viasystemctl):[OK]在windows上可以通过网络下载Xshell等远程登录工具,以便可以远程登录CentOS系统,启动远程软件并新建会话,通过设置会话的名称和要连接的主机IP,默认连接端口为22号端口,设置远程登录参数,如图所示。单击“确定”按钮后,在新打开的界面中填写要登录的用户名称和密码,再次单击“确定”按钮,即可实现远程登录系统,如图所示。02安装docker任务1.2

Docker安装及基础命令任务实施1.在CentOS系统中安装Docker(1)设置Docker存储库和相关配置执行“yum”命令安装相关软件包,分别是gcc,gcc-c++,yum-utils,操作命令如下。[root@CentOS~]#yuminstall-yyum-utils[root@CentOS~]#yuminstall-ygcc[root@CentOS~]#yuminstall-ygcc-c++随后,Docker的镜像仓库设置成国内的镜像仓库,便于后续从仓库拉取镜像,执行“yum-config-manager--add-repo/docker-ce/linux/centos/docker-ce.repo”,操作命令及结果如下。[root@CentOS~]#yum-config-manager--add-repohttps://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Loadedplugins:fastestmirroraddingrepofrom:https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repograbbingfilehttps://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoto/etc/yum.repos.d/docker-ce.reporeposavedto/etc/yum.repos.d/docker-ce.repo执行“yummakecachefast”更新yum索引,操作命令及结果如下。[root@CentOS~]#yummakecache

fastLoadedplugins:fastestmirrorLoadingmirrorspeedsfromcachedhostfile*base:mirrors.aliyun.com*extras:mirrors.aliyun.com*updates:mirrors.aliyun.combase|3.6kB00:00:00docker-ce-stable|3.5kB00:00:00extras|2.9kB00:00:00updates|2.9kB00:00:00随后通过“yuminstalldocker-cedocker-ce-clicontainerd.iodocker-compose-plugin”命令安装docker-ce,等待片刻,docker即可安装成功,操作命令及结果如下。[root@CentOS~]#yuminstalldocker-cedocker-ce-cli

containerd.iodocker-compose-pluginLoadedplugins:fastestmirrorLoadingmirrorspeedsfromcachedhostfile安装成功后,因为Docker的运行需要用到各种端口,为避免防火墙的存在对操作过程产生影响,所以在启动Docker前,需要先执行“systemctlstopfirewalld”命令用于关闭防火墙,然后执行“systemctlstatusfirewalld”命令用于查看防火墙的运行状态。如果查看到状态信息显示“inactive(dead)”字样,表示防火墙已经关闭,操作命令及结果如下。[root@CentOS~]#systemctlstopfirewalld[root@CentOS~]#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;enabled;vendorpreset:enabled)Active:inactive(dead)sinceMon2023-03-1323:37:59CST;17sagoDocs:man:firewalld(1)Process:714ExecStart=/usr/sbin/firewalld--nofork--nopid$FIREWALLD_ARGS(code=exited,status=0/SUCCESS)MainPID:714(code=exited,status=0/SUCCESS)执行“systemctldisablefirewalld”命令,用于禁止防火墙开机自启动,操作命令及结果如下。[root@CentOS~]#systemctldisablefirewalldRemovedsymlink/etc/systemd/system/multi-user.target.wants/firewalld.service.Removedsymlink/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.随后,可以通过命令“systemctlstartdocker”来启动Docker,启动后可以执行“systemctlstatusdocker”命令查看Docker的运行状态,查看状态信息可以看到“active(running)”字样,表示Docker正常启动,操作命令及结果如下。[root@CentOS~]#systemctlstartdocker[root@CentOS~]#systemctlstatusdocker●docker.service-DockerApplicationContainerEngineLoaded:loaded(/usr/lib/systemd/system/docker.service;enabled;vendorpreset:disabled)Active:active(running)sinceMon2023-03-1315:33:49CST;1h54minagoDocs:MainPID:1219(dockerd)(2)测试Docker首先,使用“dockerversion”查看Docker版本,操作命令及结果如下。查看Docker版本[root@CentOS~]#dockerversionClient:DockerEngine-CommunityVersion:23.0.0APIversion:1.42Goversion:go1.19.5Gitcommit:e92dd87Built:WedFeb117:49:022023OS/Arch:linux/amd64

containerd:Version:1.6.16

GitCommit:31aa4358a36870b21a992d3ad2bef29e1d693bec

runc:Version:1.1.4

GitCommit:v1.1.4-0-g5fd4c4ddocker-init:Version:0.19.0

GitCommit:de40ad0其次,执行“dockerrunhello-world”命令,运行Docker的样例测试,如果在运行结果中可以看到“HellofromDocker!”,即表示Docker安装成功,操作命令及结果如下。[root@CentOS~]#dockerrunhello-worldUnabletofindimage'hello-world:latest'locallylatest:Pullingfromlibrary/hello-world2db29710123e:PullcompleteDigest:sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60fStatus:Downloadednewerimageforhello-world:latest

HellofromDocker!(3)Docker的卸载执行“systemctlstopdocker”命令,停止正在运行的Docker服务,操作命令及结果如下。[root@CentOS~]#systemctlstopdockerWarning:Stoppingdocker.service,butitcanstillbeactivatedby:docker.socket随后,通过执行“

yumremovecontainerd.iodocker-*”命令,卸载Docker及相关软件,如图所示。最后,通过执行“rm-rf/var/lib/docker”命令,删除Docker残余文件,执行“rm-rf/var/lib/containerd”命令,删除本地已存在的容器文件夹。学习Docker基本命令前,可以将当前普通用户加入Docker组里,若不添加或者不用sudo则会报错权限不足,添加后普通用户使用Docker命令时,就不用每次都在命令前加上sudo了,操作命令及结果如下。2.Docker常用命令(1)Docker基础命令启动Docker的命令:systemctlstartdocker停止Docker的命令:systemctlstopdocker重启Docker的命令:systemctlrestartdocker查看Docker状态的命令::systemctlstatusdocker设置Docker开机自启动的命令:systemctlenabledocker查看Docker概要信息的命令:dockerinfo查看Docker总体帮助文档的命令:docker--help查看Docker命令帮助文档的命令:docker具体命令--help(2)Docker相关镜像操作的命令①列出本地主机上镜像的命令为:dockerimages[options],[options]为可选参数,常用参数有:“-a”,表示列出所有本地镜像;“-q”,表示只显示镜像ID(IMAGEID)相关操作命令的结果如下。[user01@CentOSroot]$dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEhello-worldlatestfeb5d9fea6a517monthsago13.3kB[user01@CentOSroot]$dockerimages-aREPOSITORYTAGIMAGEIDCREATEDSIZEhello-worldlatestfeb5d9fea6a517monthsago13.3kB[user01@CentOSroot]$dockerimages-qfeb5d9fea6a5[user01@CentOSroot]$dockerimages-qafeb5d9fea6a5对“dockerimages”命令执行结果的解释如表所示。表”dockerimages”命令执行结果的解释注意:TAG项用来代表同一个仓库源中镜像的不同版本

,可以使用REPOSITORY:TAG来指定镜像的版本,若不指定,默认拉取最新版本(lasted)②查找Docker镜像的命令为:dockersearch[options]镜像名称,其中[options]为可选项,常用的参数有“limitN”,表示列出N个镜像,默认为25个,“dockersearch”命令的执行结果如图所示。图docker镜像查找对“dockersearch”命令执行结果的解释如表所示。表

“dockersearch”命令执行结果的解释③Docker镜像下载的命令为:dockerpull镜像名称:TAG,操作命令及结果如下。[user01@CentOSroot]$dockerpullcentos:77:Pullingfromlibrary/centos2d473b07cdd5:PullcompleteDigest:sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4Status:Downloadednewerimageforcentos:7docker.io/library/centos:7如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为latest标签。④Docker镜像删除的命令如下:删除一个镜像时:Dockerrmi-f镜像名称/镜像ID;删除全部镜像时:Dockerrmi-f$(dockerimages-qa)。删除多个镜像时:Dockerrmi-f镜像名1:TAG1镜像名2:TAG2或Dockerrmi-f镜像ID1镜像ID2,多个镜像间使用空格分隔,如图所示。(3)新建Docker容器的命令①创建一个新的Docker容器但不启动的命令为:dockercreate[options]IMAGE[COMMAND][ARG...]。②创建一个Docker容器并运行它的命令为:dockerrun[options]IMAGE[COMMAND][ARG...]其中,options的常用参数如下:-d后台运行容器,并返回容器ID-i以交互模式运行容器,通常和-t同时使用-P随机端口映射,容器内部端口随机映射到主机端口-p指定端口映射,格式为主机端口:容器端口-t为容器重新分配一个伪输入终端,通常与-i同时使用--name名称为容器指定一个名称-h主机名称指定容器的hostname--network=网桥名让容器加入指定网桥操作命令及结果如下。(4)Docker启动和停止的命令

①启动Docker的命令为:dockerstart容器ID/容器名称

②停止Docker的螟蛉畏:dockerstop容器ID/容器名称Docker启动和停止命令及对应执行结果如下。[user01@CentOSroot]$dockerstarttesttest[user01@CentOSroot]$dockerstoptesttest(5)进入和退出Docker的命令

①进入Docker第一种方式的命令为:dockerexec-i-t容器ID/名称/bin/bash

②进入Docker第二种方式的命令为:dockerattach容器ID/名称

③退出方式:输入“exit”命令或者使用“ctrl+p+q”组合键exec用exit退出时,不停止容器,attach用exit退出时,停止容器。操作命令及结果如下。(6)查看和删除Docker的命令①查看运行中的容器的命令为:dockerps②查看所有容器的命令为:dockerps-a。命令“dockerps”和命令“dockerps-a”的执行结果如下。[user01@CentOSroot]$dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESf7faef83894ecentos:7"/bin/bash"3minutesagoUp58secondstest[user01@CentOSroot]$dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES00a37b5567c4centos:7"/bin/bash"2minutesagoCreatedtest02f7faef83894ecentos:7"/bin/bash"3minutesagoUpAboutaminutetest③删除未启动的容器的命令为:dockerrm容器ID/名称。

④强制删除容器的命令为:dockerrm-f容器ID/名称。该命令也可以用于删除启动中的容器。以上两种命令的执行结果如下。[user01@CentOSroot]$dockerrmtest02test02[user01@CentOSroot]$dockerrm-ftesttest03安装部署Hadoop环境任务1.3

Hadoop环境搭建任务实施1.单机模式的安装与配置(1)安装JDK在Xshell登录root用户,在CentOS上输入“systemtclstartdocker”启动docker,然后执行“systemctlstatusdocker”命令,检查Docker的状态,如图所示。确认docker启动后,需要执行命令“dockerpullcentos:7”拉取centos7镜像,操作命令及结果如下。Centos7镜像下载完成后,需要执行“dockerrun-dit-h主机名

–name容器名–privileged=truecentos:7init”命令,启动后进入docker容器,操作命令及结果如下。[root@CentOS~]#dockerrun-dit-hhadoop--namehadoop--privileged=truecentos:7initb8228a5e9603df7b16714854be992b0f88b2693a9d666fef26bfaabc08377586Hadoop是使用Java编写的,所以需要安装Java环境。将Centos中准备好的TAR包,通过“dockercp宿主机TAR包存储路径容器名称:容器存储路径”命令,将jdk拷贝到相应的容器中,操作命令及结果如下。进入目标Docker容器的存储目录中查看软件包,并执行“tar-zxvfjdk-8u341-linux-x64.tar.gz-C/usr/lib”命令,解压Java的TAR包,操作命令如下。[root@CentOS~]#dockerexec-ithadoopbash[root@hadoop/]#cd/opt[root@hadoopopt]#lshadoop-2.7.7.tar.gzjdk-8u341-linux-x64.tar.gz[root@hadoopopt]#tar-zxvfjdk-8u341-linux-x64.tar.gz-C/usr/lib解压之后,切换到解压目录,重命名jdk文件夹名称为jdk1.8.0,操作命令及结果如下。[root@hadoop/]#cd/usr/lib查看解压文件是否存在

[root@hadooplib]#lsbinfmt.dfirewalldgrubkernelmodules-load.dpython2.7sse2tunedcppfirmwarejdk1.8.0_341localeNetworkManagerrpmsysctl.dudevdebuggameskbd

modprobe.dos-releasesendmail

systemdyum-plugins

dracutgcckdumpmodulespolkit-1sendmail.postfixtmpfiles.d重命名

[root@hadooplib]#mvjdk1.8.0_341jdk1.8.0[root@hadooplib]#lsbinfmt.dfirewalldgrubkernelmodules-load.dpython2.7sse2tunedcppfirmwarejdk1.8.0localeNetworkManagerrpmsysctl.dudevdebuggameskbd

modprobe.dos-releasesendmail

systemdyum-plugins

dracutgcckdumpmodulespolkit-1sendmail.postfixtmpfiles.d执行“vi~/.bashrc”命令,编辑用户环境变量,在.bashrc文件最后添加配置如下:exportJAVA_HOME=/usr/lib/jdk1.8.0PATH=$PATH:$JAVA_HOME/bin执行“source~/.bashrc”命令,使新配置的环境变量立即生效,并执行“java-version”命令,验证java安装是否成功,操作命令及结果如下。[root@hadooplib]#source~/.bashrc[root@hadooplib]#java-versionjavaversion"1.8.0_341"Java(TM)SERuntimeEnvironment(build1.8.0_341-b10)JavaHotSpot(TM)64-BitServerVM(build25.341-b10,mixedmode)(2)安装Hadoop2.7.7首先,在Docker容器的存储目录中执行“tar-zxvfhadoop-2.7.7.tar.gz-C/usr/local”命令,对Hadoop进行解压,并切换目录为解压目录,重命名hadoop-2.7.7为hadoop,操作命令及结果如下。[root@hadoopopt]#tar-zxvfhadoop-2.7.7.tar.gz-C/usr/local[root@hadooplib]#cd/usr/local/[root@hadooplocal]#lsbinetcgameshadoop-2.7.7hbaseincludeliblib64

libexec

sbinsharesrc[root@hadooplocal]#mvhadoop-2.7.7hadoop[root@hadooplocal]#lsbinetcgameshadoophbaseincludeliblib64

libexec

sbinsharesrc其次,执行“vi~/.bashrc”命令,配置用户环境变量,在文件最后添加配置如下:exportHADOOP_HOME=/usr/local/hadoopPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin执行“source~/.bashrc”命令,使新配置的环境变量立即生效。(3)配置Hadoop执行“cd/usr/local/hadoop/etc/hadoop”命令,切换到hadoop目录中,执行“vimhadoop-env.sh”命令,操作命令如下。[root@hadooplocal]#cd/usr/local/hadoop/etc/hadoop/[root@hadoophadoop]#vihadoop-env.sh此时,vi编辑器处于“命令”模式,在英文输入状态下,按下并释放“i”键,切换vi编辑器为“插入”模式,找到“#exportJAVA_HOME=${JAVA_HOME},若有“#”,将注释符号“#”去掉,并设置好JDK路径,如图所示。配置SSH免密登录SSH为SecureShell的缩写,由IETF的网络小组所制定。SSH为建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效地防止远程管理过程中的信息泄露问题。先为Docker容器设置root密码,执行“passwd”命令,此处密码设置为123456,操作命令及结果如下。[root@hadoop~]#passwdChangingpasswordforuserroot.Newpassword:BADPASSWORD:Thepasswordisshorterthan8charactersRetypenewpassword:passwd:allauthenticationtokensupdatedsuccessfully.通过yum安装openssh,openssh-server,openssh-clients,which,net-tools软件包,操作命令如下。[root@hadoop/]#yuminstall-ywhichopenssh

openssh-serveropenssh-clientsnet-tools执行“systemctlstartsshd”命令,开启SSH,操作命令如下。[root@hadoophadoop]#systemctlstartsshd执行命令“cd~/.ssh”,切换当前路径为ssh目录,执行命令“ssh-keygen-trsa",生成密钥后,执行命令“catid_rsa.pub>>authorized_keys”,将公钥追加到authorized_keys中,实现SSH免密登录配置。操作命令如下。[root@hadoop.ssh]#ssh-keygen-trsa[root@hadoop.ssh]#catid_rsa.pub>>authorized_keys执行命令“sshlocalhost”,验证配置是否生效,操作命令及结果如下。[root@hadoop.ssh]#sshlocalhostLastlogin:MonMar1308:27:432023fromlocalhost[root@hadoop~]#(5)验证Hadoop单机模式是否安装成功执行“start-all.sh”启动hadoop服务,并通过“jps”命令查看当前进程,操作命令及结果如下。[root@hadoop~]#start-all.sh[root@hadoop~]#jps906ResourceManager1179NodeManager1291Jps在Hadoop单机模式下,进程中并没有NameNode、DataNode等守护进程。执行Hadoop自带的hadoop-mapreduce-examples-2.7.7.jar程序,验证单机模式配置是否生效。在HDFS中创建input目录,即执行命令“hadoopdfs-mkdirinput”,操作命令及结果如下。[root@hadoop~]#hadoopdfs-mkdirinputDEPRECATED:Useofthisscripttoexecutehdfscommandisdeprecated.Insteadusethehdfscommandforit.在本地目录中创建一个wordcount.txt文件,文件内容为“hellohadoop”“hellojava”“helloworld”,该文件内容可以自行设定,注意,单词间需要用“空格”隔开,具体操作如下。[root@hadoop~]#vi

wordcount.txt文本内容如下

hellohadoophellojavahelloworld将编辑好的wordcount.txt文件保存并退出,并将其上传到HDFS的input目录中,执行命令“hadoopdfs-copyFromLocal/usr/local/hadoop/wordcount.txtinput”,操作命令及结果如下。

[root@hadoop~]#hadoopdfs-copyFromLocal

/usr/local/hadoop/wordcount.txtinputDEPRECATED:Useofthisscripttoexecutehdfscommandisdeprecated.Insteadusethehdfscommandforit.这里以运行hadoop-mapreduce-examples-2.7.7.jar为例进行说明,执行命令“hadoopjar/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jarwordcountinputoutput”,使用Hadoop自带的例子hadoop-mapreduce-examples-2.7.7.jar,在input中以空格分割统计字词的个数,操作命令如下。[root@hadoop~]#hadoopjar/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jarwordcountinputoutput因为在root用户的主目录进行的操作,所以直接可以看到生成的output目录,output目录中产生了2个文件,通过“cat”命令查看文件内容,操作命令及结果如下。[root@hadoop~]#lsanaconda-ks.cfginputoutputwordcount.txt[root@hadoop~]#cdoutput/[root@hadoopoutput]#ls_SUCCESSpart-r-00000[root@hadoopoutput]#cat./part-r-00000hadoop1hello3java1world1程序执行成功,说明Hadoop单机模式安装与配置成功。2.伪分布式模式的安装与配置(1)创建有端口映射的docker容器在宿主机,执行“dockerrun-dit-hmaster--namemaster-p50070:50070--privileged=truecentos:7init”命令运行docker容器,操作命令如下。[root@CentOS~]#dockerrun-dit-hmaster--namemaster-p50070:50070--privileged=truecentos:7init(2)设置密码,安装JDK、Hadoop以及相关软件设置密码,通过yum安装openssh,openssh-clients,openssh-server,net-tools,which。随后,安装JDK、Hadoop并配置环境变量(步骤详见单机模式的安装与配置)。

验证master免密登录,具体操作及结果如下。[root@master.ssh]#sshmaster[root@master~]#exitlogoutConnectiontomasterclosed.(3)配置SSH免密登录在当前目录中执行命令“ssh-keygen–trsa”,生成密钥对,执行命令“ssh-copy-idmaster”。将公钥复制到master的authorized_keys文件中,具体操作及结果如下。[root@master/]#systemctlstartsshd[root@master/]#ssh-keygen-trsa[root@master/]#ssh-copy-idmaster切换到“~/.ssh”目录下,执行命令“ls”,查看生成的认证文件,具体操作及结果如下。[root@master/]#cd~/.ssh[root@master.ssh]#lsauthorized_keysid_rsaid_rsa.pubknown_hosts(3)Hadoop配置进入/usr/local/hadoop/etc/hadoop中,执行命令“vicore-site.xml”,并切换到编辑模式,配置core-site.xml文件,此处注意在“<value>/usr/local/hadoop/data/tmp</value>”配置项中的目录需要手动创建。配置结束后,按下“Esc”键,退出编辑模式,并输入“:wq”键后按下“Enter”键保存并退出,编辑“core-site.xml”内容如下。<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property><property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop/data/tmp</value></property></configuration>在/usr/local/Hadoop/etc/hadoop目录下,执行命令“vihdfs-site.xml”,并切换到编辑模式,配置hdfs-site.xml文件,此处注意在“<value>/usr/local/hadoop/data/tmp/name</value>”和“<value>/usr/local/hadoop/data/tmp/data</value>”配置项中的目录需要手动创建。配置结束后,按下“Esc”键,退出编辑模式,输入“:wq”键后按下“Enter”键保存并退出,编辑“hdfs-site.xml”内容如下。<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>/usr/local/hadoop/data/tmp/name</value></property><property><name>dfs.datanode.name.dir</name><value>/usr/local/hadoop/data/tmp/data</value></property></configuration>在/usr/local/Hadoop/etc/hadoop目录下,拷贝“mapred-site.xml.template”文件,创建新文件mapred-site.xml后,执行命令“vimapred-site.xml”,并切换到编辑模式,配置mapred-site.xml文件,配置结束后,输入“:wq”键后按下“Enter”键保存并退出。编辑“mapred-site.xml”内容如下。[root@masterhadoop]#cpmapred-site.xml.templatemapred-site.xml[root@masterhadoop]#vi

mapred-site.xmlMapred-site.xml内容如下<configuration><property><name>map</name><value>yarn</value></property></configuration>在/usr/local/Hadoop/etc/hadoop目录下,执行命令“viyarn-site.xml”,并切换到编辑模式,配置yarn-site.xml文件,配置结束后,按下“Esc”键,退出编辑模式,并输入“:wq”键后按下“Enter”键保存并退出,编辑“yarn-site.xml”内容如下。<configuration><!--SitespecificYARNconfigurationproperties--><property><name>yarn.nodemanager.aux_services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>localhost</value></property></configuration>(4)格式化HDFS切换到Hadoop的安装目录,执行命令“./bin/hdfsnamenode-format”,格式化节点,如果在返回的信息中看到“Exitingwithstatus0”,则表示执行格式化成功。操作命令及结果如下。[root@masterhadoop]#./bin/hdfs

namenode-format23/03/1312:03:18INFOutil.ExitUtil:Exitingwithstatus023/03/1312:03:18INFOnamenode.NameNode:SHUTDOWN_MSG:/************************************************************SHUTDOWN_MSG:ShuttingdownNameNodeatmaster/************************************************************/(5)验证测试在任意目录中,执行命令“start-all.sh”,启动hadoop集群,操作命令如下。[root@masterhadoop]#start-all.sh执行“jps”命令查看进程,操作命令及结果如下。[root@masterhadoop]#jps257NameNode921NodeManager381DataNode1086Jps543SecondaryNameNode703ResourceManager与单机模式比对,在伪分布式模式进程中有“NameNode”、“DataNode”等守护进程。测试HDFS和YARN,在Windows浏览器地址栏中输入“http://docker宿主机IP:50070”,进入HDFS信息界面,如图所示。如果该页面可以成功运行,说明Hadoop伪分布式模式的安装与配置成功。3.集群模式的安装与配置在Hadoop集群模式的安装与配置中,Hadoop集群架构如图所示。如果之前已经运行过伪分布式模式,则建议在切换到集群模式之前,先删除之前的伪分布模式下生成的临时文件。(1)创建网桥

为了后续hadoop集群规划在同一个网段里,需要执行“dockernetworkcreate--subnet/24--gateway=网桥名称”来建立自定义网桥,操作命令及结果如下。[root@CentOS~]#dockernetworkcreate--subnet=/24--gateway=hadoop1d4d5fde4ad0d08ab50afa1fdf4eb10302541d66a04562c7036c48c2cf2b6b56(2)创建并运行容器①需要创建三个容器,实现一主二从的集群配置,执行“dockerrun-dit-hmaster1--namemaster1--network=网桥名称-p50070:50070-p8088:8088--privileged=truecentos:7init”。创建master1后,退出容器并执行“dockerrun-dit-hslaveX--nameslaveX--network=网桥名--privileged=truecentos:7init”以创建slave容器。操作命令及结果如下。创建master1[root@CentOS~]#dockerrun-dit-hmaster--namemaster--network=hadoop--ip=--privileged=true-p50070:50070-p8088:8088centos:7init创建slave1[root@CentOS~]#dockerrun-dit-hslave1--nameslave1--network=hadoop--ip=--privileged=true-p8089:8088centos:7init创建slave2[root@CentOS~]#dockerrun-dit-hslave2--nameslave2--network=hadoop--ip=--privileged=true-p8090:8088centos:7init②三台容器都建立后,查看是否已加入网桥,执行“dockernetworkinspect网桥名称”命令查看结果,如图所示。(3)基础配置

①传输所需安装包,需要在docker宿主机执行“dockercp/opt/XXX.tar.gz容器名称:目标存储路径”,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论