zoukankan      html  css  js  c++  java
  • 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登陆就设置成功了。

  • 相关阅读:
    oracle数据库查看修改字符集问题
    C/C++内存问题检查利器—Purify (五)
    C/C++内存问题检查利器—Purify (四)
    C/C++内存问题检查利器—Purify (三)
    Oracle 字符集的查看和修改
    C/C++内存问题检查利器—Purify (二)
    linux内存管理之活动内存区
    C/C++内存问题检查利器—Purify (一)
    postman——基础操作——API请求与响应——API响应
    postman——基础操作——History选项卡
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5215227.html
Copyright © 2011-2022 走看看