Chinaunix首页 | 论坛 | 博客
  • 博客访问: 159548
  • 博文数量: 34
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 378
  • 用 户 组: 普通用户
  • 注册时间: 2017-01-17 11:19
个人简介

人的一生犹如负重致远,不可急躁。 以不自由为常事,则不觉不足。 心生欲望时,应回顾贫困之日。 心怀宽恕,视怒如敌,则能无视长久。 只知胜而不知敗,必害其身。 责人不如责己,不及胜于过之。

文章分类

全部博文(34)

文章存档

2018年(2)

2017年(32)

我的朋友

分类: HADOOP

2017-02-09 13:30:47

Hadoop初识和安装

1  Hadoop初识

1.1  hadoop历史

2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统。

2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS。

2004年Google又发表了一篇技术学术论文MapReduce。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行分析运算。

2005年Doug Cutting又基于MapReduce,在Nutch搜索引擎实现了该功能。

2006年,Yahoo雇用了Doug Cutting,Doug Cutting将NDFS和MapReduce升级命名为Hadoop,Yahoo开建了一个独立的团队给Goug Cutting专门研究发展Hadoop。

1.2  hadoop简介

Hadoop实现了一个(Hadoop Distributed File System),简称HDFS。

1.3  hadoop特点

HDFS有高的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

2  hadoop下载

2.1  hadoop的下载地址

       官网地址

       镜像地址

2.2  打开hadoop镜像地址



我们选择清华大学的网址:


 

网页如下:


稳定版本1

下载稳定版本1如图:

2.2  安装准备

2.2.1  准备Linux操作系统

       本人安装的操作系统是ubuntu-16.04-desktop-i386,你也可以选择其他的Linux发行版本安装。

2.2.2  安装依赖

       安装 ssh

              sudo apt-get install ssh

              sudo apt-get install rsync

       由于hadoop使用ssh协议来管理远程守护进程,因此还需要配置免密码登录,对于单极为分布式使用以下命令进行操作:

              ssh-keygen  –t  rsa  –P  ‘’  –f  ~/.ssh/id_rsa

              cat  ~/.ssh/id_rsa.pub  >>  ~/.ssh/authorized_keys

2.2.3  jdk安装和环境变量配置

       下载jdk1.6.x以上版本,本人下载的是jdk-7u80-linux-i586.tar.gz。

2.2.3.1  解压jdk-7u80-linux-i586.tar.gz

      tar  –zxvf  jdk-7u80-linux-i586.tar.gz

2.2.3.2  配置环境变量

       在操作系统用户目录下的 .bashrc 文件末尾增加

export JAVA_HOME=/usr/bin/develop/jdk1.7.0_80

export JRE_HOME=${JAVA_HOME}/jre

export PATH=${JAVA_HOME}/bin:$PATH

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

2.2.3.3  测试jdk环境变量安装

2.3  hadoop安装和配置

2.3.1  解压hadoop-1.2.1.tar.gz

       tar  –zxvf  hadoop-1.2.1.tar.gz

2.3.2  配置环境变量

export HADOOP_HOME=/usr/bin/develop/hadoop-2.7.3

export HADOOP_HOME_WARN_SUPPRESS=1

export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH


注释:HADOOP_HOME_WARN_SUPPRESS是去掉警告的。

例如:Warning: $HADOOP_HOME is deprecated 

2.3.3  配置core-site.xml

       这个配置是hadoop的核心配置,至少需要配置HDFS的地址及端口号,这里使用以下配置方法: 

       fs.default.name用于指定NameNode的IP地址和端口号,localhost就是HDFS NameNode的地址,9000是HDFS的NameNode RPC交互端口。

2.3.4  配置hdfs-site.xml

       这里主要配置HDFS的相关属性和参数:


dfs.replication用于指定HDFS中每个Block块被复制的次数,起到数据冗余备份的作用。

在典型的生产系统中,这个数常被设置为3,这里是伪分布式,只有一个节点,因此设置为1。dfs.name.dir用配置HDFS的NameNode的元数据,以逗号隔开,HDFS会把元数据冗余复制到这些目录下。dfs.data.dir用于配置HDFS的DataNode的数据目录,以逗号隔开,HDFS会把这些数据存储到这些目录下。这两个配置都在tmp目录下,建议用户在配置时使用自己创建的目录即可。

2.3.5  配置map-site.xml

       配置mapred-site.xml的代码:

       mapred.job.tracker是Mapreduce Jobtracker的IP地址及端口号,localhost就是Mapreduce Jobtracker的地址,9001是Mapreduce Jobtracker RPC交互端口。

2.3.6  配置hadoop-env.sh

       hadoop-env.sh用于配置集群特有的变量值,这里至少需要JAVA_HOME环境变量

3  hadoop启动与停止

3.1  格式化HDFS分布式文件系统

       如下图:

3.2  启动hadoop

       如下图:

在执行start-all.sh启动命令后,hadoop首先启动了NameNode的守护进程,紧接着是DataNode和secondaryNameNode守护进程,然后是Jobtracker和TaskTracker守护进程。

jps命令可以看到伪分布式下启动的所有守护进程。

NameNode、DataNode和SecondaryNode是HDFS的三个守护进程。

Jobtracker和TaskTracker是Mapreduce的守护进程。

通过hadoop NameNode和JobTracker的web接口来查看集群是否启动成功。

NameNode为

如下图:

          

       从图中可以看到hadoop集群的配置容量、使用情况及节点是否正常等集群信息,也可以直接在web界面上浏览HDFS的内容以及日志文件。

JobTracker为

如下图:

 

从图中可以看到Mapreduce的相关情况,包括集群Map和Reduce的槽位数及最大容量,以及提交的作业数。Hadoop Mapreduce默认使用FIFO调度器,因此默认有一个default队列,用户提价的全部作业都会被提交到default队列并使用FIFO调度器调度运行。    

3.3  停止hadoop

       命令:stop-all.sh

如下图:

 

 

 

 

参考链接:

http://baike.baidu.com/link?url=k5UBL0furMUHc7IHP0QW-Y03B3iBWg8jTVmcXJSHFfpS7FLKukHJ4ez0j-OhSBTv9u1XhIdv2sWEucur9mdZZq

参考书籍:

[1]翟周伟.Hadoop核心技术[M].机械工业出版社.

阅读(844) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~