ubuntu14.04安装hadoop2.7.1伪分布式和错误解决

ubuntu14.04安装hadoop2.7.1伪分布式和错误解决
需要说明的是我下载的是源码,通过编译源码并安装
一、需要准备的软件:
1.JDK和GCC
    设置JAVA_HOME:
        vim ~/.bashrc
        在最后增加:export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_31,保存退出。
        使设置立即生效:source ~/.bashrc
        测试JAVA_HOME是否设置成功,输出了上面设置的路径表示成功:
        echo $JAVA_HOME
2.安装maven
    解压 tar -zxvf apache-maven-3.2.5-bin.tar.gz
    配置环境变量,编辑/etc/profile或者~/.bashrc文件
    export MAVEN_HOME=/opt/maven/current/bin
    export PATH=$PATH:$MAVEN_HOME/bin
    最后要source /etc/profile
    通过mvn --version来检查是否安装正常
3.安装protobuf
    解压 tar -zxvf protobuf-2.5.0.tar.gz
    进入protobuf-2.5.0目录,执行下面的命令
    ./configure
    make
    make check
    sudo make install
    可以通过protoc --version来查看是否安装正常
    如果失败,则:
    1. 将所有的用户需要用到的库放到/usr/loca/lib;
    2. 通过vi在/etc/ld.so.conf.d/目录下新建文件usr-libs.conf,内容是:/usr/local/lib
    3. #sudo ldconfig
4.安装cmake
    解压 tar -zxvf cmake-3.4.0.tar.gz
    进入cmake-3.4.0目录,执行下面的命令
    ./bootstrap
    make
    sudo make install
    可以通过cmake --version来查看是否安装正常
5.安装autotool
    sudo apt-get install autoconf automake libtool
6.配置ssh免密码登录
    安装ssh server:
    sudo apt-get install openssh-server
    cd ~/.ssh/                         # 若没有该目录,请先执行一次ssh localhost
    ssh-keygen -t rsa              # 会有提示,都按回车就可以
    cat id_rsa.pub >> authorized_keys  # 加入授权
    使用ssh localhost试试能否直接登录

二、编译haodoop:
1.下载源码包hadoop-2.7.1-src.tar.gz并解压
    tar -zxvf hadoop-2.7.1-src.tar.gz
2.进入hadoop-2.7.1-src目录,执行
    mvn clean package -Pdist,native -DskipTests -Dtar
3. 在编译的过程中遇到了缺少库的错误,所以就需要先安装缺少的库
    比如错误信息:
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin
    apt-get install libglib2.0-dev
    apt-get install libssl-dev
    如果在编译过程中还报类似错,请自行通过类似方式去网上找。
    接下来就是漫长的等待,当你看到一系列的SUCCESS之后,你就成功了。
4.编译好的hadoop-2.7.1.tar.gz在hadoop-2.7.1-src木目录下的hadoop-dist/target/的目录中,接下来就可以安装了。

5.安装Hadoop2.7.1
    将第四步编译好的目标文件copy到/opt/hadoop/hadoop_2_7_1_64
    命令:
    sudo cp -r hadoop-dist/target/hadoop-2.7.1 /opt/hadoop/hadoop_2_7_1_64
    然后建立软链接
    sudo ln -s /opt/hadoop/hadoop_2_7_1_64 current
    
6.配置环境变量
        vim ~/.bashrc
    #HADOOP VARIABLES START
    export HADOOP_INSTALL=/opt/hadoop/current
    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/native"
    #HADOOP VARIABLES END

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_31
    export JRE_HOME=${JAVA_HOME}/jre
    export MAVEN_HOME=/opt/maven/current/bin
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$HIVE_HOME/lib:$CLASSPATH
    export PATH=${PATH}:${JAVA_HOVE}/bin:$JRE_HOME/bin:$MAVEN_HOME:$HADOOP_INSTALL/bin
    使设置立即生效:source ~/.bashrc
    检查是否安装成功,执行命令,如果出现命令帮助表示成功:hdfs

7.配置伪分布式

