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

1. 简介

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

2. 环境

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

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

3. 创建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用户下操作

4. 更新apt

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

$ sudo apt-get update

安装vim编辑器

$ sudo apt-get install vim

5. 安装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 命令,无需输入密码就可以直接登陆了

6. 安装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环境就配置好了

7. 安装 Hadoop2

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

$ cd /home/hadoop
$ wget http://apache.fayea.com/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz
$ tar -xvf hadoop-2.6.4.tar.gz    # 解压到当前目录
$ mv ./hadoop-2.6.4/ ./hadoop     # 将文件夹名改为hadoop
$ chown -R hadoop ./hadoop       # 修改文件权限

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

$ cd ./hadoop
$ ./bin/hadoop version

8. Hadoop单机配置(非分布式)

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

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

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

将当中的

<configuration>
</configuration>

替换为

<configuration>
        <property>
             <name>hadoop.tmp.dir</name>
             <value>file: /home/hadoop/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:/home/hadoop/hadoop/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
            <value>file:/home/hadoop/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就搭建好了

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值