版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验2Hadoop开发环境部署Hadoop是一个能够对大数据进行分布式处理的软件架构,其可以通过可靠、高效、可伸缩的方式进行数据处理。Hadoop技术是推动大数据应用的重要引擎之一,可以使用该技术收集、清洗和分析大量结构化、半结构化和非结构化数据。运行环境部署是一项技术要求较高,但必须掌握的技术。Hadoop是大数据分布式处理平台,在大数据离线处理方面,尤其是批处理中得到了广泛的应用。1.实验目的通过Hadoop环境部署实验练习,学生可以掌握Hadoop系统安装方法、伪分布式Hadoop的安装方法和Eclipse开发环境的安装具体过程与使用方法,并能够灵活运用,进而为解决大数据分析问题奠定环境构建与部署的基础,不仅为后续的基于Hadoop环境的各个实验建立基础,而且可以提高工程实践能力。2.实验要求在理解本实验相关理论的基础上制订安装计划,独立完成Hadoop开发环境部署过程,主要内容如下所述。(1)制订安装计划。(2)安装SSH协议。(3)安装OpenJDK1.8开发环境。(4)Hadoop系统部署。(5)伪分布式Hadoop环境部署。(6)Eclipse开发环境的安装。3.实验内容(1)制订实验计划。(2)完成SSH协议安装。(3)完成OpenJDK1.8安装。(4)完成Hadoop系统部署。(5)完成伪分布式Hadoop环境部署。(6)完成Eclipse开发环境的安装。4.实验总结通过本实验,使学生了解Hadoop的特点和总体结构,理解MapReduce程序的执行过程,掌握伪分布式Hadoop的安装方法和Eclipse开发环境的安装与使用方法。5.思考拓展(1)为什么需要安装SSH协议?说明SSH协议功能及安装方法。(2)为什么需要安装OpenJDK1.8软件?说明OpenJDK1.8功能及安装方法。(3)结合MapReduce程序执行过程,说明其并行处理的特性。(4)结合Hadoop的处理过程,说明其离线处理特点。(5)说明分布式Hadoop处理与伪分布式Hadoop处理的区别。(6)说明Eclipse开发环境的优势。答:Hadoop开发环境部署方法如下Hadoop伪分布式配置创建Hadoop用户:sudouseradd-mhadoop-s/bin/bash#创建hadoop用户sudopasswdhadoop#修改密码sudoadduserhadoopsudo#增加管理员权限Shell命令\o"复制代码"\o"查看纯文本代码"注销并使用Hadoop用户登录,接着更新apt并且安装vim:sudoapt-getupdate#更新aptsudoapt-getinstallvim#安装vimShell命令\o"复制代码"\o"查看纯文本代码"安装SSH,配置无密码登录:sudoapt-getinstallopenssh-servercd~mkdir.ssh#可能该文件已存在,不影响cd~/.ssh/ssh-keygen-trsa#会有提示,都按回车就可以catid_rsa.pub>>authorized_keys#加入授权Shell命令\o"复制代码"\o"查看纯文本代码"安装Java环境:sudoapt-getinstallopenjdk-7-jreopenjdk-7-jdkvim~/.bashrc#设置JAVA_HOMEShell命令\o"复制代码"\o"查看纯文本代码"在文件最前面添加如下单独一行:exportJAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64使JAVA_HOME变量生效:source~/.bashrc#使变量设置生效Shell命令\o"复制代码"\o"查看纯文本代码"安装Hadoop2:cd~/下载sudotar-zxvf./hadoop-2.6.0.tar.gz-C/usr/local#解压到/usr/local中cd/usr/local/sudomv./hadoop-2.6.0/./hadoop#将文件夹名改为hadoopsudochown-Rhadoop./hadoop#修改文件权限Shell命令\o"复制代码"\o"查看纯文本代码"进行伪分布式配置:修改配置文件
core-site.xml
(vim/usr/local/hadoop/etc/hadoop/core-site.xml):<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abaseforothertemporarydirectories.</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>.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></configuration>启动Hadoop:cd/usr/local/hadoopbin/hdfsnamenode-format#namenode格式化sbin/start-dfs.sh#开启守护进程jps#判断是否启动成功Shell命令\o"复制代码"\o"查看纯文本代码"若成功启动则会列出如下进程:
NameNode、DataNode和SecondaryNameNode。运行WordCount实例:bin/hdfsdfs-mkdir-p/user/hadoop#创建HDFS目录bin/hdfsdfs-mkdirinputbin/hdfsdfs-putetc/hadoop/*.xmlinput#将配置文件作为输入bin/hadoopjarshare/hadoop/mapreduce/hadoop-mapreduce-examples-*.jargrepinputoutput'dfs[a-z.]+'bin/hdfsdfs-catoutput/*#查看输出Shell命令
1.3安装SSH
Ubuntu默认已安装了SSH客户端,因此,这里还需要安装SSH服务端1.3.1安装SSH服务端
请在Linux的终端中执行以下命令:
下载安装包:拷贝代码sudowget/fileserver/big_data_common/data/openssh-client_7.2p2-4_amd64.debsudowget/fileserver/big_data_common/data/openssh-server_7.2p2-4_amd64.deb
安装软件:
拷贝代码sudodpkg-iopenssh-client_7.2p2-4_amd64.deb
拷贝代码sudodpkg-iopenssh-server_7.2p2-4_amd64.deb
或者也可用下面方法:
∥安装Java环境
Java环境可选择Oracle的JDK,或是OpenJDK,需要安装1.7以上的版本,这里直接通过命令安装OpenJDK8:
拷贝代码cd/home/user/Downloadssudotar-vxfjdk-8u11-linux-x64.tar.gz安装好JDK后,需要找到相应的安装路径,这个路径是用于配置JAVA_HOME环境变量的。
拷贝代码vim~/.bashrc在文件最前面添加如下单独一行(注意=号前后不能有空格):拷贝代码exportJAVA_HOME=/home/user/Downloads/jdk1.8.0_11接着还需要让该环境变量生效,执行如下代码:
拷贝代码source~/.bashrc设置好后需要检验一下是否设置正确:检验变量值拷贝代码echo$JAVA_HOME
拷贝代码java-version#与直接执行java-version一样拷贝代码$JAVA_HOME/bin/java-version
如果设置正确的话,java-version会输出java的版本信息。
2安装Hadoop
Hadoop包括三种安装模式:
①单机模式:只在一台机器上运行,存储是采用本地文件系统,没有采用分布式文件系统HDFS;
②伪分布式模式:存储采用分布式文件系统HDFS,但是,HDFS的名称节点和数据节点都在同一台机器上;
③分布式模式:存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。
本节介绍Hadoop的具体安装方法,包括下载安装文件、单机模式配置、伪分布式模式配置、分布式模式配置等。
2.1下载安装文件
2.1.1下载文件打开浏览器,访问如下链接进行下载:
拷贝代码/fileserver/big_data_common/data/hadoop-2.7.1.tar.gz文件将会下载到/home/user/Downloads目录下
2.1.2安装文件
下载完安装文件以后,需要对文件进行解压。按照Linux系统使用的默认规范,用户安装的软件一般都是存放在“/usr/local/”目录下。请使用hadoop用户登录Linux系统,打开一个终端,进行以下操作:解压
解压到/usr/local中拷贝代码sudotar-zxf/home/user/Downloads/hadoop-2.7.1.tar.gz-C/u
将文件夹名改为hadoop
拷贝代码cd/usr/localsudomv./hadoop-2.7.1/./hadoop修改文件权限
拷贝代码sudochown-Rhadoop./hadoop
检查Hadoop是否可用
Hadoop解压后即可使用,可以输入如下命令来检查Hadoop是否可用,成功则会显示Hadoop版本信息:拷贝代码cd/usr/local/hadoop./bin/hadoopversion
2.2单机模式配置
Hadoop默认模式为非分布式模式(本地模式),只需配置好hadoop-env.sh文件中的JAVA_HOME,无需进行其他配置即可运行。
配置hadoop-env.sh文件中的JAVA_HOME步骤如下:
先输入echo$JAVA_HOME命令查看JAVA_HOME的路径拷贝代码vi/usr/local/hadoop/etc/hadoop/hadoop-env.sh
进入编辑界面后找到exoortJAVA_HOME=${JAVA_HOME}
将${JAVA_HOME}替换为真正的JAVA_HOME路径即可,然后保存退出。
以下是真实的JAVA_HOME:拷贝代码/usr/share/jdk1.8.0_181
可以直接替换,直接把前一行注释掉,然后粘贴后一行
:wq!保存并且退出2.2.1查看所有例子
Hadoop附带了丰富的例子,运行如下命令可以查看所有例子:
拷贝代码cd/usr/local/hadoopsudo./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar
上述命令执行后,会显示所有例子的简介信息,包括grep、join、wordcount等。
2.2.2运行grep例子
这里选择运行grep例子,可以先在“/usr/local/hadoop”目录下创建一个文件夹input,并复制一些文件到该文件夹下,然后,运行grep程序,将input文件夹中的所有文件作为grep的输入,让grep程序从所有文件中筛选出符合正则表达式“dfs[a-z.]+”的单词,并统计单词出现的次数,最后,把统计结果输出到“/usr/local/hadoop/output”文件夹中。配置hosts
实验第一步我们已经配置过hosts了。将配置文件复制到input目录下
拷贝代码cd/usr/local/hadoopmkdirinputcp./etc/hadoop/*.xml./input
运行
拷贝代码./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapreduc
查看运行结果
拷贝代码cat./output/*
执行成功后,输出了作业的相关信息,输出的结果是符合正则表达式的单词“dfsadmin”出现了1次。
删除output文件
需要注意的是,Hadoop默认不会覆盖结果文件,因此,再次运行上面实例会提示出错。如果要再次运行,需要先使用如下命令把output文件夹删除:拷贝代码rm-r./output
3伪分布式模式配置
Hadoop可以在单个节点(一台机器)上以伪分布式的方式运行,同一个节点既作为名称节点(NameNode),也作为数据节点(DataNode),读取的是分布式文件系统HDFS中的文件。3.1修改配置文件
需要配置相关文件,才能够让Hadoop在伪分布式模式下顺利运行。Hadoop的配置文件位于“/usr/local/hadoop/etc/hadoop/”中,进行伪分布式模式配置时,需要修改2个配置文件,即core-site.xml和hdfs-site.xml。3.1.1修改core-site.xml文件
可以使用vim编辑器打开core-site.xml文件,它的初始内容如下:
修改以后,core-site.xml文件的内容如下:
拷贝代码<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abaseforothertemporarydirectories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>在上面的配置文件中,hadoop.tmp.dir用于保存临时文件,若没有配置hadoop.tmp.dir这个参数,则默认使用的临时目录为“/tmp/hadoo-hadoop”,而这个目录在Hadoop重启时有可能被系统清理掉,导致一些意想不到的问题,因此,必须配置这个参数。fs.defaultFS这个参数,用于指定HDFS的访问地址,其中,9000是端口号。3.1.2修改hdfs-site.xml文件
修改配置文件hdfs-site.xml,修改后的内容如下:
删除原来两个configuration,然后直接粘贴下面的代码。拷贝代码<configuration><property><name>dfs.replication</name><value>1</value></property><property><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></configuration>3.2执行名称节点格式化
修改配置文件以后,要执行名称节点的格式化,命令如下:
拷贝代码cd/usr/local/hadoop./bin/hdfsnamenode-format
如果格式化成功,会看到“successfullyformatted”和“Exittingwithstatus0”的提示信息,若为“Exittingwithstatus1”,则表示出现错误。
配置hadoop-env.sh,vimhadoop-env.sh
找到文件中的“exportJAVA_HOME=${JAVA_HOME}”,
将等号右边的内容替换为我们刚刚安装的真实的JAVA_HOME,即/home/user/Downloads/jdk1.8.0_11配置hosts,输入以下命令即可配置hosts
echo""$HOSTNAME|sudotee-a/etc/hosts配置完成后,需要执行NameNode的格式化(这一步比较重要,在格式化之前一定要保证,自己前面的都配置好了,如果格式化之后,启动hadoop还没成功,就需要重新配置JAVA环境或者是hadoop重新安装),命令如下:
cd/usr/local/hadoop
./bin/hdfsnamenode-format接着开启NameNode和DataNode守护进程,命令如下:
拷贝代码
cd/usr/local/hadoop
./sbin/start-dfs.sh拷贝代码
cd/usr/local/hadoop
./bin/hdfsnamenode-format3.3启动Hadoop
3.3.1启动
执行下面命令启动Hadoop:
拷贝代码cd/usr/local/hadoop./sbin/start-dfs.shstart-dfs.sh
是个完整的可执行文件,中间没有空格,启动过程中有需要输入“yes”的地方需要输入“yes”。
启动时可能会出现如下警告信息:WARNutil.NativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform…usingbuiltin-javaclasseswhereapplicableWARN
这个警告提示信息可以忽略,并不会影响Hadoop正常使用
3.3.2判断是否成功启动
Hadoop启动完成后,可以通过命令jps来判断是否成功启动,命令如下:
拷贝代码jps
若成功启动,则会列出如下进程:NameNode、DataNode和SecondaryNameNode。
通过start-dfs.sh命令启动Hadoop以后,就可以运行MapReduce程序处理数据,此时是对HDFS进行数据读写,而不是对本地文件进行读写。
如果能够看到SecondaryNameNode、NameNode和DataNode三个进程,就说明启动成功了。如果要停止Hadoop执行,可以执行如下命令:
/usr/local/hadoop
./sbin/stop-dfs.sh
3.4使用Web界面查看HDFS信息
Hadoop成功启动后,可以在Linux系统中(不是Windows系统)打开一个浏览器,在地址栏输入如下地址,就可以查看名称节点和数据节点信息,还可以在线查看HDFS中的文件。
拷贝代码http://localhost:500703.5运行Hadoop伪分布式实例
上面的单机模式中,grep例子读取的是本地数据,伪分布式模式下,读取的则是分布式文件系统HDFS上的数据。3.5.1HDFS中创建用户目录
要使用HDFS,首先需要在HDFS中创建用户目录(本教程全部统一采用hadoop用户名登录Linux系统),命令如下:
拷贝代码cd/usr/local/hadoop./bin/hdfsdfs-mkdir-p/user/hadoop3.5.2复制文件
接着需要把本地文件系统的“/usr/local/hadoop/etc/hadoop”目录中的所有xml文件作为输入文件,复制到分布式文件系统HDFS中的“/user/hadoop/input”目录中,命令如下:
拷贝代码cd/usr/local/hadoop./bin/hdfsdfs-mkdirinput在HDFS中创建hadoop用户对应的input目录
拷贝代码./bin/hdfsdfs-put./etc/hadoop/*.xmlinput
把本地文件复制到HDFS中3.5.3查看HDFS中的文件列表
复制完成后,可以通过如下命令查看HDFS中的文件列表:
拷贝代码./bin/hdfsdfs-lsinput
执行上述命令以后,可以看到input目录下的文件信息。3.5.4运行grep程序
现在就可以运行Hadoop自带的grep程序,命令如下:
拷贝代码./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 糖尿病足伤口的治疗
- 2024年标准玻璃制品买卖协议范本一
- 劳动合同关于周末休息的条款
- 劳动合同不合格补充证明
- 昆法典合同法第六十条
- 防护用品合同范本
- 法院特别委托书授权模板
- 2025年遂宁普通货运从业资格证考试
- 【大学课件】现代管理心理与领导公关论
- 2025年玉溪货运上岗证模拟考试试题
- 《护理伦理与法律法规》期末考试复习题库(含答案)
- 劳务支付合同范本
- 学困生转化讲座PP课件
- TD/T 1044-2014 生产项目土地复垦验收规程(正式版)
- 起重(信号、司索工)安全技术交底记录
- 汽车维修厂服务方案(2篇)
- 食用菌栽培学智慧树知到期末考试答案章节答案2024年山东农业工程学院
- 第22章二次函数二次函数与不等式的关系课件人教版数学九年级上册
- 写作进阶之道智慧树知到期末考试答案章节答案2024年内蒙古大学
- 新中国史智慧树知到期末考试答案章节答案2024年大连海事大学
- 电大财务大数据分析编程作业3
评论
0/150
提交评论