收藏 分享(赏)

Hadoop云计算平台搭建最详细过程(共22页).doc

上传人:weiwoduzun 文档编号:2660009 上传时间:2018-09-24 格式:DOC 页数:22 大小:6.73MB
下载 相关 举报
Hadoop云计算平台搭建最详细过程(共22页).doc_第1页
第1页 / 共22页
Hadoop云计算平台搭建最详细过程(共22页).doc_第2页
第2页 / 共22页
Hadoop云计算平台搭建最详细过程(共22页).doc_第3页
第3页 / 共22页
Hadoop云计算平台搭建最详细过程(共22页).doc_第4页
第4页 / 共22页
Hadoop云计算平台搭建最详细过程(共22页).doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、Hadoop 云计算平台及相关组件搭建安装过程详细教程Hbase+Pig+Hive+Zookeeper+Ganglia+Chukwa+Eclipse 等一安装环境简介根据官网,Hadoop 已在 linux 主机组成的集群系统上得到验证,而 windows 平台是作为开发平台支持的,由于分布式操作尚未在 windows 平台上充分测试,所以还不作为一个生产平台。Windows 下还需要安装 Cygwin,Cygwin 是在 windows 平台上运行的 UNIX 模拟环境,提供上述软件之外的 shell 支持。实际条件下在 windows 系统下进行 Hadoop 伪分布式安装时,出现了许多未

2、知问题。在 linux 系统下安装,以伪分布式进行测试,然后再进行完全分布式的实验环境部署。Hadoop 完全分布模式的网络拓补图如图六所示:(1 ) 网络拓补图如六所示:图六 完全分布式网络拓补图(2 ) 硬件要求:搭建完全分布式环境需要若干计算机集群,Master 和 Slaves处理器、内存、硬盘等参数要求根据情况而定。(3 ) 软件要求操作系统 64 位 Ubuntu12.04.4JDK 版本:jdk-7u51-linux-x64.tar.gzNO. Project Version Content1 Hardware environmentCPU: Intel 2.00 GHzDisk

3、 : 150GBMemory: 2.00GBMaster/NameNode IP:192.168.100.90Slave1/DataNode IP:192.168.100.105Slave2/DataNode IP:192.168.100.1062 Operation systemUbuntu-12.04 64-bit3 JDK jdk-7u51-linux-x64.tar.gz /usr/bin/jvm/jdk1.7.0_514 Hadoop hadoop-1.2.1.tar.gz /home/majiangbo/hadoop-1.2.15 Zookeeper zookeeper-3.4.6

4、.tar.gz /home/majiangbo/hadoop-1.2.1/zookeeper-3.4.66 HBase Hbase-0.94.20.tar.gz /home/majiangbo/hadoop-1.2.1/hbase-0.94.207 Pig pig-0.12.0.tat.gz /home/majiangbo/hadoop-1.2.1/pig-0.12.08 Hive hive-0.12.0.tar.gz /home/majiangbo/hadoop-1.2.1/hive-0.12.09 Ganglia /home/majiangbo/hadoop-1.2.1/10 Eclips

5、e Eclipse standard 4.3.2 /home/majiangbo/eclipse11 Hadoop for eclipse pluginHadoop-eclipse-plugin-1.2.1.jar/home/majiangbo/eclipse/plugins12 Chukwa (可选)并且所有机器均需配置 SSH 免密码登录。二 Hadoop 集群安装部署 目前,这里只搭建了一个由三台机器组成的小集群,在一个 hadoop 集群中有以下角色:Master 和 Slave、JobTracker 和 TaskTracker、NameNode 和 DataNode。下面为这三台机器

6、分配 IP 地址以及相应的角色:192.168.100.90master,namenode,jobtrackermaster(主机名)192.168.100.105slave,datanode,tasktracker slave1(主机名)192.168.100.106slave,datanode,tasktracker slave2(主机名)实验环境搭建平台如图七所示:图七 hadoop 集群实验平台并且,Hadoop 要求集群上每台的用户账户名和密码相同。具体安装步骤如下:1. 下载和安装 JDK,版本为 jdk-7u51-linux-x64.tar.gz(1 ) JDK 的安装目录为/u

7、sr/lib/jvm ,创建此文件夹,在终端输入命令:mkdir /usr/lib/jvm(2 ) 权限不够的话重新改下用户密码就可以了,命令: sudo passwd,之后重新输入密码。(3 ) 移动 jdk 到/usr/lib/jvm ,并解压, 然后为了节省空间删除安装包。命令:mv jdk-7u51-linux-x64.tar.gz /usr/lib/jvmtar zxvf jdk-7u51-linux-x64.tar.gzrm rf jdk-7u51-linux-x64.tar.gz2. 配置环境变量在终端输入命令:sudo gedit /etc/profile打开 profile

