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

发布时间: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模式下运行过程及用时:

Hadoop云计算平台搭建最详细过程(共22页).doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219