Hadoop在Unbunt环境下的伪分布模式搭建教程

所需要的工具

  1. 虚拟机VM
  2. Unbuntu镜像:ubuntu-14.10-desktop-amd64(需要说明的是:目前14.10的Unbuntu官网已经停止维护)
  3. jdk:ubuntu-14.10-desktop-amd64

补充说明:有的时候在Ubuntu环境下下载东西比较慢,所以建议可以在虚拟机中建立一个共享文件,这样就可以在本机下载然后在虚拟机中使用了。

1.搭建虚拟,教程见一下链接 http://blog.csdn.net/u013142781/article/details/50529030

2.虚拟机搭建完成后,打开虚拟机,并用自己搭建过程创建的用户登录虚拟机

这里写图片描述

3.打开虚拟机的命令行窗口(Ctrl+Alt+T)创建一个Hadoop用户,命令如下

sudo useradd -m hadoop -s /bin/bash

4.为hadoop用户设置密码并赋予权限

sudo passwd hadoop   
sudo adduser hadoop sudo

5.更新apt;

sudo apt-get update

补充说明,在这里由于本人实用的Ubunt14.10官网已经停止维护,所以在一开始更新的时候总是失败,最后查阅资料得知需要更换适用于停止维护的Ubuntu软件源。操作流程如下:

  • 输入如下命令打开软件源
sudo gedit /etc/apt/sources.list
  • 更换sources.list内容为
deb http://old-releases.ubuntu.com/ubuntu utopic main restricted universe multiverse   

deb http://old-releases.ubuntu.com/ubuntu utopic-security main restricted universe multiverse   

deb http://old-releases.ubuntu.com/ubuntu utopic-updates main restricted universe multiverse   

deb http://old-releases.ubuntu.com/ubuntu utopic-proposed main restricted universe multiverse   

deb http://old-releases.ubuntu.com/ubuntu utopic-backports main restricted universe multiverse   

deb-src http://old-releases.ubuntu.com/ubuntu utopic main restricted universe multiverse   

deb-src http://old-releases.ubuntu.com/ubuntu utopic-security main restricted universe multiverse   

deb-src http://old-releases.ubuntu.com/ubuntu utopic-updates main restricted universe multiverse   

deb-src http://old-releases.ubuntu.com/ubuntu utopic-proposed main restricted universe multiverse   

deb-src http://old-releases.ubuntu.com/ubuntu utopic-backports main restricted universe multiverse 

6.安装SSH

sudo apt-get install openssh-server

安装完成后登陆SSH,命令如下

localhost ssh

登陆后会问你是否连接,直接输入“yes”便可,同时还会让你输入你为hadoop用户所设置的密码

7.安装java环境

  1. 下载jdk:ubuntu-14.10-desktop-amd64,然后将其放于 usr目录下面
    这里写图片描述

2.解压ubuntu-14.10-desktop-amd64,解压命令如下:

tar -zxvf  jdk-8u45-linux-x64.tar.gz

解压后
这里写图片描述

4.配置环境变量:

  • 切换到root用户
sudo su
  • 打开环境变量的配置文件
gedit /etc/profile
  • 配置环境变量
    在profile文件末尾添加
JAVA_HOME=/usr/jdk1.8.0_144 
JRE_HOME=${JAVA_HOME}/jre  
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
PATH=${JAVA_HOME}/bin:$PATH
  • 保存并执行
source ~/.bashrc
  • 验证,执行
java -version

8.安装hadoop

hadoop的下载: http://mirror.bit.edu.cn/apache/hadoop/common/ 或者
http://mirrors.cnnic.cn/apache/hadoop/common/

在这里我们一般选择他的稳定版,如下
这里写图片描述
下载选择hadoop-2.7.4.tar.gz而不是hadoop-2.7.4-src.tar.gz

  • 将下载的文件复制到 usr/local目录下面
sudo tar -zxf ~/下载/hadoop-2.7.4.tar.gz -C /usr/local #解压下载的hadoop到usr/local目录下
cd /usr/local/                                        #进入 usr/local目录下面
sudo mv ./hadoop-2.7.4/ ./hadoop                     #修改 hadoop-2.7.4名为hadoop
sudo chown -R hadoop ./hadoop                        # 修改文件权限
  • 检验hadoop是否可用
cd /usr/local/hadoop
./bin/hadoop version

在这里如果出现jdk找不到问题,可做如下操作

  1. 执行如下命令,打开hadoop-env.sh文件
gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh

修改hadoop-env.sh

# export JAVA_HOME=/usr/jdk1.8.0_144 (我的jdk目录)

9.hadoop的伪分布模式配置

  • 配置core-site.xml文件

    在 usr/local/hadoop/etc/hadoop 文件下手动选择用gedit打开core-site.xml文件 ,在中添加如下代码

 <property>
             <name>hadoop.tmp.dir</name>
             <value>file:/usr/local/hadoop/tmp</value>
        </property>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://localhost:9000</value>
        </property>
 <property>
             <name>dfs.name.dir</name>
             <value>/usr/local/hadoop/hdfs/name</value>
        </property>

` <property>
             <name>dfs.data.dir</name>
             <value>/usr/local/hadoop/hdfs/data</value>
        </property>
  • 配置hdfs-site.xml
    在 usr/local/hadoop/etc/hadoop 文件下手动选择用gedit打开hdfs-site.xml文件 ,在中添加如下代码
<property>
             <name>hadoop.tmp.dir</name>
             <value>file:/usr/local/hadoop/tmp</value>
        </property>

  <property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
       <property>
             <name>dfs.name.dir</name>
             <value>/usr/local/hadoop/hdfs/name</value>
        </property>

` <property>
             <name>dfs.data.dir</name>
             <value>/usr/local/hadoop/hdfs/data</value>
        </property>
  • 配置完成并保存后执行namenode的格式化
./bin/hdfs namenode -format

这里写图片描述

出现如上效果说明格式化成功

  • 启动namenode和datanode
./sbin/start-dfs.sh

这里写图片描述
在输入jps命令查看后 出现DataNode、Jps、SecondaryNameNode、NameNode代表启动成功

10.运行伪分布模式

  • 伪分布式读取的则是 HDFS 上的数据。要使用 HDFS,首先需要在 HDFS 中创建用户目录:
./bin/hdfs dfs -mkdir -p /user/hadoop

接着将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中,即将/usr/local/hadoop/etc/hadoop 复制到分布式文件系统中的 /user/hadoop/input 中。我们使用的是 hadoop 用户,并且已创建相应的用户目录 /user/hadoop ,因此在命令中就可以使用相对路径如 input,其对应的绝对路径就是/user/hadoop/input:

#复制文件
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
#查看文件列表
./bin/hdfs dfs -ls input
#执行MapReduce 作业
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
#查看结果
./bin/hdfs dfs -cat output/*

由于运行程序时hadoop的output文件不能存在,所以运行完成后需要删除output文件

# 删除 output 文件夹
./bin/hdfs dfs -rm -r output  
#停止hadoop
./sbin/stop-dfs.sh

补充说明:本文章是楼主在参考网上相关文章搭建hadoop伪分布模式后整理得出的,如在搭建过程中出现问题欢迎通过csdn账号对我提出建议。

猜你喜欢

转载自blog.csdn.net/xikai18827083487/article/details/77915957
今日推荐