8、文件,在文件最下面输入如下内容,如图八所示:图八 JAVA 环境变量设置即为:# set java environmentexport JAVA_HOME=/usr/lib/jvm/jdk1.7.0_51export CLASSPATH=”.:$JAVA_HOME/lib:$CLASSPATH”export PATH=”$JAVA_HOME/:$PATH”这一步的意义是配置环境变量,使系统可以找到 jdk。3. 验证 JDK 是否安装成功(1 ) 输入命令:java version,如图九所示。如果出现 java 版本信息,说明当前安装的 jdk 并未设置成 ubuntu 系统默认的 jdk,

9、接下来还需要手动将安装的 jdk 设置成系统默认的 jdk。图九 java 版本信息(2 ) 手动设置需输入以下命令:sudo update-alternatives install /usr/bin/java java /usr/lib/jvm/jdk1.7.0-51/bin/java 300sudo update-alternatives install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_51/javac 300sudo update-alternatives config java然后输入 java version 就可以看到所安装的

10、jdk 的版本信息。4. 三台主机上分别设置/etc/hosts 和/etc/hostnameHosts 这个文件用于定义主机名和 IP 地址之间的对应关系,而 hostname 这个文件用于定义你的 Ubuntu 的主机名。(1 ) 修改/etc/hosts,命令 sudo gedit /etc/hosts127.0.0.1 localhost192.168.100.90 master192.168.100.105 slave1192.168.100.106 slave2(2 ) 修改/etc/hostname,命令 sudo gedit /etc/hostname(修改完重启有效)mast

11、er以及 slave1 ,slave25. 在这两台主机上安装 OpenSSH,并配置 SSH 可以免密码登录(1 ) 确认已经连接上网,输入命令:sudo apt-get install ssh(2 ) 配置为可以免密码登录本机,接下来输入命令:ssh-keygen t dsa P f /.ssh/id_dsa解释一下,ssh-keygen 代表生成密匙, -t 表示指定生成的密匙类型,dsa是密匙认证的意思,即密匙类型,-P 用于提供密语,-f 指定生成的密匙文件。这个命令会在.ssh 文件夹下创建 id_dsa 以及 id_dsa.pub 两个文件,这是 ssh 一对私匙和公匙,把 id

12、_dsa.pub 追加到授权的 key 中。输入命令:cat /.ssh/id_dsa.pub /.ssh/authorized_keys(3 ) 验证 ssh 是否已经安装成功,输入命令: ssh version。将文件复制到 slave 主机相同的文件夹内,输入命令:scp authorized_keys slave1:/.ssh/scp authorized_keys slave2:/.ssh/(4 ) 看是否可以从 master 主机免密码登录 slave,输入命令:ssh slave1ssh slave26. 配置两台主机的 Hadoop 文件首先到 Hadoop 的官网下载 had

13、oop-1.2.1.tar.gz 包,默认讲 Hadoop 解压到 /home/u(你的 Ubuntu 用户名)/ 目录下(1 ) 进入 hadoop 内的 conf 文件夹,找到 hadoop-env.sh,修改:export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_51,指定 JDK 的安装位置,如图十所示:图十 JAVA_HOME 路径设置(2 ) 修改 core-site.xml,这是 Hadoop 的核心配置文件,这里配置的是 HDFS的地址及端号:fs.default.namehdfs:/master:9000hadoop.tmp.dir/tmp(3 ) 修

14、改 hdfs-site.xmldfs.replication2(4 ) 修改 mapred-site.xmlmapred.job.trackermaster:9001(5 ) 修改 conf/mastersmaster(6 ) 修改 conf/slavesslave1slave27. 启动 hadoop在启动之前,需要格式化 hadoop 的文件系统 HDFS,进入 hadoop 文件夹,输入命令格式化:bin/hadoop namenode format,如图十一所示:图十一 hadoop 格式化输入命令,启动所有进程:bin/start-all.sh ,如图十二所示:图十二 hadoop

15、启动信息查看是否所有进程启动,输入命令:jps,如图十三所示:图十三 jps 查看进程8. 最后验证 hadoop 是否成功启动打开浏览器,查看机器集群状态分别输入网址:(1 ) 输入 http:/master:50070,如图十四,可看到:图十四 namenode 状态点击 live nodes,可以看到当前 slave1 和 slave2 两个节点信息,如图十五:图十五 datanode 节点状态(2 )输入 http:/master:50030,如图十六,可看到:图十六 jobtracker 状态点击 2 nodes 查看 tasktracker 信息, 如图十七:图十七 tasktra

