阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop2.6.0单机/伪分布式安装

419次阅读
没有评论

共计 9415 个字符,预计需要花费 24 分钟才能阅读完成。

基本环境配置

可以使用命令 uname -a 查看 linux 的版本:

master@Ubuntu:~$ uname -a

Linux ubuntu 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

使用 Ubuntu 14.04 64 位 作为系统环境,也可以使用 RedHat、CentOS 等,本教程也可以作为参考,配置是相似的,就是 Linux 命令、具体操作有所不同。本教程基于 Hadoop 2.6.0 (stable) 版本下验证通过,可适合任何 Hadoop 2.x.y 版本,例如 Hadoop 2.4.1。

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

创建 hadoop 用户

如果你安装 Ubuntu 的时候不是用的 hadoop 用户,那么最好增加一个名为 hadoop 的用户,密码随意指定。首先打开终端,输入如下命令创建新用户 :

$ sudo useradd -m hadoop -s /bin/bash

这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。

接着使用如下命令修改密码,按提示输入两次密码

$ sudo passwd hadoop

可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:

$ sudo adduser hadoop sudo

 完整的运行情况如下:

master@ubuntu:~$ sudo useradd -m hadoop -s /bin/bash
[sudo] password for master:
master@ubuntu:~$ sudo passwd hadoop
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
master@ubuntu:~$ sudo adduser hadoop sudo
[sudo] password for master:
Adding user `hadoop’ to group `sudo’ …
Adding user hadoop to group sudo
Done.

最后注销当前用户(点击屏幕右上角的齿轮,选择注销),在登陆界面使用刚创建的 hadoop 用户进行登陆。

使用下面的命令更新 apt:

hadoop@ubuntu:~$ sudo apt-get update

接着安装 vim

hadoop@ubuntu:~$ sudo apt-get install vim

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

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

$ sudo apt-get install openssh-server

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

$ ssh localhost

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

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

cd ~/.ssh/         
ssh-keygen -t rsa             
cat id_rsa.pub >> authorized_keys

再次使用 ssh localhost 登录就不需要输入密码了

hadoop@ubuntu:~/.ssh$ ssh localhost
Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64)

* Documentation: https://help.ubuntu.com/

Last login: Wed May 13 04:34:05 2015 from localhost

下载配置 JDK

下载 jdk1.8,下载地址:http://www.Oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

新建两个文件夹:opt、soft;分别存放安装后的软件和软件包

分别解压缩 jdk 和 hadoop:

hadoop@ubuntu:~/opt$ sudo tar -zxvf jdk-8u45-linux-x64.tar.gz

接着需要配置一下 JAVA_HOME 环境变量:

在文件 最前面 添加如下单独一行(注意 = 号前后不能有空格),并保存

export JAVA_HOME=/home/hadoop/opt/java1.8.0_45

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

$ source ~/.bashrc    # 使变量设置生效
$ echo $JAVA_HOME     # 检验是否设置正确

没有错误会出现下面的结果:

hadoop@ubuntu:~$ echo $JAVA_HOME
/home/hadoop/opt/jdk1.8.0_45

但是此时运行 java -version 命令,会出现如下提示:

hadoop@ubuntu:~$ java -version
The program ‘java’ can be found in the following packages:
* default-jre
* gcj-4.8-jre-headless
* openjdk-7-jre-headless
* gcj-4.6-jre-headless
* openjdk-6-jre-headless
Try: sudo apt-get install <selected package>

提示 jre 的安装问题,而实际是环境没有配置全面,继续 vim ~/.bashrc,加入:

export JAVA_HOME=/home/hadoop/opt/jdk1.8.0_45
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

hadoop@ubuntu:~$ java -version
java version “1.8.0_45”
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
搞定~~~

下载安装 Hadoop 2.6

下载 hadoop2.6,下载地址:http://mirrors.cnnic.cn/apache/hadoop/common/stable/

Hadoop2.6.0 单机 / 伪分布式安装

注意:hadoop-2.6.0.tar.gz这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码。

同时强烈建议也下载 hadoop-2.6.0.tar.gz.mds 这个文件,该文件包含了检验值可用于检查 hadoop-2.6.0.tar.gz 的完整性,否则若文件发生了损坏或下载不完整,Hadoop 将无法正常运行。

解压缩 hadoop

