Hadoop2.3.0伪分布式安装笔记

Hadoop2.3.0伪分布式安装笔记

安装环境:ubuntu 13.10, jdk1.7.0_51, hadoop 2.3.0

 

一、在ubuntu下安装jdk

linux下的java有两种,一种是openjdk另外一种是sun java。因为一些原因,Oracle Java 无法从 Ubuntu 的软件库中取得,取而代之的是 OpenJDK,不过 OpenJDK 在运行某些程序时会出现问题所以最好还是安装Oracle Java.

  1. 先去 Oracle下载Linux下的JDK压缩包,http://www.oracle.com/technetwork/java/javase/downloads/index.html,下好后直接解压。

  2. 进入在存放jdk文件夹的当前目录,将解压好的jdk1.7.0_10文件夹用最高权限复移动到/usr/lib/jvm目录里,此时即使没有jvm目录也可以执行如下命令,jvm文件夹将得到创建。

    sudo mv jdk1.7.0_10 /usr/lib/jvm/
  3. 接下来需要设置环境变量,修改/etc/profile配置文件
    sudo gedit /etc/profile
     在末尾加上:
    export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_10
    export JRE_HOME=/usr/lib/jvm/jdk1.7.0_10/jre 
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$PATH
    然后保存关闭,此时在命令行输入java -version将会仍然显示java没有安装。此时,需要使用source更新下/etc/profile文件:
    source /etc/profile
  4. 使用java -version命令可以看到如下输出:

    kk@kk-Dell-System-Inspiron-N4110:~$ java -version
    java version "1.7.0_51"
    Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
     到此,已经将oracle jdk配置完成。
     如果之前系统里面已经安装了openjdk,可以使用如下方法将默认jdk更改过来:
  5. 将系统默认的jdk修改过来:

    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_10/bin/java 300
    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_10/bin/javac 300
    sudo update-alternatives --config java 
    sudo update-alternatives --config javac
     至此jdk的安装已经完成

二、建立ssh无密码登陆本机

      由于启动与停止hadoop时需要多次输入密码登录本机与hadoop的master,所以需要建立ssh无密码登陆,减少不必要的操作。

  1. 安装openssh-server:

    sudo apt-getinstall ssh openssh-server 
  2. 在Master节点上执行以下命令:

    ssh-keygen –t rsa –P ''
     这条命令是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/username/.ssh"目录下。
  3. 在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。

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

在验证前,需要做两件事儿。第一件事儿是修改文件"authorized_keys"权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。使其无密码登录有效。

  1. 修改文件"authorized_keys"权限

    chmod 600 ~/.ssh/authorized_keys
     备注:如果不进行设置,在验证时,扔会提示你输入密码。
  2. 修改ssh配置文件

    用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容:

    sudo gedit /etc/ssh/sshd_config
    RSAAuthentication yes # 启用 RSA 认证
    PubkeyAuthentication yes # 启用公钥私钥配对认证方式
    AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同) 
  3. 重启ssh服务使刚才设置生效

    service sshd restart 
  4. 退出root登录,使用普通用户验证ssh无密码登陆是否成功

    ssh localhost
     注:成功的标志为,ssh localhost不需要输入密码,而且后面启动与停止hadoop时也不需要输入密码

三、安装hadoop

