zoukankan      html  css  js  c++  java
  • Hadoop 初体验

    Hadoop 是一个基于谷歌发表的几篇论文而开发的一个分布式系统基础架构,用户可在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop现在已经成了大数据的代名词。也就是说,现在如果要处理大数据,Hadoop是首要选择。所以学好Hadoop是非常实用的。

    Hadoop 目前大的版本分为1和2,对于初学者来说,先学习 Hadoop 1.x 比较容易上手,相比 2.x会简单不少。

    环境

    Ubuntu 16.04

    openjdk-8

    Hadoop-1.2.1

    安装

    由于 Hadoop 是用 Java 开发的,所以要依赖 JDK,首先要安装 JDK,并配置JDK的环境变量。

    安装 Java 命令:

    sudo apt-get install openjdk-8-jdk

    如果出现一下错误:

    E: 软件包 sun-java6-jre 没有可供安装的候选者

    则执行一下命令:

    sudo add-apt-repository ppa:openjdk-r/ppa

    sudo apt-get update

    之后再执行安装命令。

    JDK 安装完成后需要配置环境变量,编辑/etc/profile,加入一下内容:

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-i386
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH

    安装Hadoop。

    下载 Hadoop 的安装包 hadoop-1.2.1.tar.gz,解压后放到/opt/目录下

    接着是对 Hadoop 配置:

     hadoop-env.sh

    修改JAVA_HOME 的路径

    core-site.xml

    初始是空文件,加入以下内容:

    <property>
    <name>hadoop.tmp.dir</name>
    <value>/hadoop</value>
    </property>


    <property>
    <name>dfs.name.dir</name>
    <value>/hadoop/name</value>
    </property>


    <property>
    <name>fs.default.name</name>
    <value>hdfs://tang:9000</value>
    </property>

    hdfs-site.xml

    加入以下内容:

    <property>
    <name>dfs.data.dir</name>
    <value>/hadoop/data</value>
    </property>

    mapred-site.xml 

    加入以下内容:

    <property>
    <name>mapred.job.tracker</name>
    <value>tang:9001</value>
    </property>

    配置好后,加入 Hadoop 的环境变量

    export HADOOP_HOME=/opt/hadoop-1.2.1

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

    执行 source /etc/profile 让配置的环境变量立即生效。

    输入 hadoop 看到 hadoop 的参数说明,表明配置成功了。

    接着切换到 hadoop/bin 下,执行 hadoop namenode -format 进行格式化,如果出现以下错误:

    hadoop java.io.IOException: while running namenode -format

    12/07/03 17:03:56 ERROR namenode.NameNode: java.io.IOException: Cannot create directory /your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current

    需要检查一下刚才在几个配置文件中定义的路径是否存在、当前用户是否有权限访问。

    格式化成功后,切换到/hadoop/bin下,执行 start-all.sh

    如果出现以下错误:

    ssh: connect to host localhost port 22: Connection refused
    可能的原因是ssh server没装,查看方法:

    ps -e |grep ssh

    如果没有sshd,说明还没有安装ssh server

    解决方案:

    sudo apt-get install openssh-server
    接着再运行start-all.sh就可以了。

    再运行 jfs,观察以下几个内容是否存在。

    3542 TaskTracker
    3334 SecondaryNameNode
    4058 Jps
    3931 JobTracker
    3677 NameNode
    3182 DataNode

    如果都存在,表明hadoop启动成功。

    运行 hadoop fs -ls / 时,出现以下错误:

    14/07/29 13:25:35 INFO ipc.Client: Retrying connect to server: centhost.centdomain/10.110.30.30:9000. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)

    原因是没有启动 hadoop,切换到$HADOOP_HOME/bin 下,运行 start-all.sh即可。

    出现以下错误

    s: unknown host: tang

    检查一下 /etc/hosts、 /etc/hostname 下是否存在该主机。

    运行 jps 时没有出现datanode,可能的原因是:

    当前用户是否有配置文件中指定的文件夹打操作权限。

  • 相关阅读:
    调试JavaScript错误的有效方法 利用firebug
    让网站支持RSS订阅
    解决通过Cookie进行网站自动登录的安全性问题
    TinyMce编辑器的简体中文和字体太小补丁
    CSS: 简单行列用table还是dl,dt,dd?
    让tinyMce输出<pre>标签html代码自动换行
    云计算产生的背景
    云的一二三四五
    未绑定元素“mx:Panel”的前缀“mx”
    windows下如何下载android源码
  • 原文地址:https://www.cnblogs.com/ivantang/p/6845188.html
Copyright © 2011-2022 走看看