16、cker 状态(3 )输入 http:/master:50060,如图十八,可看到:图十八 task 状态也可以通过命令:hadoop dfsadmin report 查看9. 停止 hadoop 进程:bin/stop-all.sh如图十九:图十九 停止 hadoop 集群10. 以上为 hadoop 完全分布式集群配置以上过程为由三台计算机组成的完全分布式 Hadoop 集群,主要参考 Hadoop 实战-第二版和Hadoop 权威指南 ,主要讲解了 Hadoop 的安装和配置过程,关于更多Hadoop 原理的知识不在详述,如果在家在安装的时候遇到问题,或者按以上步骤安装完成却不能运行 H

17、adoop,建议查看 Hadoop 的日志信息,Hadoop 记录了详尽的日志信息,日志文件保存的 Hadoop/logs 文件夹内。三其他组件安装过程简介本 Hadoop 平台搭建过程中安装的组件及软件环境主要包括以下内容:NO. Project Version Content1 Hardware environmentCPU: Intel 2.00 GHzDisk : 150GBMemory: 2.00GBMaster/NameNode IP:192.168.100.90Slave1/DataNode IP:192.168.100.105Slave2/DataNode IP:192.168

18、.100.1062 Operation systemUbuntu-12.04 64-bit3 JDK jdk-7u51-linux-x64.tar.gz /usr/bin/jvm/jdk1.7.0_514 Hadoop hadoop-1.2.1.tar.gz /home/majiangbo/hadoop-1.2.15 Zookeeper zookeeper-3.4.6.tar.gz /home/majiangbo/hadoop-1.2.1/zookeeper-3.4.66 HBase Hbase-0.94.20.tar.gz /home/majiangbo/hadoop-1.2.1/hbase

19、-0.94.207 Pig pig-0.12.0.tat.gz /home/majiangbo/hadoop-1.2.1/pig-0.12.08 Hive hive-0.12.0.tar.gz /home/majiangbo/hadoop-1.2.1/hive-0.12.09 Ganglia /home/majiangbo/hadoop-1.2.1/10 Eclipse Eclipse standard 4.3.2 /home/majiangbo/eclipse11 Hadoop for eclipse pluginHadoop-eclipse-plugin-1.2.1.jar/home/ma

20、jiangbo/eclipse/plugins12 Chukwa (可选)相关技术作以下介绍:1. Pig 和 HiveHive 是一个基于 Hadoop 文件系统之上的数据仓库架构,利用 Mapreduce 编程技术,实现了部分 SQL 语句,提供了类 SQL 的编程接口,可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能可以将 SQL 语句转换为 Mapreduce 任务进行运行,但是这样在执行时会出现延迟现象,但能更好的处理不变的大规模数据集上的批量任务。此外,Hive 的网络接口可以方便直观地对数据进行操作,在命令行下,要执行多个查询就要打开多个终端,而通过网络结

21、构可以同时执行多个查询。配置 Eclipse 环境编写 Hive 程序Hive 的优化策略,针对不同的查询进行优化,优化过程通过配置进行控制图二十 Hive Web 接口界面Pig 提供了一个支持大规模数据分析的平台,Pig 的基础结构层包括一个产生Mapreduce 程序的编译器,能够承受大量的并行任务。Pig Latin 语言更侧重于对数据的查询和分析,而不是对数据进行修改和删除,建立在 Hadoop 分布式平台之上,能够在短时间内处理海量的数据,比如:系统日志文件,处理大型数据库文件,处理特定 web 数据等。2. GangliaGanglia 是 UC Berkeley 发起的一个开源

22、集群监视项目,用于测量数以千计的节点集群。核心包含两个 Daemon:客户端 Ganglia Monitoring(gmond)和服务端 Ganglia Meta(gmetad),以及一个 web 前端,主要监控的系统性能有: CPU、memory、硬盘利用率、I/O 负载、网络流量情况等,可以帮助合理调整分配系统资源,优化系统性。图二十一 Ganglia 监控总界面图二十二 Ganglia-cpu 监控界面图二十三 Ganglia-cluster cpu 监控界面图二十四 Ganglia-memory 监控界面图二十五 Ganglia-network 监控界面3. HBase简单地说,hba

23、se 是一个分布式的、面向列的开源数据库,不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。Hbase 的核心是将数据抽象成表,表中只有 rowkey 和 column family,rowkey 记录的是主键,通过 key/value 很容易找到,column 存储实际的数据。 Z o o K e e p e rH m a s t e rH R e g i o n S e r v e r H R e g i o n S e r v e r H R e g i o n S e r v e rH R e g i o n H R e g i o n H R e g i o nH R e

