已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一Hadoop工作模式:关于Hadoop平台的搭建分为三种模式:1单机模式 :默认情况下,Hadoop被配置成以非分布式模式运行的一个独立Java进程。这对调试非常有帮助2.伪分布式模式 :Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行。3.完全分布式模式 :有实际意义的Hadoop集群,其规模可从几个节点的小集群到几千个节点的超大集群二实验环境操作系统:RedHat Enterprise Linux 5.6clovem001 01clovem002 02clovem003 03三所需软件:Hadoop版本:hadoop-0.20(/apache-mirror/hadoop/common/stable/SSH:必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程 (系统一般默认安装)rsync:用于系统进行远程同步,系统默认安装。JDK版本:JDK1.6 (/technetwork/java/javase/downloads/index.html )四实验前期准备【1】安装配置JDK1.安装JDK此处以clovem001为例rootclovem001 #yum remove java -y /卸载系统JDKrootclovem001 apache_tomcat# chmod a+x jdk-6u23-linux-i586.bin /给予可执行权限rootclovem001 apache_tomcat# ./jdk-6u23-linux-i586.bin/执行二进制文件的安装.直至出现以下信息表示OK。Press Enter to continue.Done.此时会在当前目录生成jdk1.6.0_23目录rootclovem001 apache_tomcat# cp -r jdk1.6.0_23/ /usr/local/jdk1.6 /拷贝至/usr/local 下并改名rootclovem001 # cd /usr/local/jdk1.6 /查看安装目录信息rootclovem001 jdk1.6# pwd/usr/local/jdk1.62.配置JAVA环境变量:rootclovem001 jdk1.6# vi /etc/profile 在文件最后添加以下内容:JAVA_HOME=/usr/local/jdk1.6PATH=$PATH:$JAVA_HOME/binCLASSPATH=.$JAVA_HOME/lib/dt.jar:$JAVA_HOME:/lib/tools.jar:$JAVA_HOME/libJRE_HOME=$JAVA_HOME/jreexport JAVA_HOME PATH CLASSPATH JRE_HOME /注意,这一行需要写上,或者在终端中执行导出JAVA_HOME的命令,否则,在实验的时候会提示JAVA_HOME 没有设置执行如下命令使环境变量生效:rootclovem001 jdk1.6#source /etc/profile测试配置是否成功:rootrhel01 jdk1.6#java versionjava version 1.6.0_23Java(TM) SE Runtime Environment (build 1.6.0_23-b05)Java HotSpot(TM) Client VM (build 19.0-b09, mixed mode, sharing)【2】配置SSH登录等效性(实现无密钥登录)rootclovem001 # ssh-keygen -t dsa /一路回车,不输入任何字符rootclovem001 # ssh-keygen -t rsa /一路回车,不输入任何字符rootclovem001 # cd .ssh/rootclovem001 .ssh# cat id_dsa.pub authorized_keysrootclovem001 .ssh# cat id_rsa.pub authorized_keys /生成混合密钥串至此,通过命令ssh 01 可以实现无密钥登录五实验步骤:【1】实现单机模式下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output目录。 rootclovem001# tar zxvf hadoop-rc1.tar.gzrootclovem001# cd hadoop-rootclovem001 hadoop-#mdkir input rootclovem001 hadoop-# cp conf/*.xml input/rootclovem001 hadoop-# bin/hadoop jar hadoop-examples-.jar grep input output dfsa-z.+ 说明:bin/hadoop jar(使用hadoop运行jar包) hadoop-*_examples.jar(jar包的名字) grep (要使用的类,后边的是参数)input output dfsa-z.+整个就是运行hadoop示例程序中的grep,对应的hdfs上的输入目录为input、输出目录为output。rootclovem001 hadoop-# cat output/*1 dfsadmin再看个例子,wordcount的,大家比较熟悉rootclovem001 hadoop-# mkdir inputcountrootclovem001 hadoop-# echo today is a nice day,and you are so beautifulinputcount/word1rootclovem001 hadoop-# echo today is so bad ,and you are not beautifulinputcount/word2rootclovem001 hadoop-# cat inputcount/*today is a nice day,and you are so beautifultoday is so bad ,and you are not beautifulrootclovem001 hadoop-# bin/hadoop jar hadoop-examples-.jar wordconut inputcount/ outcount/ 注意:实验的时候outcount这个目录不要实现创建,否则在执行上述命令的时候会报错org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory outcount already exists提示输出的目录已经存在,删除之,直接执行该命令即可。然后执行以下命令rootclovem001 hadoop-# cat outcount/*,and 1a 1are 2bad 1beautiful 2day,and 1is 2nice 1not 1so 2today 2you 2=【2】实现伪分布式模式Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行。(1).修改配置文件core-site.xml hdfs-site.xml mapred-site.xmlrootclovem001 hadoop-# vi conf/core-site.xml 01:9000 rootclovem001 hadoop-# vi conf/ mapred-site.xml dfs.replication 1 rootclovem001 hadoop-# vi conf/ mapred-site.xml mapred.job.tracker 01:9001 修改localhost为当前IP,如果在/etc/hosts中做过了相关本地解析,也可以使用对应值,或者主机名。注意:dfs.replication1注意dfs的副本数在此需要设为1,因为文件系统设计的默认值为3,当前为伪分布式模式,节点数只有1(2).格式化一个新的分布式文件系统:rootclovem001 hadoop-# bin/hadoop namenode -format 图1 格式化新的文件系统(3).启动Hadoop守护进程:rootclovem001 hadoop-# bin/start-all.sh 图2 启动Hadoop守护进程出错大家会发现提示信息说localhost没有相应的解析记录rootclovem001 hadoop-# echo “ localhost” /etc/hosts /添加localhost记录再次执行rootclovem001 hadoop-# bin/start-all.sh很奇怪的出现了这个提示 图3 提示JAVA_HOME没有设置但是前面的操作确实已经设置过了啊;rootclovem001 hadoop-# echo “$JAVA_HOME”/usr/local/jdk1.6明明正常显示的,唯一的原因就是在Hdoop系统中并没有设置这个环境变量了。rootclovem001 hadoop-# vi conf/hadoop-env.sh查找“JAVA_HOME”找到下面一行# export JAVA_HOME=/usr/lib/j2sdk1.5-sun复制,粘贴,修改为如下内容export JAVA_HOME=/usr/local/jdk1.6保存,退出再次执行rootclovem001 hadoop-# bin/start-all.sh 图4 提示辅助namnode正在运行停止进程15931rootclovem001 hadoop-# skill -9 15931 /杀掉15931的进程rootclovem001 hadoop-# bin/start-all.sh 图5 其他没有问题了,就是有个-jvm提示不能被创建解决:可以修改的地方有两个第一个(次要的):/usr/local/hadoop/conf/hadoop-env.sh修改参数: export HADOOP_HEAPSIZE=256 #默认值为1000M,为Java虚拟机占用的内存的大小第二个(主要的):查看/usr/local/hadoop/bin/hadoop 源码:# if $EUID -eq 0 ; thenHADOOP_OPTS=$HADOOP_OPTS -jvm server $HADOOP_DATANODE_OPTSelseHADOOP_OPTS=$HADOOP_OPTS -server $HADOOP_DATANODE_OPTSfi#上述程序说明如果以root(UID=0)身份启动,则hadoop启动java虚拟机时,会带上-jvm参数。不同的java版本,启动参数可能会不一致,由此导致以上问题。所以,做好的方法是创建一个新用户hadoop专属Hadoop 文件系统的。rootclovem001 # useradd hadooprootclovem001 # passwd hadoop /为了实验方便,本实验所有密码都设为hadoop rootclovem001 # cp -rv hadoop-/ /home/hadoop/rootclovem001 # chown -R hadoop:hadoop /home/hadoop/hadoop-/rootclovem001 # su hadoop在新用户上再次执行ssh密钥生成操作。跟上述操作相同。重新初始化操作:hadoopclovem001 hadoop-$ bin/hadoop namenode -formathadoopclovem001 hadoop-$ bin/start-all.sh 图6 守护进程启动成功Hadoop守护进程的日志写入到 $HADOOP_LOG_DIR 目录 (默认是 $HADOOP_HOME/logs).浏览NameNode和JobTracker的网络接口,它们的地址默认为:? NameNode 01:50070/ 图7 NameNode状态图? JobTracker 01:50030/ 将输入文件拷贝到分布式文件系统:rootclovem001 $ bin/hadoop fs -put conf input 运行发行版提供的示例程序:rootclovem001 $ bin/hadoop jar hadoop-*-examples.jar grep input output dfsa-z.+ 查看输出文件:将输出文件从分布式文件系统拷贝到本地文件系统查看:rootclovem001 $ bin/hadoop fs -get output output rootclovem001 $ cat output/* 或者 在分布式文件系统上查看输出文件:rootclovem001 $ bin/hadoop fs -cat output/* 完成全部操作后,停止守护进程:rootclovem001 $ bin/stop-all.sh =接下来进入具体实际意义的Hadoop集群搭建环节了。我们重新开始配置。【3】.完全分布式模式1.实验环境操作系统:RedHat Enterprise Linux 5.6clovem001 01 NameNode JobTracker materclovem002 02 DataNode TaskTracker slaveclovem003 03 DataNode TaskTracker slaveclovem004 04 DataNode TaskTracker slave2.配置本地解析记录rootclovem001 # vi /etc/hosts 图8 配置解析记录rootclovem001 # scp /etc/hosts clovem002:/etc/ /将配置同步到其他节点rootclovem001 # scp /etc/hosts clovem003:/etc/ 3.创建新用户rootclovem001 # for i in 1 2 3 ; do ssh clovem00$i “useradd hadoop & passwd hadoop “;done先输入登录密码,然后输入 新用户的密码,是明文显示的,避免出错。3.配置NameNode无密钥登入其他节点rootclovem001 # ssh-keygen -t dsa ;ssh-keygen -t rsarootclovem001 # cd .ssh/ ;cat id_dsa.pub authorized_keys ;cat id_rsa.pub authorized_keys由于其他节点上没有执行相关操作,没有.ssh目录,通过远程登录方式进行创建。rootclovem001 #for i in 2 3 ; do ssh clovem00$i mkdir /home/hadoop/.ssh ;donerootclovem001 # scp .ssh/authorized_keys clovem002:/home/hadoop/.sshrootclovem001 # scp .ssh/authorized_keys clovem003:/home/hadoop/.ssh4.配置各节点的Hadoop在clovem001上解压软件包1)首先在节点上面安装配置JDK(每个节点上都需要)两个配置文件rootclovem004 # vi /etc/profileJAVA_HOME=/usr/local/jdk1.6PATH=$PATH:$JAVA_HOME/binCLASSPATH=.$JAVA_HOME/lib/dt.jar:$JAVA_HOME:/lib/tools.jar:$JAVA_HOME/libJRE_HOME=$JAVA_HOME/jrerootclovem001 conf# vi hadoop-env.shexport JAVA_HOME=/usr/local/jdk1.6HADOOP_HOME=/home/hadoop/hadoop-0.20PATH=$HADOOP_HOME/bin:$PATHexport HADOOP_HOME PATH保证每个节点的JAVA_HOME设置是一致的2)配置core-site.xml hdfs-site.xml mapred-site.xml(每个节点都需要配置)rootclovem001 hadoop-# vi conf/core-site.xml 01:9000 rootclovem001 hadoop-# vi conf/ mapred-site.xml dfs.replication 3 /由于实验使用了三台datanode,可以设为3 rootclovem001 hadoop-# vi conf/ mapred-site.xml mapred.job.tracker 01:9001 3)分发配置文件至此四个节点都需要做的一些操作基本完成,将配置文件分发至其他节点rootclovem001 # for i in 2 3 4 ;do scp /etc/profile clovem00$i:/etc/;done 。/分发jdk配置文件rootclovem001 # for i in 1 2 3 4 ;do source /etc/profile ;java -version ;done都显示这个信息,即可java version 1.6.0_23Java(TM) SE Runtime Environment (build 1.6.0_23-b05)Java HotSpot(TM) Client VM (build 19.0-b09, mixed mode)rootclovem001 # for i in 2 3 4 ;do scp -rv /home/hadoop/hadoop-0.20/ hadoopclovem00$i:/home/hadoop/;done将修改好配置文件的整个Hadoop 同步至其他节点。4)配置conf/masters 和conf/slaves 文件:(只在namenode 上配置)hadoopclovem001 hadoop-0.20$ echo 01 conf/mastershadoopclovem001 hadoop-0.20$ cat conf/slaves 02 03 04 EOF5.启动Hadoop(namenode上面执行)hadoopclovem001 hadoop-0.20$ bin/hadoop namenode -format /格式化文件系统hadoopclovem001 hadoop-0.20$bin/start-all.sh /启动hadoop在这里可能会碰到以下几个问题:1连接的时候需要数据密码,因为之前我们配置的是 NameNode的root用户实现无密钥登录DataNode节点的hadoop用户主目录,现在我们需要进入NameNodehadoop用户生成密钥串,传到DataNode节点hadoop用户主目录下面的.ssh文件中,注意,追加到之前配置后面,不是覆盖。2上一步完成之后就可以在NameNode节点下面继续使用hadoop用户执行启动hadoop的操作了,但是由于之前的操作会在各个节点产生进程,直接到每个节点终端pkill java就行了。hadoopclovem001 hadoop-0.20$ jps /查看NameNode节点上服务启动信息15917 SecondaryNameNode15981 JobTracker15764 NameNode16060 Jpshadoopclovem001 hadoop-0.20$ssh clovem001 jps /查看DataNode1节点上服务启动信息13596 TaskTracker13665 Jps13487 DataNode其他节点同样如此。通过局域网内可以ping通集群的客户端通过WEB浏览器进行查看管理rootclovem004 # firefox 01:50070 /查看节点信息图9 查看NameNode监控状态可以看到LiveNodes显示为3,点击进入 图10 显示三个DataNode节点信息其中配置的容量值以及使用情况跟系统根分区的值相同,跟通过df -h|grep / 查看的数据是一致的。rootclovem004 # firefox 01:50030 /查看JobTracker 信息 图11 显示Map/Reduce任务管理界面由于当前没有进行任务处理,所有显示Running Jobs为none现在我们运行一个最简单的wordconut程序hadoopclovem001$mkdir hadoop_jobshadoopclovem001$cd hadoop_jobshadoopclovem001 hadoop_jobs$ cat words today is a nice day are you happy? i am very happy! i like hadoop! is hadoop a very wonderful sof
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年台州消防招聘45名政府专职消防队员备考题库带答案详解
- 汽车科目一考试题及答案
- 2025年日照市莒县沭东中医医院有限公司招聘备考题库完整答案详解
- 2026年北京中医医院派遣制职工招聘10人备考题库及一套参考答案详解
- 2025年成都市金牛区金泉社区卫生服务中心招聘备考题库及参考答案详解一套
- 2025年化州市第七中学招聘临聘教师备考题库带答案详解
- 2025年中国铁路青藏集团有限公司招聘备考题库带答案详解
- 2025年广州市花都区新雅街镜湖学校招聘临聘教师备考题库及一套完整答案详解
- 重庆市酉阳自治县城区事业单位2025年公开遴选工作人员备考题库带答案详解
- 2025年慢性病患者健康管理服务培训考核试题及答案
- 常用心理测量评定量表
- 螺线管内介质边界条件研究
- 高中物理 人教版 必修二 圆周运动-2 向心力 (第一课时)
- 疾病监测课件
- 灵芝孢子粉胶囊课件
- GB/T 13033.1-2007额定电压750V及以下矿物绝缘电缆及终端第1部分:电缆
- GB/T 11446.5-2013电子级水中痕量金属的原子吸收分光光度测试方法
- 人教版高中地理必修一第二章《地球上大气》单元检测试题
- 日立电梯MCA调试培训课件
- 危险化学品术语
- 食品配送应急处突保障全新预案
评论
0/150
提交评论