hadoop@ubuntu:~/opt$ sudo tar -zxvf hadoop-2.6.0.tar.gz

现在使用下列命令得出hadoop2.6.0.tar.gz.mds 的 MD5 值:

$ cat ./hadoop-2.6.0.tar.gz.mds | grep 'MD5'

出现下面的结果:

hadoop-2.6.0.tar.gz: MD5 = 37 F3 71 FA AB 03 3B B8 C2 CB 50 10 0C 57 74 DC

计算hadoop2.6.0.tar.gz 的 MD5 值,使用下面的命令:

$ ~/opt$ md5sum ./hadoop-2.6.0.tar.gz | tr "a-z" "A-Z"

出现下面的结果:

37F371FAAB033BB8C2CB50100C5774DC ./HADOOP-2.6.0.TAR.GZ

字符对应相等,说明安装包没有问题

修改文件权限:

sudo chown -R hadoop:hadoop ./hadoop-2.6.0

输入如��命令来检查 Hadoop 是否可用:

hadoop@ubuntu:~/opt$ cd ./hadoop-2.6.0
hadoop@ubuntu:~/opt/hadoop-2.6.0$ ./bin/hadoop

成功则会显示命令用法:

Usage: hadoop [–config confdir] COMMAND
where COMMAND is one of:
fs run a generic filesystem user client
version print the version
jar <jar> run a jar file
checknative [-a|-h] check native hadoop and compression libraries availability
distcp <srcurl> <desturl> copy file or directories recursively
archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
classpath prints the class path needed to get the
credential interact with credential providers
Hadoop jar and the required libraries
daemonlog get/set the log level for each daemon
trace view and modify Hadoop tracing settings
or
CLASSNAME run the class named CLASSNAME

Most commands print help when invoked w/o parameters.

Hadoop 单机配置

Hadoop 默认配置是以非分布式模式运行,即单 Java 进程,方便进行调试。可以执行附带的例子 WordCount 来感受下 Hadoop 的运行。将 input 文件夹中的文件作为输入,统计当中符合正则表达式 wo[a-z.]+ 的单词出现的次数,并输出结果到 output 文件夹中。

$ cd /usr/local/hadoop
$ mkdir input
$ cp ./etc/hadoop/*.xml input 
$ ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'wo[a-z.]+'
$ cat ./output/*    

执行成功后如下所示,输出了作业的相关信息,输出的结果是符合正则的单词 dfsadmin 出现了 1 次

hadoop@ubuntu:~/opt/hadoop-2.6.0$ cat ./output/*
2 word
1 work

如果需要再次运行,需要删除 output 文件夹(因为 Hadoop 默认不会覆盖结果文件):

$ sudo rm -rf output

Hadoop 伪分布式配置

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode。

Hadoop 的配置文件位于 /home/hadoop/opt/hadoop-2.6.0/etc/hadoop/ 中,伪分布式需要修改 2 个配置文件 core-site.xml 和 hdfs-site.xml

修改配置文件 core-site.xml 

<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/hadoop/opt/hadoop-2.6.0/tmp</value>
  </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/opt/hadoop-2.6.0/tmp/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/hadoop/opt/hadoop-2.6.0/tmp/dfs/data</value>
  </property>
</configuration>

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

hadoop@ubuntu:~/opt/hadoop-2.6.0$ bin/hdfs namenode -format

最后几行如下:

15/05/13 08:50:15 INFO namenode.FSImage: Allocated new BlockPoolId: BP-707136192-127.0.1.1-1431532215593
15/05/13 08:50:15 INFO common.Storage: Storage directory /home/hadoop/opt/hadoop-2.6.0/tmp/dfs/name has been successfully formatted.
15/05/13 08:50:16 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
15/05/13 08:50:16 INFO util.ExitUtil: Exiting with status 0
15/05/13 08:50:16 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1
************************************************************/

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

hadoop@ubuntu:~/opt/hadoop-2.6.0$ sbin/start-dfs.sh

出现下面的错误提示:

Starting namenodes on [localhost]
localhost: Error: JAVA_HOME is not set and could not be found.
localhost: Error: JAVA_HOME is not set and could not be found.
Starting secondary namenodes [0.0.0.0]

解决办法:

打开 hdfs-site.xml 文件,修改

export JAVA_HOME=/home/hadoop/opt/jdk1.8.0_45