安装准备

  1. 先到官网(http://mirrors.cnnic.cn/apache/hadoop/common/)下载hadoop的压缩包,将它复制到安装目录 /usr/local/下

    sudo cp hadoop-2.3.0.tar.gz /usr/local/ 
  2. 解压hadoop-2.3.0 .tar.gz

    cd /usr/local
    sudo tar -zxf hadoop-2.3.0 .tar.gz 
  3. 将解压出的文件夹改名为hadoop

    sudo mv hadoop- 2.3.0 hadoop 
  4. 将该hadoop文件夹的属主用户设为当前用户

    sudo chown -R username:usergroup hadoop
     其中username为当前用户名,usergroup为当前用户所在的组,若为主用户,则usergroup应为root
  5. 将hadoop添加到系统环境变量

    sudo gedit /etc/profile
     在最后添加:
    export HADOOP_HOME=/usr/local/hadoop 
    export HADOOP_INSTALL=$HADOOP_HOME
    export PATH=$PATH:$HADOOP_HOME/bin 
    export PATH=$PATH:$HADOOP_HOME/sbin 
    export HADOOP_MAPRED_HOME=$HADOOP_HOME 
    export HADOOP_COMMON_HOME=$HADOOP_HOME 
    export HADOOP_HDFS_HOME=$HADOOP_HOME 
    export YARN_HOME=$HADOOP_HOME 
     保存并退出。
  6. 更新环境变量

    source /etc/profile 

修改hadoop配置文件

  1. 在根目录下创建三个目录:
    mkdir ~/dfs/
    mkdir ~/dfs/name
    mkdir ~/dfs/data
    mkdir ~/temp 
  2. 修改etc/hadoop目录下配置7个文件

    $HADPP_HOME/etc/hadoop/core-site.xml
    $HADPP_HOME/etc/hadoop/hadoop-env.sh
    $HADPP_HOME/etc/hadoop/hdfs-site.xml
    $HADPP_HOME/etc/hadoop/mapred-site.xml
    $HADPP_HOME/etc/hadoop/slaves
    $HADPP_HOME/etc/hadoop/yarn-env.sh
    $HADPP_HOME/etc/hadoop/yarn-site.xml
     以上个别文件默认不存在的,可以复制相应的template文件获得。

     比如:sudo cp yarn-site.xml.template yarn-site.xml

    配置文件1:hadoop-env.sh
    修改JAVA_HOME值(export JAVA_HOME=/usr/java/jvm/jdk1.7.0_10)
    ********以上JAVA_HOME为相应的jdk安装目录**********
    配置文件2:yarn-env.sh
    修改JAVA_HOME值(exportJAVA_HOME=/usr/java/jdk1.7.0_40)
    ********以上JAVA_HOME为相应的jdk安装目录**********
    配置文件3:slaves (这个文件里面保存所有slave节点)
    添加以下内容:(为数据节点服务器相应的hostname,localhost保留)
    n1
    n2
    添加以后该文件有三行,即:
    localhost
    n1
    n2
    配置文件4:core-site.xml 在<configuration>节点中间添加下面的内容
    <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
    </property>
    <property>
    <name>hadoop.tem.dir</name>
    <value>file:/home/hduser/temp</value>
    </property>
    配置文件5:hdfs-site.xml 在<configuration>节点中间添加下面的内容
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/kk/dfs/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/kk/dfs/data</value>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    ********以上文件路径为之前在根目录下创建的路径**********
    配置文件6:mapred-site.xml 在<configuration>节点中间添加下面的内容
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
    </property>
    <property>
    <name>mapred.remote.os</name>
    <value>Linux</value>
    <description>
    Remote MapReduce framework's OS, can be either Linux or Windows
    </description>
    </property>
    <property>
    <name>mapreduce.application.classpath</name>
    <value>$HADOOP_CONF_DIR,
    $HADOOP_COMMON_HOME/share/hadoop/common/*,
    $HADOOP_COMMON_HOME/share/hadoop/common/lib/*,
    $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,
    $HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,
    $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*,
    $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*,
    $HADOOP_YARN_HOME/share/hadoop/yarn/*,
    $HADOOP_YARN_HOME/share/hadoop/yarn/lib/*
    </value>
    </property>
    配置文件7: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>
    <property>
    <name>yarn.application.classpath</name>
    <value>
    $HADOOP_HOME/etc/hadoop,
    $HADOOP_COMMON_HOME/share/hadoop/common/*,
    $HADOOP_COMMON_HOME/share/hadoop/common/lib/*,
    $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,
    $HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,
    $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*,
    $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*,
    $HADOOP_YARN_HOME/share/hadoop/yarn/*,
    $HADOOP_YARN_HOME/share/hadoop/yarn/lib/*
    </value>
    </property>

在单机模式下运行hadoop

  1. 进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作

    cd /usr/local/hadoop/
    bin/hadoop namenode -format
     之后每次对hadoop配置文件进行修改后必须再次格式化hdfs文件系统,否则会报错。
     再次格式化hdfs文件系统的步骤:备份hdfs文件系统,删除配置文件中hdfs-site.xml中name.dir与data.dir目录下的所有文件,格式化hdfs文件系统,回复hdfs数据。
  2. 启动hadoop

    sbin/start-all.sh
      也可按推荐使用以下命令启动
    sbin/start-hdfs.sh
    sbin/start-yarn.sh
  3. 通过浏览器查看hadoop运行状态

    http://localhost:50070/

     
    http://localhost:8088/

     

猜你喜欢

转载自kkmonkey.iteye.com/blog/2062383