切换至配置文件目录:  cd /opt/hadoop/current/etc/hadoop
    配置 core-site.xml,执行命令:vim core-site.xml。将文件中的<configuration></configuration>替换为:
        <configuration>
            <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/opt/hadoop/current/tmp</value>
                <description>Abase for other temporary directories.</description>
            </property>
            <property>
                <name>fs.defaultFS</name>
                <value>hdfs://localhost:9000</value>
            </property>
        </configuration>
    配置 hdfs-site.xml,执行命令:vim hdfs-site.xml,修改为:
        <configuration>
            <property>
                <name>dfs.replication</name>
                <value>1</value>
            </property>
            <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/opt/hadoop/current/tmp/dfs/name</value>
            </property>
            <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/current/tmp/dfs/data</value>
            </property>
        </configuration>

关于Hadoop配置项的一点说明:
    虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

配置yarn-site.xml,执行命令:vim yarn-site.xml,修改为:
        <configuration>
          <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
          </property>
          <property>
          <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
          <value>org.apache.hadoop.mapred.ShuffleHandler</value>
          </property>
        </configuration>
    配置mapred-site.xml
        从模板文件复制一个xml,执行命令:mv mapred-site.xml.template mapred-site.xml
        执行命令:vim mapred-site.xml
        将文件修改为

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

配置完成后,执行格式化:hdfs namenode -format。倒数第五行出现Exitting with status 0 表示成功,若为 Exitting with status 1 则是出错。
    如果在这里还出错,很有可能是缺少什么库导致的。
8.运行
    在运行所有服务之前请先运行命令:
    hdfs namenode -format error
    WARN namenode.NameNode: Encountered exception during format:
    java.io.IOException: Cannot create directory /usr/local/hd/dfs/name/current
    java.io.IOException: Cannot create directory /usr/local/hd/dfs/name/current
    此错误表示hadoop文件用户权限不够,需要修改:
    sudo chown coco:coco -R hadoop
    最后启动hadoop所有的进程:
    sh sbin/start-all.sh
    查看各个进程是否正常启动,执行:jps。如果一切正常,将看到下列结果:
    11010 SecondaryNameNode
    10596 NameNode
    11349 NodeManager
    10777 DataNode
    10442 Jps

PS:如果你在本机使用了oh-my-zsh这个命令,则有可能会遇到下面的问题
问题一:
?  ~  source ~/.bashrc
/etc/bashrc:37: command not found: shopt
/etc/bashrc:fc:38: event not found: -a
/etc/bashrc:40: command not found: shopt
/etc/bashrc:51: command not found: shopt

因为zsh的环境变量需要配置在~/.zshrc中,不再是~/.bashrc,所以你可以在相同的环境变量配置复制到~/.zshrc文件中,
source ~/.zshrc文件
------------------------------------------------------
问题二:
15/11/27 10:55:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
无法加载本地库
可以先用命令查看状态:
hadoop checknative –a