问题解决~~~

Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/hadoop/opt/hadoop-2.6.0/logs/hadoop-hadoop-namenode-ubuntu.out
localhost: starting datanode, logging to /home/hadoop/opt/hadoop-2.6.0/logs/hadoop-hadoop-datanode-ubuntu.out
Starting secondary namenodes [0.0.0.0]
The authenticity of host ‘0.0.0.0 (0.0.0.0)’ can’t be established.
ECDSA key fingerprint is 1a:e1:fa:ce:18:2c:44:b7:0f:3b:38:fc:fd:05:8d:97.
Are you sure you want to continue connecting (yes/no)? yes
0.0.0.0: Warning: Permanently added ‘0.0.0.0’ (ECDSA) to the list of known hosts.
0.0.0.0: starting secondarynamenode, logging to /home/hadoop/opt/hadoop-2.6.0/logs/hadoop-hadoop-secondarynamenode-ubuntu.out

启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: NameNodeDataNodeSecondaryNameNode。(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试;如果 NameNode 或 DataNode 没有启动,请仔细检查之前步骤)。

hadoop@ubuntu:~/opt/hadoop-2.6.0$ jps

4576 Jps
4274 DataNode
4162 NameNode
4473 SecondaryNameNode
成功启动后,可以访问 Web 界面 http://localhost:50070 来查看 Hadoop 的信息:

Hadoop2.6.0 单机 / 伪分布式安装

Hadoop 伪分布式实例 -WordCount

上面的单机模式,WordCount 读取的是本地数据,伪分布式读取的则是 HDFS 上的数据。要使用 HDFS,首先需要创建用户目录

hadoop@ubuntu:~/opt/hadoop-2.6.0$ bin/hdfs dfs -mkdir -p /user/hadoop

解释如下:

-mkdir [-p] <path> … :
Create a directory in specified location.

-p Do not fail if the directory already exists

接着将 etc/hadoop 中的文件作为输入文件复制到分布式文件系统中,即将 /home/hadoop/opt/hadoop-2.6.0/etc/hadoop 复制到分布式文件系统中的 /user/hadoop/input 中。上一步已创建了用户目录 /user/hadoop,因此命令中就可以使用相对目录如 input,其对应的绝对路径就是 /user/hadoop/input:

$ bin/hdfs dfs -mkdir input
$ bin/hdfs dfs -put etc/hadoop/*.xml input

复制完成后,可以通过如下命令查看文件列表:

hadoop@ubuntu:~/opt/hadoop-2.6.0$ bin/hdfs dfs -ls input

Found 8 items

-rw-r–r– 1 hadoop supergroup 4436 2015-05-13 18:26 input/capacity-scheduler.xml
-rw-r–r– 1 hadoop supergroup 991 2015-05-13 18:26 input/core-site.xml
-rw-r–r– 1 hadoop supergroup 9683 2015-05-13 18:26 input/hadoop-policy.xml
-rw-r–r– 1 hadoop supergroup 1121 2015-05-13 18:26 input/hdfs-site.xml
-rw-r–r– 1 hadoop supergroup 620 2015-05-13 18:26 input/httpfs-site.xml
-rw-r–r– 1 hadoop supergroup 3523 2015-05-13 18:26 input/kms-acls.xml
-rw-r–r– 1 hadoop supergroup 5511 2015-05-13 18:26 input/kms-site.xml
-rw-r–r– 1 hadoop supergroup 690 2015-05-13 18:26 input/yarn-site.xml

伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是 HDFS 中的文件(可以将单机步骤中创建的本地 input 文件夹删掉来验证这一点)。

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

查看运行结果的命令(查看的是位于 HDFS 中的输出结果):

$ bin/hdfs dfs -cat output/*

也可以将运行结果取回到本地:

$ rm -R ./output
$ bin/hdfs dfs -get output output     # 将 HDFS 上的 output 文件夹拷贝到本机
$ cat ./output/*

结果如下:

1    dfsadmin

1    dfs.replication

1    dfs.namenode.name.dir

1    dfs.datanode.data.dir

Hadoop 运行程序时,默认输出目录不能存在,因此再次运行需要执行如下命令删除 output 文件夹:

$ bin/hdfs dfs -rm -r /user/hadoop/output     # 删除 output 文件夹

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-05/117493.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计9415字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7984875
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...