Hadoop的安装部署
更新时间:2023-08-07 18:53:01 阅读量: 实用文档 文档下载
Hadoop的安装部署
对于云计算的概念,世界知名的几大IT厂商都推出了各自的云计算平台,比如Amazon的AWS、微软的Azure和IBM的蓝云等,但他们都是商业平台,不适合广大对云计算有兴趣的研究者,而Hadoop是google云计算的开源实现,并且是完全免费的。Hadoop是一个分布式系统基础架构,是Apache下的一个项目,由HDFS、MapReduce、HBase、Hive和ZooKeeper等成员组成。其中,HDFS和MapReduce是两个最基础最重要的成员。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(HadoopDistributedFileSystem)的缩写,为分布式计算存储提供了底层支持。
MapReduce从它名字上来看就大致可以看出个缘由,两个动词Map和Reduce,“Map(展开)”就是将一个任务分解成为多个任务,“Reduce”就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。这不是什么新思想,其实在前面提到的多线程,多任务的设计就可以找到这种思想的影子。不论是现实社会,还是在程序设计中,一项工作往往可以被拆分成为多个任务,任务之间的关系可以分为两种:一种是不相关的任务,可以并行执行;另一种是任务之间有相互的依赖,先后顺序不能够颠倒,这类任务是无法并行处理的。回到大学时期,教授上课时让大家去分析关键路径,无非就是找最省时的任务分解执行方式。在分布式系统中,机器集群就可以看作硬件资源池,将并行的任务拆分,然后交由每一个空闲机器资源去处理,能够极大地提高计算效率,同时这种资源无关性,对于计算集群的扩展无疑提供了最好的设计保证。(其实我一直认为Hadoop的卡通图标不应该是一个小象,应该是蚂蚁,分布式计算就好比蚂蚁吃大象,廉价的机器群可以匹敌任何高性能的计算机,纵向扩展的曲线始终敌不过横向扩展的斜线)。任务分解处理以后,那就需要将处理以后的结果再汇总起来,这就是Reduce
要做的工作。如下图:
HDFS是分布式计算的存储基石,Hadoop的分布式文件系统和其他分布式文件系统有很多类似的特质。分布式文件系统基本的几个特点:
1.对于整个集群有单一的命名空间。
2.数据一致性。适合一次写入多次读取的模型,客户端在文件没有被成功创建之前无法看到文件存在。
3.文件会被分割成多个文件块,每个文件块被分配存储到数据节点上,而且根据配置会由复制文件块来保证数据的安全性。
就HDFS的设计而言,有以下一些特点:
1.Block的放置:默认不配置。一个Block会有三份备份,一份放在NameNode指定的DataNode,另一份放在与指定DataNode非同一Rack上的DataNode,最后一份放在与指定DataNode同一Rack上的DataNode上。备份无非就是为了数据安全,考虑同一Rack的失败情况以及不同Rack之间数据拷贝性能问题就采用这种配置方式。
2.心跳检测DataNode的健康状况,如果发现问题就采取数据备份的方式来保证数据的安全性。
3.数据复制(场景为DataNode失败、需要平衡DataNode的存储利用率和需要平衡DataNode数据交互压力等情况):这里先说一下,使用HDFS的balancer命令,可以配置一个Threshold来平衡每一个DataNode磁盘利用率。例如设置了Threshold为10%,那么执行balancer命令的时候,首先统计所有DataNode的磁盘利用率的均值,然后判断如果某一个DataNode的磁盘利用率超过这个均值Threshold以上,那么将会把这个DataNode的block转移到磁盘利用率低的DataNode,这对于新节点的加入来说十分有用。
4.数据交验:采用CRC32作数据交验。在文件Block写入的时候除了写入数据还会写入交验信息,在读取的时候需要交验后再读入。
http://www.77cn.com.cnNode是单点:如果失败的话,任务处理信息将会纪录在本地文件系统和远端的文件系统中。
6.数据管道性的写入:当客户端要写入文件到DataNode上,首先客户端读取一个Block然后写到第一个DataNode上,然后由第一个DataNode传递到备份的DataNode上,一直到所有需要写入这个Block的NataNode都成功写入,客户端才会继续开始写下一个Block。
7.安全模式:在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。
部署:
前期准备:
1、安装linux虚拟机使用的是VMware7.0.1build-227600和ubuntu11.10,并且安装vmwaretools和samba服务,这样方便物理机与虚拟机的使用。
1)vmwaretools安装命令如下:
#mkdir/mnt/cdrom/
#mount/dev/cdrom//mnt/cdrom/
#cp/mnt/cdrom/VMwareTools-*.tar.gz
#cd/tmp/
#tar-zxpfVMwareTools-*.tar.gz
#cdvmware-tools-distrib/
#./vmware-install.pl
2)samba服务的安装配置如下:/tmp/
#apt-getinstallsamba
#apt-getinstallsmbclient
#mkdir/samba/
#vi/etc/smb.conf
做如下修改:
security=user改为security=share
文件末尾添加如下内容:
[samba]
Comment=thisislinuxsharedirectory
Path=/samba
Public=yes
Writable=yes
在windows中点击运行,输入\\虚拟机linux的ip\samba就能访问到共享文件夹。
2、hadoop运行时需要管理远端的hadoop守护进程,所以需要安装sshserver,使用如下命令:
#apt-getinstallssh
3、安装java,使用jdk-6u24-linux-i586.bin版本。安装java到/usr/java/目录下:#mkdir/usr/java/
#cd/usr/java/
#/samba/jdk-6u24-linux-i586.bin
4、解压hadoop安装包,实验使用hadoop-1.0.2.tar.gz,软件放在samba文件夹中,解压到/usr/目录中。
#cd/usr/
#tar-zxvf/samba/hadoop-1.0.2.tar.gz
5、编辑解压出来的hadoop文件夹中的/conf/hadoop-env.sh文件,把JAVA_HOME设置为java的安装路径如exportJAVA_HOME=/usr/java/jdk1.6.0_24
#cd/usr/hadoop-1.0.2/
#viconf/hadoop-env.sh
安装环境配置完成后,就可以对hadoop进行测试。Hadoop集群有三种运行模式:单机模式、伪分布式模式和完全分布式模式。
1、默认情况下为单机模式,方便调试工作:
#mkdirinput
#cdinput
#echo“helloworld”>test1.txt
#echo“hellohadoop”>test2.txt
#bin/hadoopjarhadoop-examples-1.0.2.jarwordcountinputoutput
查看执行结果:
#cat
output/*
可以看到与原先输入txt文件的内容词数相符合。
当再次用其他的实例进行测试时:
#cpconf/*xmlinput/
#bin/hadoopjarhadoop-examples-1.0.2.jargrep
提示output
文件夹已经存在的错误,如图:input/output/'dfs[a-z.]+'
所以进行以上操作之前需要先删除原先的输出文件夹output:
#rm-rfoutput/
#bin/hadoopjarhadoop-examples-1.0.2.jargrepinput/output/'dfs[a-z.]+'
#catoutput/*
查看结果为:
2、伪分布式模式:
对hadoop1.0.2/conf/目录中的core-site.xml,hdfs-site.xml,mapred-site.xml进行相应的配置:
core-site.xml
hdfs-site.xml
mapred-site.xml
配置完hadoop的配置文件后,进行免密码SSH设置:#ssh-keygen-t
rsa
进入/home/roy/.ssh/目录,执行如下命令:
#cpid_rsa.pubauthorized_keys
#ssh
localhost
运行hadoop之前,需要格式化分布式文件系统:
#sudobin/hadoopnamenode–format
启动hadoop守护进程:
#bin
/start-all.sh
http://localhost:50070
http://localhost:50030
http://localhost:50060
把输入文件复制到分布式文件系统中:
#bin/hadoopfs–putconfinput
运行一个提供的实例:
#sudobin/hadoopjarhadoop-examples-1.0.2.jargrepinput/output/‘dfs[a-z.]+’
把输出文件从分布式文件系统中复制到本地文件系统中并查看:#bin/hadoopfs-getoutputoutput
#cat
output/*
或者直接查看分布式系统中的输出文件:
#bin/hadoopfs-catoutput/*
都完成以后就可以关闭守护进程:
#bin/stop-all.sh
运行WordCount实例:
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 部署
- 安装
- Hadoop
- 新概念2全摘要写作
- 2011年国家公务员考试申论真题及答案解析,模拟卷
- 公司年度经营计划书(模板)1
- 浅析庄子的美学思想
- 糖果传奇iOS和安卓数据互通不?
- 顾客感知价值 驱动因素 价值层次模型 因子分析
- 不同形状名茶制茶工艺对茶叶品质的影响
- 江苏华创-插入式电磁流量计安装使用说明书
- 闵新闻:《房地产客户销售渠道开发与卓越关系管理》大纲
- 思想道德修养与法律基础知识点总结8
- 铜钱草有什么功效.doc
- 数据结构课设--迷宫
- 大学生青年志愿者活动总结
- 长株潭城市群区域规划
- 重大危险源巡检规定
- 新时期国家高新区创新发展2013年11月
- 饮水安全施工组织设计_secret
- 党建成果展示PPT模板
- 共面N点三维逆透视变换及运动估计_朱维乐
- 2016-2020年中国电感器行业发展前景及投资风险预测报告目录