结果发现全是false,那么请检查环境变量配置文件里面的如下两项配置,是否添加了native:
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"
如果没有请添加上,然后再运行hadoop checknative -a命令:
结果会如下:
-> % hadoop checknative -a
15/11/30 11:24:38 WARN bzip2.Bzip2Factory: Failed to load/initialize native-bzip2 library system-native, will use pure-Java version
15/11/30 11:24:38 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop:  true /opt/hadoop/hadoop_2_7_1_64/lib/native/libhadoop.so.1.0.0
zlib:    true /lib/x86_64-linux-gnu/libz.so.1
snappy:  false
lz4:     true revision:99
bzip2:   false
openssl: true /usr/lib/x86_64-linux-gnu/libcrypto.so
15/11/30 11:24:38 INFO util.ExitUtil: Exiting with status 1
到这里还是有两个false,其实snappy,bzip2,lz4,zlib都是压缩库,所以有两个为true,另外两个为false也没有太大的影响了。
问题三:
要注意安装的hadoop所属的用户和用户组与你本机的权限问题。
可以将其修改为本机常用用户和用户组,命令:
sudo chown coco:coco -R hadoop
问题四:
运行hadoop fs -ls时提示
ls: `.\\\‘: No such file or directory
此时,需要先建立目录
hadoop fs -mkdir /user
再运行hadoop fs -ls /
-> % hadoop fs -ls /
Found 1 items
drwxr-xr-x   - coco supergroup          0 2015-11-30 10:38 /user

到此就结束了安装全部过程。

时间: 2024-08-01 22:31:12

ubuntu14.04安装hadoop2.7.1伪分布式和错误解决的相关文章

ubuntu安装hadoop2.x(伪分布式)

接上篇:ubuntu安装hadoop1.x(伪分布式) 1.x和2.x在安装上差异不大,就是程序目录不大一样. hadoop1.x和2.x部分对应关系     1.x 2.x core-site.xml ${HADOOP_HOME}/conf/core-site.xml ${HADOOP_HOME}/etc/hadoop/core-site.xml hdfs-site.xml ${HADOOP_HOME}/conf/hdfs-site.xml ${HADOOP_HOME}/etc/hadoop/

ubuntu14.04安装hadoop2.6.0(伪分布模式)

版本:虚拟机下安装的ubuntu14.04(x64),hadoop-2.6.0 下面是hadoop2.6.0的官方教程(英文): http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation hadoop下载地址: http://mirror.bit.edu.cn/apache/hadoop/common/ 选择hadoo

Ubuntu14.04安装Hadoop2.5.2(单机模式)

一.Hadoop的运行模式 单机模式(standalone) 单机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置.在这种默认模式下所有3个XML文件均为空.当配置文件为空时,Hadoop会完全运行在本地.因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程.该模式主要用于开发调试MapReduce程序的应用逻辑. 伪分布模式(Pseudo-Distributed Mode) 伪分布模式在"

64位Ubuntu14.04安装hadoop2.6.0

在前文中,编译hadoop 是我们几乎已经配置好了jdk环境 这一文是在上文的基础上继续配置 1.将编译好的源码中的一些文件复制到我们所下载的hadoop/lib/native下替换掉 主要是因为下载的hadoop文件是在32位系统下编译的,而本人的是64位系统 2.配置ssh无密码登陆 ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式. 1. 创建ssh-key,,这里我们采用rsa方式; ssh-keygen -t rsa -P "" 2. 进入~/.ssh/目

Ubuntu14.04安装build-essential失败,包依赖问题如何解决?

正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装.如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的.该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到(Incoming)目录移出. 下列信息可能会对解决问题有所帮助: 下列软件包有未满足的依赖关系: build-essential : 依赖: libc6-dev 但是它将不会被安装 或 libc-dev 依赖: gcc (>= 4:4

64bit ubuntu14.04编译PlatinumKit出现的arm-linux-androideabi-g++: not found错误解决方法

编译命令:scons target=arm-android-linux build_config=Release 出现错误: scons: Reading SConscript files ...********** Configuring Build Target = arm-android-linux / Release ********Building for Android: ANDROID_HOST_SYSTEM = linux-x86ANDROID_TOOLCHAIN   = arm

Ubuntu14.04 安装配置Hadoop2.6.0

目前关于Hadoop的安装配置教程书上.官方教程.博客都有很多,但由于对Linux环境的不熟悉以及各种教程或多或少有这样那样的坑,很容易导致折腾许久都安装不成功(本人就是受害人之一).经过几天不断尝试,终于成功了.现将整个关于Hadoop的安装配置步骤分享出来,一方面为了希望能对有需要的朋友有所帮助,一方面为了总结所遇到的问题和解决方案.接下来开始正文. 准备工作 提前下载好以下工具: JDK安装包 Eclipse安装包 Hadoop安装包 Eclipse的Hadoop插件插件 本人用的JDK版

Ubuntu16.04 下 hadoop的安装与配置(伪分布式环境)

注:本文有参考 这篇文章 ,但因其中有部分错误,所以在实际操作中遇到了很大的困扰,于是写成了这篇文章供大家使用 一.准备 1.1创建hadoop用户 $ sudo useradd -m hadoop -s /bin/bash #创建hadoop用户,并使用/bin/bash作为shell $ sudo passwd hadoop #为hadoop用户设置密码,之后需要连续输入两次密码 $ sudo adduser hadoop sudo #为hadoop用户增加管理员权限 $ su - hado

Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0

Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0 环境 本教程使用 CentOS 6.4 32位 作为系统环境,请自行安装系统.如果用的是 Ubuntu 系统,请查看相应的 Ubuntu安装Hadoop教程. 本教程基于原生 Hadoop 2,在 Hadoop 2.6.0 (stable) 版本下验证通过,可适合任何 Hadoop 2.x.y 版本,例如 Hadoop 2.7.1, Hadoop 2.4.1等. Hadoop版本 Hadoop 有两个主要版本,