zoukankan      html  css  js  c++  java
  • 搭建hadoop单机模式

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

    用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    [1]  Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFSHDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relaxPOSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

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

    Hadoop集群有三种启动模式:

    • 单机模式:默认情况下运行为一个单独机器上的独立Java进程,主要用于调试环境
    • 伪分布模式:在单个机器上模拟成分布式多节点环境,每一个Hadoop守护进程都作为一个独立的Java进程运行
    • 完全分布式模式:真实的生产环境,搭建在完全分布式的集群环境
    • 注意:在此所运用的操作系统为linux-ubuntu

                        Hadoop单机模式安装

    一、用户和用户组

    首先添加hadoop用户和用户组,用户和用户组用来运行hadoop

    $sudo adduser hadoop #添加用户组

    $sudo usermod -G sudo hadoop #添加hadoop的sudo权限

    二、 安装相关配置的包

    Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具,是一个客户/服务器系统。

    工作原理编辑

    APT是一个客户/服务器系统。在服务器上先复制所有DEB包(DEB是Debian软件包格式的文件扩展名),然后用APT的分析工具(genbasedir)根据每个DEB 包的包头(Header)信息对所有的DEB包进行分析,并将该分析结果记录在一个文件中,这个文件称为DEB 索引清单,APT服务器的DEB索引清单置于base文件夹内。一旦APT 服务器内的DEB有所变动,一定要使用genbasedir产生新的DEB索引清单。客户端在进行安装或升级时先要查询DEB索引清单,从而可以获知所有具有依赖关系的软件包,并一同下载到客户端以便安装。

    当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压缩文件后,会将其解压置放于/var/state/apt/lists/,而客户端使用apt-get install或apt-get upgrade命令的时候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库比对,知道哪些DEB已安装、未安装或是可以升级的。

    $ sudo apt-get update #更新源

    $ sudo apt-get install openssh-server rsync #安装ssh服务

    $ sudo service ssh restart

    $ sudo apt-get install openjdk-7-jdk #安装jdk

    $ java -version

    配置ssh免密码登录

    $ su -l hadoop #切换到hadoop用户

    配置ssh环境免密码登录。

    $ ssh-keygen -t rsa -P ""

    在/home/hadoop/.ssh目录下生成了id_rsa(私钥)和id_rsa.pub(公钥)两个文件,将公钥追加到authorized_keys中,该文件保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容。

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

    $ ssh localhost #验证登录本机是否还需要密码

    三、下载并安装hadoop

    $ wget http://labfile.oss.aliyuncs.com/hadoop-2.6.0.tar.gz #下载Hadoop

    $ tar zxvf hadoop-2.6.0.tar.gz

    $ sudo mv hadoop-2.6.0 /usr/local/hadoop

    $ sudo chmod 774 /usr/local/Hadoop

    配置Hadoop

    Sudo apt-get install vim

    $ vim /home/hadoop/.bashrc

    在/home/hadoop/.bashrc文件末尾添加下列内容:

    #HADOOP START

    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

    export HADOOP_INSTALL=/usr/local/hadoop

    export PATH=$PATH:$HADOOP_INSTALL/bin

    export PATH=$PATH:$HADOOP_INSTALL/sbin

    export HADOOP_MAPRED_HOME=$HADOOP_INSTALL

    export HADOOP_COMMON_HOME=$HADOOP_INSTALL

    export HADOOP_HDFS_HOME=$HADOOP_INSTALL

    export YARN_HOME=$HADOOP_INSTALL

    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native

    export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"

    #HADOOP END

    保存退出后,激活新加的环境变量

    $ source ~/.bashrc

    四、测试单机模式

    创建输入的数据,暂时采用/etc/protocols文件作为测试

    $ cd /usr/local/hadoop

    $ sudo mkdir input

    $ sudo cp /etc/protocols ./input

    执行Hadoop WordCount应用(词频统计)

    $ bin/Hadoop jar

    share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.6.0-sources.jar org.apache.hadoop.examples.WordCount input output

    查看生成的单词统计数据

    $ cat output/*

  • 相关阅读:
    SQL 代码片段
    SQL
    Python List
    python_enumerate用法
    HashMap记录
    Brute Force(暴力算法)
    python解析html文件,提取标签中一个元素
    每五分钟统计一次数据
    grep
    expect
  • 原文地址:https://www.cnblogs.com/guotingting/p/7636827.html
Copyright © 2011-2022 走看看