24、 g i o n H R e g i o n H R e g i o nH R e g i o n H R e g i o n H R e g i o nH D F S图二十六 HBase 架构4. MahoutMahout 是 Apache 的一个开源的项目,基于 Hadoop 平台设计和开发的算法工具库。提供一些经典的机器学习算法,包含聚类、分类、推荐引擎、频繁子项挖掘。Apache Mahout 主要包括以下部分 : 频繁模式挖掘:挖掘数据中频繁出现的项集; 聚类:将诸如文本、文档之类的数据分成局部相关的组; 分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分离; 推荐引擎(协

25、同过滤):获得用户的行为并从中发现用户可能喜欢的事物; 频繁子项挖掘:利用一个项集(查询记录或购物记录)去识别经常一起出现的项目。Mahout 的主要目标是建立可伸缩的机器学习算法,这种可伸缩性是针对大规模的数据集而言的,Mahout 的算法运行在 Apache Hadoop 平台下,通过 Mapreduce 模式实现,但是 Mahout 并不严格要求算法的实现要基于 Hadoop 平台,单个节点或非Hadoop 平台或 Hadoop 平台也可以。Mahout 核心库的非分布式算法也具有良好的性能。图二十七 Mahout 提供的算法Mahout 中 FPGrowth 在 Mapteduce 模

26、式下运行过程及用时:图二十八 FPGrowth 运行过程及用时Mapreduce 模式运行过程中 running jobs:图二十九 MapReduce 运行过程中 running jobs 信息运行结束后 Completed jobs 信息:图三十 MapReduce 运行 completed jobs 信息FPGrowth 运行结束后 HDFS content:图三十一 FPGrowth 运行后再 HDFS 的存储目录各个文件目录的含义如下:打开 HDFS 存储文件,出现乱码现象:图三十二 HDFS 存储下文件现象执行完毕后,直接查看结果出现乱码现象, 是因为生成的文件被序列化了,还需要用

27、mahout 还原回来 ,命令如下:mahout seqdumper -i /user/hadoop/patterns/fpgrowth/part-r-00000 -o /data/patterns.txtFPGrowth 运行结果要通过以下命令才能正常显示在控制台:bin/mahout seqdumper s 图三十三 讲 FPGrowth 显示在控制台5. ChukwaChukwa 也是一个分布式系统,属于 Hadoop 系列产品,依赖于其他子项目,以 HDFS作为存储层,以 Mapreduce 作为计算模型,以 Pig 作为高层的数据处理语言。它采用的是流水式数据处理方式和模块化结构的收

28、集系统,流水式模式就是利用利分布在各个节点客户端的采集器收集各个节点被监控的信息,然后以块的形式通过HTTP Post 汇集到收集器,由它处理后转储到 HDFS 中,之后这些由 Archiving 处理(去除重复数据和合并数据)提纯,再由分离解析器利用 Mapreduce 将这些数据转换成结构化记录,并存储到数据库中,HICC(Hadoop infrastructure care center)通过调用数据库里数据,向用户展示可视化后的系统状态。图三十四 Chukwa 数据处理流程(图片来自网络)6. 应用实例:腾讯和淘宝大数据处理平台架构当前互联网公司用得比较多的是 HIVE/HBASE,如

29、腾讯基于 hive 深度定制改造的TDW,淘宝的基于 Hadoop 的大数据平台,小米等公司选用 hbase。图三十五 淘宝大数据平台分析(图片来自网络)图三十六 腾讯大数据平台分析(图片来自网络)7. 大数据分析技术现状Scribe Chukwa Kafka Flume公司 Facebook Apache Linkedin Cloudera开源时间 2008 年 10 月 2009 年 11 月 2010 年 12 月 2009 年 7 月语言 C/C+ Java SCALA Java框架 push/push push/push push/pull push/push容错性 Collecto

30、r 和 store之间有容错机制而 agent 和collector 之间的容错需用户自己实现Agent 定期记录已送给 collector 的数据偏移量,一旦出现故障后,可根据偏移量继续发送数据。Agent 可用通过collector 自动识别机制获取可用collector,store自己保存已经获取数据的偏移量,一旦 collector 出Agent 和collector,collector 和 store 之间均有容错机制,且提供了三种级别的可靠性保证现故障,可根据偏移量继续获取数据。负载均衡 无 无 Zookeeper Zookeeper可扩展性 好 好 好 好Agent Thrift

31、 client 需要自己实现自带一些 agent,如获取 Hadoop logs 的 agent用户需根据 kafka提供的 low-level和 high-level API自己实现提供了各种非常丰富的 agentCollector 实际上是一个thrift server 使用了sendfile,zero-copy 等技术提高性能系统提供了很多collector,直接可以使用Store 支持 HDFS 支持 HDFS 支持 HDFS 支持 HDFS总结 设计简单,易于使用,但容错和负载均衡方面不够好,且资料较少属于 Hadoop 系列产品,且支持Hadoop,目前版本升级比较快,但还有待完善设计架构push/pull 非常巧妙,适合异构集群,但产品较新,其稳定性有待验证非常优秀

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报