zoukankan      html  css  js  c++  java
  • [zz]Ubuntu Hadoop HDFS 配置

    什么是Hadoop?

    Apache Hadoop 是一个用java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,它可以让应用程序支持上千个节点和PB级别的数据。 Hadoop是从google MapReduce和Google文件系统的论文获得的灵感。Hadoop是Apache的一线项目,开发和实用来自世界各地的社区,Yahoo!是目前 为止最大的贡献者,并且Yahoo广泛使用它在搜索业务和广告业务上。IBM和Google的联合就是使用的Hadoop,为大学的课程提供分布式计算。 Hadoop的创始人是Doug Cutting(目前在yahoo工作),关于hadoop的命名,是Doug Cutting在它儿子画图时画了一只大象而获得的灵感。其实Doug Cutting最初的目的是想为Nutch搜索引擎提供分布式。

    hadoop有三个子项目:Hadoop core,HBase, Zookeeper.

    • hadoop core,提供分布式文件系统HDFS,支持MapReduce分布式计算,组建
      大型集群。Hadoop框架中最核心设计就是:MapReduce和HDFS。MapReduce的思
      想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就
      是任务的分解与结果的汇总。HDFS是Hadoop分布式文件系统的缩写,为分布式计算
      存储提供了底层支持。
    • HBase,类似Google的BigTable,是hadoop的数据库。
      HBase使用和Bigtable非常相同的数据模型.用户存储数据行在一个表里.一个
      数据行拥有一个可选择的键和任意数量的列.表是疏松的存储的,因此用户可以给行定
      义各种不同的列。
    • Zookeeper,高可用和具有可靠的协调机制,分布式应用使用它来存储和协调。

    HDFS安装需求

    JavaTM 1.6.x, 官方推荐Sun JDK,OpenJDK也是可以的。SSH,需要通过ssh调用其他节点机器。
    本文安装系统为Ubuntu Server 10.04。192.168.1.171为Master,192.168.1.175为Slave。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    # ssh, rsync
    sudo apt-get install ssh rsync
     
    # openjdk,也可以是sun jdk
    sudo apt-get install openjdk-6-jdk openjdk-6-jre
     
    # hadoop 稳定版下载地址
    # http://mirror.bjtu.edu.cn/apache/hadoop/core/stable/
    wget  "http://mirror.bjtu.edu.cn/apache/hadoop/core/stable/hadoop-0.20.2.tar.gz"
     
    # cd /your_dir, and untar
    tar zxvf hadoop-0.20.2.tar.gz
     
     
    # 解压后,修改conf/hadoop-env.sh,设置JAVA_HOME为java安装目录
    # jdk安装目录 /usr/lib/jvm/java-1.6.0-openjdk
    # 
    vim conf/hadoop-env.sh
    # 修改为 export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk
    # !!!这步灰常重要,否则java程序就跑不起来鸟。。。。
     
    # 设置全局变量,可选
    vim /etc/environment
    # 添加下面两行
    # JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk/
    # CLASSPATH=.:$JAVA_HOME/lib

    如果你不打算采用open-jdk,可以按照下面步骤安装sun-jdk。Ubuntu后期版本均采用open-jdk,所以需要添加额外的源来安装sun版的。

    1
    2
    3
    4
    5
    6
    7
    
    sudo vim /etc/apt/sources.list 
    # 在最后 添加一行:
    # deb http://archive.canonical.com/ lucid partner 
     
    # 安装sun jre, jdk
    sudo apt-get update
    sudo apt-get install sun-java6-jre  sun-java6-jdk

    设置/etc/hosts

    1
    2
    3
    4
    5
    
    # 编辑/etc/hosts
    vim /etc/hosts
    # 添加
    # 192.168.1.171   hadoop-m171
    # 192.168.1.175   hadoop-s175

    配置SSH认证,实现免密码登陆

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    # 在Master主节点,这里是171. 设置ssh密钥,这样就可以免密码登陆其他Slaves节点了
    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
     
    # ssh 测试一下
    ssh hadoop-m171
    # 如果依然需要输入密码,请检查。注意运行用户,您可以全部采用root。
     
    # 其他slaves机器,把~/.ssh/id_dsa.pub scp拷贝过去
    scp ~/.ssh/id_dsa.pub root@192.168.1.175:/tmp/
     
    # !!下面这句在slaves上执行!!
    cat /tmp/id_dsa.pub >> ~/.ssh/authorized_keys
     
    # 一定要测试一下,否则就无法启动slaves节点hadoop了。。。
    ssh hadoop-s175

    设置主从节点信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    # 主节点
    vim conf/master
    # 添加内容
    # hadoop-m171
     
    # 从节点
    vim conf/slaves
    # 添加内容
    # hadoop-s175

    编辑 conf/core-site.xml,内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    <configuration>
         <property>
             <name>fs.default.name</name>
             <value>hdfs://hadoop-m171:9010</value>
             <!-- 这里我修改为9010了,因为端口9000被php-fastcgi占了 -->
         </property>
         <property>
              <name>hadoop.tmp.dir</name>
              <value>/d1/hadoopdata</value>
              <description>A base for other temporary directories.</description>
         </property>
    </configuration>

    编辑 cconf/mapred-site.xml,内容如下:

    1
    2
    3
    4
    5
    6
    
    <configuration>
         <property>
             <name>mapred.job.tracker</name>
             <value>hadoop-m171:9001</value>
         </property>
    </configuration>

    编辑 cconf/mapred-site.xml,内容如下:

    1
    2
    3
    4
    5
    6
    
    <configuration>
         <property>
             <name>dfs.replication</name>
             <value>1</value>
         </property>
    </configuration>

    拷贝hadoop文件到slave上去

    1
    2
    
    # 拷贝hadoop文件到slave上去
    scp -r hadoop-0.20.2 root@192.168.1.175:/d1/hadoop

    Master设置完毕。下面去slave

    1
    2
    3
    4
    5
    
    # 安装ssh,java等
    sudo apt-get install ssh rsync  openjdk-6-jdk openjdk-6-jre
     
    # 设置/etc/hosts,和master一样,自行参考
    # 。。。省略了。。。

    最后的步骤

    1
    2
    3
    4
    5
    6
    7
    8
    
    # 格式化namenode
    bin/hadoop namenode -format
     
    # 启动
    bin/start-all.sh
     
    # 关闭
    # bin/stop-all.sh

    启动后,查看具体状态
    NameNode – http://192.168.1.171:50070/
    JobTracker – http://192.168.1.171:50030/

    遇到安装错误,切记心平气和,否则你废上一天也配不起来的,哈哈,开个玩笑。。。一般是datanode容易跑不起来,报“ 。。INFO org.apache.hadoop.ipc.Client: Retrying connect to server: 。。。”之类的错误。去查看日志吧,检查一下配置,就能起来了。日志在logs目录下,也可以通过http://192.168.1.171:50030 /logs/查看。

    祝你成功,Good Luck~~

    来张截图:

    其他语言的API,是通过一个叫做thrift的东东来完成的。
    Hadoop Distributed File System (HDFS) APIs in perl, python, ruby and php
    See: http://wiki.apache.org/hadoop/HDFS-APIs

    Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml.
    See: http://incubator.apache.org/thrift/

    更多请参考官方站点: http://hadoop.apache.org/common/

  • 相关阅读:
    操作系统,,,也考完了【流坑】
    认真地搭建python开发环境
    NumPy 上手一个例子 vectorsum.py
    数字图像处理、、考完了
    Intel系列CPU的流水线技术的发展
    JSON序列化为实体对象
    一个丝滑的全屏滑动返回手势
    Swift项目兼容Objective-C问题汇总
    OC 九宫格布局
    SDWebImage 新版接口使用方法
  • 原文地址:https://www.cnblogs.com/zhangzhang/p/2404403.html
Copyright © 2011-2022 走看看