美文网首页大数据,机器学习,人工智能
Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.4

Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.4

作者: Clannad_汐 | 来源:发表于2017-08-04 02:26 被阅读0次

    简介

    本教程适合于原生 Hadoop 2,包括 Hadoop 2.6.4, Hadoop 2.7.1 等版本,看了很多资料,自己搭建了好几次,特做个总结,按照步骤来都能成功。

    环境

    本教程使用 Ubuntu 16.04 64位 作为系统环境(Ubuntu 14.04,12.04 也行,32位、64位均可),请自行安装系统。

    装好了 Ubuntu 系统之后,在安装 Hadoop 前还需要做一些必备工作。

    创建hadoop用户

    如果你安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。

    • 创建可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。
    $ sudo useradd -m hadoop -s /bin/bash
    
    • 接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:
    $ sudo passwd hadoop
    
    • 为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:
    $ sudo adduser hadoop sudo
    

    最后注销当前用户,使用刚创建的 hadoop 用户进行登陆,接下来的教程都在hadoop用户下操作

    更新apt

    先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了

    $ sudo apt-get update
    

    安装vim编辑器

    $ sudo apt-get install vim
    

    安装SSH、配置SSH无密码登陆

    集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:

    $ sudo apt-get install openssh-server
    

    安装后,可以使用如下命令登陆本机:

    $ ssh localhost
    

    此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。

    但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

    首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

    $ exit    # 退出刚才的 ssh localhost
    $ cd ~/.ssh/  # 若没有该目录,请先执行一次ssh localhost
    $ ssh-keygen -t rsa   # 会有提示,都按回车就可以
    $ cat ./id_rsa.pub >> ./authorized_keys  # 加入授权
    

    此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了

    安装Java环境

    Java环境可选择 Oracle 的 JDK,或是 OpenJDK,为图方便,这边直接通过命令安装 OpenJDK 8。

    $ sudo apt-get install openjdk-8-jre openjdk-8-jdk
    

    安装好 OpenJDK 后,需要找到相应的安装路径,默认的路径是:/usr/lib/jvm/java-8-openjdk-amd64

    接着配置 JAVA_HOME 环境变量,为方便,我们在 ~/.bashrc 中进行设置

    $ sudo vim ~/.bashrc
    

    在文件最前面添加如下单独一行(注意 = 号前后不能有空格),将“JDK安装路径”改为上述命令得到的路径,并保存:

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 #jdk的安装路径 默认是这个
    

    接着还需要让该环境变量生效,执行如下代码:

    $ source ~/.bashrc    # 使变量设置生效
    

    设置好之后检测java环境变量是否配置好,输入以下命令

    $ java
    $ javac
    $ java -version
    

    如果有如下输出就正常


    这里写图片描述

    至此,Java环境就配置好了

    安装 Hadoop2

    本次教程使用的是 hadoop2.6.4 首先下载hadoop的压缩包
    使用wget命令 默认下载在/home/hadoop 用户目录下

    $ wget http://apache.fayea.com/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz
    $ cd /home/hadoop
    $ sudo tar -zxf hadoop-2.6.4.tar.gz -C /usr/local    # 解压到/usr/loc
    $ sudo mv ./hadoop-2.6.0/ ./hadoop            # 将文件夹名改为hadoop
    $ sudo chown -R hadoop ./hadoop       # 修改文件权限
    

    Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

    $ cd /usr/local/hadoop
    $ ./bin/hadoop version
    

    Hadoop单机配置(非分布式)

    Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

    Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改3个配置文件 core-site.xml 和 hdfs-site.xml, hadoop-env.sh。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

    • 修改配置文件 hadoop-env.sh
    $ sudo vim hadoop-env.sh
    #在最前面插入一行
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    
    • 修改配置文件 core-site.xml
    $ sudo vim ./etc/hadoop/core-site.xml
    

    将当中的

    <configuration>
    </configuration>
    

    替换为

    <configuration>
            <property>
                 <name>hadoop.tmp.dir</name>
                 <value>file:/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>
    
    • 同样的方式,修改配置文件 hdfs-site.xml:
    <configuration>
            <property>
                 <name>dfs.replication</name>
                 <value>1</value>
            </property>
            <property>
                 <name>dfs.namenode.name.dir</name>
                 <value>file:/usr/local/hadoop/tmp/dfs/name</value>
            </property>
            <property>
                 <name>dfs.datanode.data.dir</name>
                 <value>file:/usr/local/hadoop/tmp/dfs/data</value>
            </property>
    </configuration>
    

    配置完成后,执行 NameNode 的格式化:

    $ ./bin/hdfs namenode -format
    

    成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。

    接着开启 NameNode 和 DataNode 守护进程。

    $ ./sbin/start-dfs.sh
    

    若出现如下SSH提示,输入yes即可。

    启动时可能会出现如下 WARN 提示:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable。该 WARN 提示可以忽略,并不会影响正常使用(该 WARN 可以通过编译 Hadoop 源码解决)。

    启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。


    这里写图片描述

    若是 DataNode 没有启动,可尝试如下的方法(注意这会删除 HDFS 中原有的所有数据,如果原有的数据很重要请不要这样做):

    # 针对 DataNode 没法启动的解决方法
    $ ./sbin/stop-dfs.sh   # 关闭
    $ rm -r ./tmp     # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
    $ ./bin/hdfs namenode -format   # 重新格式化 NameNode
    $ ./sbin/start-dfs.sh  # 重启
    

    成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。我是用远程连接 所以访问地址是http://192.168.154.130:50070

    这里写图片描述

    这样 单机/伪分布式的hadoop就搭建好了

    相关文章

      网友评论

        本文标题:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.4

        本文链接:https://www.haomeiwen.com/subject/ifnmlxtx.html