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

前言

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

Hadoop适合于:

1、超大数据的计算。

2、一次写入、多次读取的模式;

3、能够跑在普通的硬件上。

Hadoop不适合:

1、低延迟的数据訪问。它是为高数据吞吐量应用优化的;

2、大量的小文件

Hadoopclient须要和namenode进行交互,而namenode中存放的是datanode的文件属性,且都是在内存中,假设小文件过多。namenode是存放不了的;

3、多用户写入,随意改动文件。

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

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

一、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和其他计算server进行沟通。所以首先要确定本机或者是其他Hadoop计算server。是否都已经安装了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中的内容追加到须要无password登陆的server的~/.ssh/authorized_keys文件里)及id_rsa(或id_rsa中的内容追加到须要无password登陆的server的~/.ssh/id_rsa文件里)两个文件复制到各台分布式slave机器的“~/.ssh文件夹中”中,这样随意两台机器之间互相通过ssh訪问。都不须要输入password了。假设仅仅是复制到authorized_keysslave机器中,就仅仅能够实现主到从的不输password訪问。

注:假设须要远程登陆的server上还没有.ssh文件夹。那么就在登陆用户的文件夹下新建.ssh文件夹,权限至少设置成744。假设.ssh文件夹下没有authorized_keys文件。也新建该文件。并将其权限设置为644。

(3)測试登陆验证

在本例中。採用的是在单机中搭建伪分布式系统,通过例如以下ssh命令尝试登陆:

ssh localhost

ssh 127.0.0.1

假设不再提示输入password,直接登陆成功。那么SSH登陆就设置成功了。

原文地址:https://www.cnblogs.com/gcczhongduan/p/5215227.html