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/ 选择hadoop-2.6.0.tar.gz这个二进制文件

安装之前首先考虑的是hadoop的版本问题,hadoop-1x和hadoop-2x其实完全是两个东西,生产环境下多采用hadoop1.2.1-这是一个稳定的版本。而hadoop-2x版本bug相对比较多。

其次hadoop2.6.0本地库文件是64位的,而hadoop2.4.0本地库是32位的。如果跟系统版本不匹配,运行hadoop例子时会出现:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable(这个错误也可能是其他原因导致的,我遇到的是其他原因,后面会说解决办法)

最后是hadoop的三种模式:单机、伪分布、全分布。全分布需要至少三个节点,因为我的笔记本电脑内存不大,所以最后只是搭建到伪分布模式。所以并没有创建hadoop用户组,也剩下了很多麻烦。以后搭建完全分布式再来补这个点,但是伪分布没有hadoop用户组,也能用。

另:碰到最多的麻烦就是权限问题了。

sudo chmod 777 {path}获取该路径下文件夹的最高权限

sudo chmod 777 {path}/* -R 获取该目录下所有文件最高权限

sudo nautilus 对文件夹随意操作,没有权限,偶尔使用!!

1.安装前准备

一、安装ssh
  安装命令sudo apt-get install openssh-server

  启动服务:sudo /etc/init.d/ssh start

  查看服务是否正确启动:ps -e | grep ssh

  设置免密码登录,生成私钥和公钥:ssh-keygen -t rsa -P ""此时会在/home/hadoop/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥。(.ssh文件是隐藏文件,可以设置显示隐藏文件让其显示出来)

  将公钥追加到authorized_keys中:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

  用ssh连接自己:ssh localhost。如果还是需要密码,则没有成功。

二、安装java jdk和设置环境变量    安装openjdk命令:sudo apt-get install openjdk-7-jdk  然而openjdk东西比较少,可以安装oraclejdk:(推荐安装Java-7-oracle)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

   最后通过:java -version查看是否安装成功,并显示java版本。

    查看JAVA_HOME位置:sudo update-alternatives --config java。我的结果是/usr/lib/jvm/java-7-oracle/bin/jre/java。配置环境变量只写到java-7-oracle。

    配置环境变量:

   命令:sudo gedit ~/.bashrc     (配置.bashrc文件,或者.profile文件)

   在文件末尾加入(第二行JAVA_HOME和第三行HADOOP_INSTALL安装路径改成自己的)

#HADOOP VARIABLES START

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

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 VARIABLES END

    使环境变量设置立即生效(重新注销或者重启都行):source ~/.bashrc

2.hadoop配置

    我的hadoop安装路径/usr/local/hadoop,下载的文件解压缩后的文件名改成了hadoop,hadoop配置文件放在{HADOOP安装路径}/etc/hadoop文件夹下:需要修改hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml五个文件。

   1.hadoop-env.sh文件,在末尾添加(第一行JAVA_HOME和第二行HADOOP_PREFIX(hadoop安装路径)改成自己的)

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export HADOOP_PREFIX=/usr/local/hadoop
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"

    注意第三行的HADOOP_OPTS,如果没有这一项运行会有:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable的错误提示。如果你是32位的系统,运行hadoop2.6.0还需要重新编译本地库。本地库路径为:{hadoop安装路径}/lib/natives。

  查看本地库版本命令:file /usr/loacl/hadoop/lib/native/libhadoop.so.1.0.0

  (32位)libhadoop.so.1.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

  (64位)libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

  查看系统位数:uname -a,如果有x86_64就是64位的,没有就是32位的。

  2.core-site.xml文件,在末尾<configuration></configuration>中间添加内容,最后:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.
</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

    其中前一部分的hadoop.tmp.dir参数官方教程里没有,如果没有配置临时文件会默认生成在:根目录/tmp/hadoop-hadoop中,但是重启系统后内容会重新删掉,会有意想不到的问题出现!!注意修改路径,并在该路径下新建tmp文件夹。

  3.mapred-site.xml是没有的,有一个mapred-site.xml.template文件将其改名为mapred-site.xml就好。同样在末尾<configuration></configuration>中间添加内容,最后:

<configuration>
 <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

  4.yarn-site.xml文件,在末尾<configuration><!-- Site specific YARN configuration properties --></configuration>添加内容,最后:

yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

  5.hdfs-site.xml文件,在末尾<configuration></configuration>中间添加内容,最后:

<configuration>
<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/dfs/data</value>
    </property>
</configuration>

  后面两个dfs.name.dir,dfs.datanode.data.dir参数官网教程没有(注意修改路径),并不必需新建dfs文件夹,会自动生成的。

3.hadoop运行

  • 格式化hdfs:/usr/local/hadoop$ bin/hdfs namenode -format.
/usr/local/hadoop$ bin/hdfs namenode -format.

当出现:INFO common.Storage: Storage directory /home/hadoop/tmp/dfs/name has been successfully formatted.表示成功。只需要格式化一次。

  • hadoop启动,执行:/usr/local/hadoop$ sbin/start-all.sh
/usr/local/hadoop$ sbin/start-all.sh

输入命令检测:jps。如果成功启动的话会有:jps,NameNode,DataNode,SecondaryNameNode,ResourceManager,NodeManager六个进程。并且查看NameNode-http://localhost:50070/,ResourceManager-http://localhost:8088/这两个网址是否能够打开

  • 创建MapReduce作业所需的HDFS目录:/usr/local/hadoop$ bin/hdfs dfs -mkdir /user;/usr/local/hadoop$ bin/hdfs dfs -mkdir /user/<usrname>(机器名)
/usr/local/hadoop$ bin/hdfs dfs -mkdir /user
/usr/local/hadoop$ bin/hdfs dfs -mkdir /user/<usrname>(机器名)

事实上HDFS目录中内容通过文件夹是看不到的,之后可以用eclipse通过hadoop插件很方便的查看和操作。

  • 运行一下例子:

(1)复制一些文件到HDFS目录/usr/<usrname>下:/usr/local/hadoop$ bin/hdfs dfs -put etc/hadoop input

/usr/local/hadoop$ bin/hdfs dfs -put etc/hadoop input

(2)运行:/usr/local/hadoop$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output ‘dfs[a-z.]+

/usr/local/hadoop$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output ‘dfs[a-z.]+ 

(3)输出结果从HDFS到本地文件output中(事先在HADOOP目录下新建output文件夹):/usr/local/hadoop$ bin/hdfs dfs -get output output

(4)从本地output文件夹查看结果:/usr/local/hadoop$ cat output/*

/usr/local/hadoop$ cat output/* 

或者直接在HDFS目录下直接查看:/usr/local/hadoop$ bin/hdfs dfs -cat output/*

/usr/local/hadoop$ bin/hdfs dfs -cat output/*
  • 关闭hadoop:/usr/local/hadoop$ bin/stop-all.sh
/usr/local/hadoop$ bin/stop-all.sh  

至此搭建完成。OVER!

时间: 2024-10-07 05:11:30

ubuntu14.04安装hadoop2.6.0(伪分布模式)的相关文章

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是否设置成功,输出了上面设置的路径表示成功:    

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/目

hadoop2.2.0伪分布模式64位安装

hadoop2.2.0伪分布模式64位安装用到的软件:jdk-6u45-linux-x64.bin,hadoop-2.2.0.x86_64.tar.gz 修改主机名vim /etc/sysconfig/networkHOSTNAME=h1 修改主机名和ip的映射关系192.168.1.1 h1 关闭防火墙chkconfig --list | grep iptablesservice iptables stopchkconfig iptables offchkconfig --list | gre

Ubuntu14.04下Hadoop2.2.0集群搭建

系统版本: master: Ubuntu 14.04  salve1: Ubuntu 14.04 hadoop: hadoop 2.2.0 1.系统配置以及安装SSH无密码登陆环境(master&slaves): 修改本机(master)和子节点(slaveN)机器名:打开/etc/hostname文件 sudo gedit /etc/hostname (修改后需重启才能生效) 修改host文件(映射各个节点IP): sudo gedit /etc/hosts 在后面添加内容为: 172.22.

Ubuntu14.04下hadoop-2.6.0单机配置和伪分布式配置

在Ubuntu下创建hadoop用户组和用户 hadoop的管理员最好就是以后要登录桌面环境运行eclipse的用户,否则后面会有拒绝读写的问题出现.当然不是也有办法办法解决. 1. 创建hadoop用户组; [html] view plaincopy sudo addgroup hadoop 2. 创建hadoop用户; [html] view plaincopy sudo adduser -ingroup hadoop hadoop 3. 给hadoop用户添加权限,打开/etc/sudoe

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

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

(转)Ubuntu14.0.4中hadoop2.4.0伪分布模式配置

一.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml 包含了hadoop启动时的配置信息. 编辑器中打开此文件 sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml 在该文件的<configuration></configuration>之间增加如下内容: <property> <name>fs.default.name</name

二、Ubuntu14.04下安装Hadoop2.4.0 (伪分布模式)

在Ubuntu14.04下安装Hadoop2.4.0 (单机模式)基础上配置 一.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml 包含了hadoop启动时的配置信息. 编辑器中打开此文件 sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml 在该文件的<configuration></configuration>之间增加如下内容: <property&g

一、Ubuntu14.04下安装Hadoop2.4.0 (单机模式)

一.在Ubuntu下创建hadoop组和hadoop用户 增加hadoop用户组,同时在该组里增加hadoop用户,后续在涉及到hadoop操作时,我们使用该用户. 1.创建hadoop用户组 2.创建hadoop用户 sudo adduser -ingroup hadoop hadoop 回车后会提示输入新的UNIX密码,这是新建用户hadoop的密码,输入回车即可. 如果不输入密码,回车后会重新提示输入密码,即密码不能为空. 最后确认信息是否正确,如果没问题,输入 Y,回车即可. 3.为ha