《Hadoop云计算平台搭建最详细过程(共22页).pdf》由会员分享,可在线阅读,更多相关《Hadoop云计算平台搭建最详细过程(共22页).pdf(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Hadoop云计算平台及相关组件搭建安装过程详细教程Hbase+Pig+Hive+Zookeeper+Ganglia+Chukwa+Eclipse等一安装环境简介根据官网,Hadoop 已在 linux 主机组成的集群系统上得到验证,而 windows 平台是作为开发平台支持的,由于分布式操作尚未在windows 平台上充分测试,所以还不作为一个生产平台。Windows 下还需要安装Cygwin,Cygwin 是在 windows 平台上运行的UNIX 模拟环境,提供上述软件之外的shell 支持。实际条件下在windows 系统下进行Hadoop 伪分布式安装时,出现了许多未知问题。在 li
2、nux 系统下安装,以伪分布式进行测试,然后再进行完全分布式的实验环境部署。Hadoop 完全分布模式的网络拓补图如图六所示:(1)网络拓补图如六所示:图六完全分布式网络拓补图(2)硬件要求:搭建完全分布式环境需要若干计算机集群,Master 和 Slaves 处理器、内存、硬盘等参数要求根据情况而定。(3)软件要求操作系统64 位 Ubuntu12.04.4 JDK版本:jdk-7u51-linux-x64.tar.gz NO.Project Version Content 1 Hardware environment CPU:Intel 2.00 GHz Disk:150GB Memory
3、:2.00GB Master/NameNode IP:192.168.100.90 Slave1/DataNode IP:192.168.100.105 Slave2/DataNode IP:192.168.100.106 2 Operation system Ubuntu-12.04 64-bit 3 JDK jdk-7u51-linux-x64.tar.gz/usr/bin/jvm/jdk1.7.0_51 4 Hadoop hadoop-1.2.1.tar.gz/home/majiangbo/hadoop-1.2.1 5 Zookeeper zookeeper-3.4.6.tar.gz/h
4、ome/majiangbo/hadoop-1.2.1/zookeeper-3.4.6 6 HBase Hbase-0.94.20.tar.gz/home/majiangbo/hadoop-1.2.1/hbase-0.94.20 7 Pig pig-0.12.0.tat.gz/home/majiangbo/hadoop-1.2.1/pig-0.12.0 8 Hive hive-0.12.0.tar.gz/home/majiangbo/hadoop-1.2.1/hive-0.12.0 9 Ganglia/home/majiangbo/hadoop-1.2.1/10 Eclipse Eclipse
5、standard 4.3.2/home/majiangbo/eclipse 11 Hadoop for eclipse plugin Hadoop-eclipse-plugin-1.2.1.jar/home/majiangbo/eclipse/plugins 12 Chukwa(可选)并且所有机器均需配置SSH免密码登录。二 Hadoop集群安装部署目前,这里只搭建了一个由三台机器组成的小集群,在一个hadoop 集群中有以下角色:Master 和 Slave、JobTracker和 TaskTracker、NameNode 和 DataNode。下面为这三台机器分配IP地址以及相应的角色:1
6、92.168.100.90 master,namenode,jobtracker master(主机名)192.168.100.105 slave,datanode,tasktracker slave1(主机名)192.168.100.106 slave,datanode,tasktracker slave2(主机名)实验环境搭建平台如图七所示:图七hadoop 集群实验平台并且,Hadoop 要求集群上每台的用户账户名和密码相同。具体安装步骤如下:1.下载和安装JDK,版本为 jdk-7u51-linux-x64.tar.gz(1)JDK的安装目录为/usr/lib/jvm,创建此文件夹,在
7、终端输入命令:mkdir/usr/lib/jvm(2)权限不够的话重新改下用户密码就可以了,命令:sudo passwd,之后重新输入密码。(3)移动 jdk 到/usr/lib/jvm,并解压,然后为了节省空间删除安装包。命令:mv jdk-7u51-linux-x64.tar.gz/usr/lib/jvm tar zxvf jdk-7u51-linux-x64.tar.gz rm rf jdk-7u51-linux-x64.tar.gz 2.配置环境变量在终端输入命令:sudo gedit/etc/profile 打开 profile 文件,在文件最下面输入如下内容,如图八所示:图八JAV
8、A环境变量设置即为:#set java environment export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_51 export CLASSPATH=”.:$JAVA_HOME/lib:$CLASSPATH”export PATH=”$JAVA_HOME/:$PATH”这一步的意义是配置环境变量,使系统可以找到jdk。3.验证 JDK是否安装成功(1)输入命令:java version,如图九所示。如果出现java 版本信息,说明当前安装的jdk 并未设置成ubuntu 系统默认的jdk,接下来还需要手动将安装的 jdk 设置成系统默认的jdk。图九java 版
9、本信息(2)手动设置需输入以下命令:sudo update-alternatives install/usr/bin/java java/usr/lib/jvm/jdk1.7.0-51/bin/java 300 sudo update-alternatives install/usr/bin/javac javac/usr/lib/jvm/jdk1.7.0_51/javac 300 sudo update-alternatives config java 然后输入java version 就可以看到所安装的jdk 的版本信息。4.三台主机上分别设置/etc/hosts 和/etc/hostna
10、me Hosts 这个文件用于定义主机名和IP地址之间的对应关系,而 hostname 这个文件用于定义你的Ubuntu 的主机名。(1)修改/etc/hosts,命令 sudo gedit/etc/hosts 127.0.0.1 localhost 192.168.100.90 master 192.168.100.105 slave1 192.168.100.106 slave2(2)修改/etc/hostname,命令sudo gedit/etc/hostname(修改完重启有效)master 以及 slave1,slave2 5.在这两台主机上安装OpenSSH,并配置 SSH可以免密
11、码登录(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_dsa.pub 追加到授权的key 中。输入命令:cat/.ssh/id_dsa.pub /.ssh/authorize
12、d_keys(3)验证 ssh 是否已经安装成功,输入命令:ssh version。将文件复制到slave 主机相同的文件夹内,输入命令:scp authorized_keys slave1:/.ssh/scp authorized_keys slave2:/.ssh/(4)看是否可以从master 主机免密码登录slave,输入命令:ssh slave1 ssh slave2 6.配置两台主机的Hadoop 文件首先到 Hadoop 的官网下载hadoop-1.2.1.tar.gz 包,默认讲Hadoop 解压到/home/u(你的 Ubuntu 用户名)/目录下(1)进入 hadoop 内
13、的 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.name hdfs:/master:9000 hadoop.tmp.dir/tmp (3)修改 hdfs-site.xml dfs.replication 2 (4)修改 mapred-site.xml mapred.job.tracker master:
14、9001 (5)修改 conf/masters master(6)修改 conf/slaves slave1 slave2 7.启动 hadoop 在启动之前,需要格式化hadoop 的文件系统HDFS,进入 hadoop 文件夹,输入命令格式化:bin/hadoop namenode format,如图十一所示:图十一hadoop 格式化输入命令,启动所有进程:bin/start-all.sh,如图十二所示:图十二hadoop 启动信息查看是否所有进程启动,输入命令:jps,如图十三所示:图十三jps 查看进程8.最后验证hadoop 是否成功启动打开浏览器,查看机器集群状态分别输入网址:(
15、1)输入 http:/master:50070,如图十四,可看到:图十四namenode 状态点击 live nodes,可以看到当前slave1和 slave2 两个节点信息,如图十五:图十五datanode 节点状态(2)输入 http:/master:50030,如图十六,可看到:图十六jobtracker 状态点击 2 nodes 查看 tasktracker 信息,如图十七:图十七tasktracker 状态(3)输入 http:/master:50060,如图十八,可看到:图十八task 状态也可以通过命令:hadoop dfsadmin report 查看9.停止 hadoop
16、进程:bin/stop-all.sh 如图十九:图十九停止 hadoop 集群10.以上为 hadoop 完全分布式集群配置以上过程为由三台计算机组成的完全分布式Hadoop 集群,主要参考Hadoop 实战-第二版和 Hadoop 权威指南,主要讲解了Hadoop 的安装和配置过程,关于更多Hadoop 原理的知识不在详述,如果在家在安装的时候遇到问题,或者按以上步骤安装完成却不能运行Hadoop,建议查看Hadoop 的日志信息,Hadoop 记录了详尽的日志信息,日志文件保存的Hadoop/logs 文件夹内。三其他组件安装过程简介本 Hadoop 平台搭建过程中安装的组件及软件环境主要
17、包括以下内容:NO.Project Version Content 1 Hardware environment CPU:Intel 2.00 GHz Disk:150GB Memory:2.00GB Master/NameNode IP:192.168.100.90 Slave1/DataNode IP:192.168.100.105 Slave2/DataNode IP:192.168.100.106 2 Operation system Ubuntu-12.04 64-bit 3 JDK jdk-7u51-linux-x64.tar.gz/usr/bin/jvm/jdk1.7.0_51
18、4 Hadoop hadoop-1.2.1.tar.gz/home/majiangbo/hadoop-1.2.1 5 Zookeeper zookeeper-3.4.6.tar.gz/home/majiangbo/hadoop-1.2.1/zookeeper-3.4.6 6 HBase Hbase-0.94.20.tar.gz/home/majiangbo/hadoop-1.2.1/hbase-0.94.20 7 Pig pig-0.12.0.tat.gz/home/majiangbo/hadoop-1.2.1/pig-0.12.0 8 Hive hive-0.12.0.tar.gz/home
19、/majiangbo/hadoop-1.2.1/hive-0.12.0 9 Ganglia/home/majiangbo/hadoop-1.2.1/10 Eclipse Eclipse standard 4.3.2/home/majiangbo/eclipse 11 Hadoop for eclipse plugin Hadoop-eclipse-plugin-1.2.1.jar/home/majiangbo/eclipse/plugins 12 Chukwa(可选)相关技术作以下介绍:1.Pig 和 Hive Hive 是一个基于Hadoop 文件系统之上的数据仓库架构,利用Mapreduc
20、e 编程技术,实现了部分SQL语句,提供了类 SQL的编程接口,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能可以将SQL语句转换为Mapreduce 任务进行运行,但是这样在执行时会出现延迟现象,但能更好的处理不变的大规模数据集上的批量任务。此外,Hive 的网络接口可以方便直观地对数据进行操作,在命令行下,要执行多个查询就要打开多个终端,而通过网络结构可以同时执行多个查询。配置 Eclipse环境编写Hive 程序Hive 的优化策略,针对不同的查询进行优化,优化过程通过配置进行控制图二十Hive Web 接口界面Pig 提供了一个支持大规模数据分析的平台,Pig 的
21、基础结构层包括一个产生Mapreduce 程序的编译器,能够承受大量的并行任务。Pig Latin 语言更侧重于对数据的查询和分析,而不是对数据进行修改和删除,建立在Hadoop 分布式平台之上,能够在短时间内处理海量的数据,比如:系统日志文件,处理大型数据库文件,处理特定 web 数据等。2.Ganglia Ganglia 是 UC Berkeley发起的一个开源集群监视项目,用于测量数以千计的节点集群。核 心 包 含 两 个Daemon:客 户 端Ganglia Monitoring(gmond)和 服 务 端Ganglia Meta(gmetad),以及一个web 前端,主要监控的系统性
22、能有:CPU、memory、硬盘利用率、I/O 负载、网络流量情况等,可以帮助合理调整分配系统资源,优化系统性。图二十一Ganglia 监控总界面图二十二Ganglia-cpu 监控界面图二十三Ganglia-cluster cpu 监控界面图二十四Ganglia-memory 监控界面图二十五Ganglia-network 监控界面3.HBase 简单地说,hbase 是一个分布式的、面向列的开源数据库,不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。Hbase 的核心是将数据抽象成表,表中只有 rowkey 和 column family,rowkey 记录的是主键,通过 k
23、ey/value 很容易找到,column存储实际的数据。ZooKeeperHmasterHRegionServerHRegionServerHRegionServerHRegionHRegionHRegionHRegionHRegionHRegionHRegionHRegionHRegionHDFS图二十六HBase架构4.Mahout Mahout 是 Apache 的一个开源的项目,基于Hadoop 平台设计和开发的算法工具库。提供一些经典的机器学习算法,包含聚类、分类、推荐引擎、频繁子项挖掘。Apache Mahout 主要包括以下部分:频繁模式挖掘:挖掘数据中频繁出现的项集;聚类:将
24、诸如文本、文档之类的数据分成局部相关的组;分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分离;推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事物;频繁子项挖掘:利用一个项集(查询记录或购物记录)去识别经常一起出现的项目。Mahout 的主要目标是建立可伸缩的机器学习算法,这种可伸缩性是针对大规模的数据集而言的,Mahout 的算法运行在Apache Hadoop 平台下,通过Mapreduce 模式实现,但是 Mahout 并不严格要求算法的实现要基于Hadoop 平台,单个节点或非Hadoop平台或 Hadoop 平台也可以。Mahout 核心库的非分布式算法也具有
25、良好的性能。图二十七Mahout 提供的算法Mahout 中 FPGrowth 在 Mapteduce 模式下运行过程及用时:图二十八FPGrowth 运行过程及用时Mapreduce 模式运行过程中running jobs:图二十九MapReduce 运行过程中running jobs 信息运行结束后Completed jobs 信息:图三十MapReduce 运行 completed jobs 信息FPGrowth 运行结束后HDFS content:图三十一FPGrowth 运行后再HDFS的存储目录各个文件目录的含义如下:打开 HDFS存储文件,出现乱码现象:图三十二HDFS存储下文件
26、现象执行完毕后,直接查看结果出现乱码现象,是因为生成的文件被序列化了,还需要用mahout 还原回来,命令如下:mahout seqdumper-i/user/hadoop/patterns/fpgrowth/part-r-00000-o/data/patterns.txt FPGrowth 运行结果要通过以下命令才能正常显示在控制台:bin/mahout seqdumper s 图三十三讲 FPGrowth 显示在控制台5.Chukwa Chukwa 也是一个分布式系统,属于Hadoop 系列产品,依赖于其他子项目,以HDFS作为存储层,以Mapreduce 作为计算模型,以Pig作为高层的
27、数据处理语言。它采用的是流水式数据处理方式和模块化结构的收集系统,流水式模式就是利用利分布在各个节点客户端的采集器收集各个节点被监控的信息,然后以块的形式通过HTTP Post汇集到收集器,由它处理后转储到HDFS中,之后这些由Archiving 处理(去除重复数据和合并数据)提纯,再由分离解析器利用Mapreduce 将这些数据转换成结构化记录,并存储到数据库中,HICC(Hadoop infrastructure care center)通过调用数据库里数据,向用户展示可视化后的系统状态。图三十四Chukwa 数据处理流程(图片来自网络)6.应用实例:腾讯和淘宝大数据处理平台架构当前互联网
28、公司用得比较多的是HIVE/HBASE,如腾讯基于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 容错
29、性Collector 和 store之间有容错机制而 agent 和collector 之间的容错需用户自己实现Agent 定期记录已送给 collector 的数据偏移量,一旦出现故障后,可根据偏移量继续发送数据。Agent 可用通过collector 自动识别机制获取可用collector,store 自己保存已经获取数据的偏移量,一旦 collector 出现故Agent 和 collector,collector 和 store之间均有容错机制,且提供了三种级别的可靠性保证障,可根据偏移量继续获取数据。负载均衡无无Zookeeper Zookeeper 可扩展性好好好好Agent Th
30、rift client 需要自己实现自带一些 agent,如获取 Hadoop logs 的 agent 用户需根据kafka提供的 low-level和 high-level API自己实现提供了各种非常丰富的 agent Collector 实际上是一个thrift server 使用了 sendfile,zero-copy 等技术提高性能系统提供了很多collector,直接可以使用Store 支持 HDFS 支持 HDFS 支持 HDFS 支持 HDFS 总结设计简单,易于使用,但容错和负载均衡方面不够好,且资料较少属于 Hadoop 系列产品,且支持Hadoop,目前版本升级比较快,但还有待完善设计架构push/pull 非常巧妙,适合异构集群,但产品较新,其稳定性有待验证非常优秀