Hadoop云计算平台搭建最详细过程(共22页)
发布时间:2024-11-28
发布时间:2024-11-28
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
Hadoop云计算平台及相关组件搭建安装过程详细教程
——Hbase+Pig+Hive+Zookeeper+Ganglia+Chukwa+Eclipse等
一.安装环境简介
根据官网,Hadoop已在linux主机组成的集群系统上得到验证,而windows平台是作为开发平台支持的,由于分布式操作尚未在windows平台上充分测试,所以还不作为一个生产平台。Windows下还需要安装Cygwin,Cygwin是在windows平台上运行的UNIX模拟环境,提供上述软件之外的shell支持。
实际条件下在windows系统下进行Hadoop伪分布式安装时,出现了许多未知问题。在linux系统下安装,以伪分布式进行测试,然后再进行完全分布式的实验环境部署。Hadoop完全分布模式的网络拓补图如图六所示: (1) 网络拓补图如六所示:
图六 完全分布式网络拓补图
(2) 硬件要求:搭建完全分布式环境需要若干计算机集群,Master和Slaves
处理器、内存、硬盘等参数要求根据情况而定。
(3) 软件要求
操作系统64位Ubuntu12.04.4 JDK版本
:jdk-7u51-linux-x64.tar.gz
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
并且所有机器均需配置SSH免密码登录。
二. Hadoop集群安装部署
目前,这里只搭建了一个由三台机器组成的小集群,在一个hadoop集群中有以下角色:Master和Slave、JobTracker和TaskTracker、NameNode和DataNode。下面为这三台机器分配IP地址以及相应的角色:
192.168.100.90——master,namenode,jobtracker——master(主机名) 192.168.100.105——slave,datanode,tasktracker——slave1(主机名) 192.168.100.106——slave,datanode,tasktracker——slave2(主机名)
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
实验环境搭建平台如图七所示:
图七 hadoop集群实验平台
并且,Hadoop要求集群上每台的用户账户名和密码相同。具体安装步骤如下: 1. 下载和安装JDK,版本为jdk-7u51-linux-x64.tar.gz
(1) JDK的安装目录为/usr/lib/jvm,创建此文件夹,在终端输入命令:
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文件,在文件最下面输入如下内容,如图八所示:
图八 JAVA环境变量设置
即为:
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
# 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版本信息
(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/hostname
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
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
5. 在这两台主机上安装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_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 slave1 ssh slave2
6. 配置两台主机的Hadoop文件
首先到Hadoop的官网下载hadoop-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的安装位置,如图十所示:
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
图十 JAVA_HOME 路径设置
(2) 修改core-site.xml,这是Hadoop的核心配置文件,这里配置的是HDFS的
地址及端号:
<configuration> <property>
<name>http://</name> <value>hdfs://master:9000</value> </property> <property>
<name>hadoop.tmp.dir</name> <value>/tmp</value> </configuration>
(3) 修改hdfs-site.xml
<configuration> <property>
<name>dfs.replication</name> <value>2</value>
</property>
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
</configuration>
(4) 修改mapred-site.xml
<configuration> <property>
<name>mapred.job.tracker</name> <value>master:9001</value> </property> </configuration>
(5) 修改conf/masters
master
(6) 修改conf/slaves
slave1 slave2
7. 启动hadoop
在启动之前,需要格式化hadoop的文件系统HDFS,进入hadoop文件夹,输入命令格式化:bin/hadoop namenode –format,如图十一所示:
图十一 hadoop格式化
输入命令,启动所有进程:bin/start-all.sh,如图十二所示:
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
图十二 hadoop启动信息
查看是否所有进程启动,输入命令:jps,如图十三所示:
图十三 jps查看进程
8. 最后验证hadoop是否成功启动
打开浏览器,查看机器集群状态分别输入网址: (1) 输入http://master:50070,如图十四,可看到:
图十四 namenode状态
点击live nodes,可以看到当前slave1和slave2两个节点信息,如图十五:
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
图十五 datanode节点状态
(2)输入http://master:50030,如图十六,可看到:
图十六 jobtracker状态
点击2 nodes查看tasktracker信息,如图十七:
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
图十七 tasktracker状态
(3)输入http://master:50060,如图十八,可看到:
图十八 task状态
也可以通过命令:hadoop dfsadmin –report查看 9. 停止hadoop进程:bin/stop-all.sh
如图十九:
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
图十九 停止hadoop集群
10. 以上为hadoop完全分布式集群配置
以上过程为由三台计算机组成的完全分布式Hadoop集群,主要参考《Hadoop实战-第二版》和《Hadoop权威指南》,主要讲解了Hadoop的安装和配置过程,关于更多Hadoop原理的知识不在详述,如果在家在安装的时候遇到问题,或者按以上步骤安装完成却不能运行Hadoop,建议查看Hadoop的日志信息,Hadoop记录了详尽的日志信息,日志文件保存的Hadoop/logs文件夹内。
三.其他组件安装过程简介
本Hadoop平台搭建过程中安装的组件及软件环境主要包括以下内容:
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
相关技术作以下介绍: 1. Pig和Hive
Hive是一个基于Hadoop文件系统之上的数据仓库架构,利用Mapreduce编程技术,实现了部分SQL语句,提供了类SQL的编程接口,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能可以将SQL语句转换为Mapreduce任务进行运行,但是这样在执行时会出现延迟现象,但能更好的处理不变的大规模数据集上的批量任务。此外,Hive的网络接口可以方便直观地对数据进行操作,在命令行下,要执行多个查询就要打开多个终端,而通过网络结构可以同时执行多个查询。 配置Eclipse环境编写Hive 程序
Hive的优化策略,针对不同的查询进行优化,优化过程通过配置进行控制
图二十 Hive Web 接口界面
Pig提供了一个支持大规模数据分析的平台,Pig的基础结构层包括一个产生Mapreduce程序的编译器,能够承受大量的并行任务。Pig Latin语言更侧重于对数据的查询和分析,而不是对数据进行修改和删除,建立在Hadoop分布式平台之上,能够在短时间内处理海量的数据,比如:系统日志文件,处理大型数据库文件,处理特定web数据等。 2. Ganglia
Ganglia是UC Berkeley发起的一个开源集群监视项目,用于测量数以千计的节点集群。核心包含两个Daemon:客户端Ganglia Monitoring(gmond)和服务端Ganglia Meta(gmetad),以及一个web前端,主要监控的系统性能有:CPU、memory
、硬盘
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
利用率、I/O负载、网络流量情况等,可以帮助合理调整分配系统资源,优化系统性。
图二十一 Ganglia 监控总界面
图二十二 Ganglia-cpu监控界面
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
图二十三 Ganglia-cluster cpu 监控界面
图二十四 Ganglia-memory监控界面
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
图二十五 Ganglia-network监控界面
3. HBase
简单地说,hbase是一个分布式的、面向列的开源数据库,不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。Hbase的核心是将数据抽象成表,表中只有rowkey和column family,rowkey记录的是主键,通过key/value很容易找到,column存储实际的数据。
<key1/value1> → <key2/value2> → <key3/value3>
Hmaster
HRegionServerHRegionServerHRegionServer
图二十六 HBase架构
4. Mahout
Mahout是Apache的一个开源的项目,基于Hadoop平台设计和开发的算法工具库。提供一些经典的机器学习算法,包含聚类、分类、推荐引擎、频繁子项挖掘。Apache
本文档主要讲解了Hadoop的安装配置过程,及其相关项目的配置,如Hbase, Pig, Hive, Zookeeper, Mahout, Ganglia, Chukwa, Eclipse等,以上过程均亲自验证,按照文档进行配置
Mahout主要包括以下部分:
频繁模式挖掘:挖掘数据中频繁出现的项集;
聚类:将诸如文本、文档之类的数据分成局部相关的组;
分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分离; 推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事物;
频繁子项挖掘:利用一个项集(查询记录或购物记录)去识别经常一起出现的项目。
Mahout的主要目标是建立可伸缩的机器学习算法,这种可伸缩性是针对大规模的数据集而言的,Mahout的算法运行在Apache Hadoop平台下,通过Mapreduce模式实现,但是Mahout并不严格要求算法的实现要基于Hadoop平台,单个节点或非Hadoop平台或Hadoop平台也可以。Mahout核心库的非分布式算法也具有良好的性能。
图二十七 Mahout提供的算法
Mahout中FPGrowth在Mapteduce模式下运行过程及用时: