Hadoop入门进阶步步高(一)-环境准备

前言

Hadoop从存储上来讲,是相似于冗余磁盘阵列(RAID)的存储方式,将数据分散存储并提供以提供吞吐量,它的存储系统就是HDFSHadoop Distuibute Fils System);从计算上来讲,它经过MapReduce模型,将大数据的计算分发到多台计算机上完成,再将结果合并,减小计算的时间。node

Hadoop适合于:apache

一、超大数据的计算;服务器

二、一次写入、屡次读取的模式;ssh

三、能够跑在普通的硬件上。分布式

 

Hadoop不适合:oop

一、低延迟的数据访问,它是为高数据吞吐量应用优化的;测试

二、大量的小文件大数据

Hadoop客户端须要和namenode进行交互,而namenode中存放的是datanode的文件属性,且都是在内存中,若是小文件过多,namenode是存放不了的;优化

三、多用户写入,任意修改文件。ui

Hadoop适合于一次计算,屡次读取的场景,如搜索引擎,只支持随机读取不支持随机写入,如HadoopLucene的集成就不可以直接集成,由于Lucene支持随机写入。

 

本文将从使用的角度上谈了如何搭建Hadoop、如何配置Hadoop、如何验证Hadoop及在Hadoop上面执行计算,以及可能会遇到些什么样的问题。

1、Hadoop环境搭建

由于Hadoop须要在Linux运行,而且Hadoop是基于Java的,在继续进行下面的步骤以前,请确认你已经准备好Linux操做系统以及Java 6或以上版本,而且已经正确的设置了JAVA_HOME

 

1、下载Hadoop

搭建Hadpp的版本为1.2.1 下载地址为:http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-1.2.1/

 

2、安装Hadoop

解压缩Hadoop到任意目录,我当前的Hadoop是将其解压到目录/usr/local/hadoop-1.2.1,并在/etc/profile中设置好环境变量HADOOP_HOME(这个变量不是必须的,在1.2.1已是Deprecated了,这里我之因此设置,仍是为了方便),以及将$HADOOP_HOME/bin目录加入到PATH中,这样咱们就能够在任意地方执行hadoop命令了,为了使用上的方便,再给”hadoop fs”设一个名为hdfsalias方便使用,如下是我机器上/etc/profile增长的内容:

export JAVA_HOME=/usr/local/jdk1.6.0_33

export HADOOP_HOME=/usr/local/hadoop-1.2.1

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

#Alias for hadoop

alias hdfs='hadoop fs'

注:该文件的编辑须要root权限,修改完成后,若是想当即生效,须要经过source命令操做一下:

source /etc/profile

不然就只有退出从新登录才会生效。

 

3、准备ssh

Hadoop须要经过SSH和其它计算服务器进行沟通,因此首先要肯定本机或者是其它Hadoop计算服务器,是否都已经安装了ssh

1)、肯定系统是否安装了sshssh-keygey

能够经过which命令来确认

which ssh

which ssh-keygen

若是出现

/usr/bin/which: no ssh in (/usr/.....)则表示系统里面没有安装SSH服务,能够经过www.openssh.com下载安装

(2)、发布公钥证书

执行以下命令:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

~/.ssh/ 目录会生成id_rsaid_rsa.pub两个文件,将id_rsa.pub复制一份在~/.ssh/目录下,并重命名为authorized_keys,若是是单机搭建伪分布式,此时ssh的准备工做已经完成了,若是使用全分布式环境,那么须要将authorized_keys(或authorized_keys中的内容追加到须要无密码登录的服务器的~/.ssh/authorized_keys文件中)及id_rsa(或id_rsa中的内容追加到须要无密码登录的服务器的~/.ssh/id_rsa文件中)两个文件复制到各台分布式slave机器的“~/.ssh目录中”中,这样任意两台机器之间互相经过ssh访问,都不须要输入密码了,若是只是拷贝到authorized_keysslave机器中,就只可以实现主到从的不输密码访问。

注:若是须要远程登录的服务器上尚未.ssh目录,那么就在登录用户的目录下新建.ssh目录,权限至少设置成744,若是.ssh目录下没有authorized_keys文件,也新建该文件,并将其权限设置为644。

(3)测试登录验证

在本例中,采用的是在单机中搭建伪分布式系统,经过以下ssh命令尝试登录:

ssh localhost

ssh 127.0.0.1

若是再也不提示输入密码,直接登录成功,那么SSH登录就设置成功了。

相关文章
相关标签/搜索