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

Hadoop初体验:快速搭建Hadoop伪分布式环境

431次阅读
没有评论

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

0. 前言

    本文旨在使用一个全新安装好的 Linux 系统从 0 开始进行 Hadoop 伪分布式环境的搭建,以达到快速搭建的目的,从而体验 Hadoop 的魅力所在,为后面的继续学习提供基础环境。

    对使用的系统环境作如下说明:

  • 操作系统:CentOS 6.5 64 位

  • 主机 IP 地址:10.0.0.131/24

  • 主机名:leaf

  • 用户名:root

  • hadoop 版本:2.6.5

  • jdk 版本:1.7

    可以看到,这里直接使用 root 用户,而不是按照大多数的教程创建一个 hadoop 用户来进行操作,就是为了达到快速搭建 Hadoop 环境以进行体验的目的。

    为了保证后面的操作能够正常完成,请先确认本机是否可以解析到主机名 leaf,如果不能,请手动添加解析到 /etc/hosts 目录中:

[root@leaf ~]# echo "127.0.0.1  leaf" >> /etc/hosts
[root@leaf ~]# ping leaf
PING leaf (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.043 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.048 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.046 ms

1.rsync 软件安装

    使用下面命令安装:

[root@leaf ~]# yum install -y rsync

2.ssh 安装与免密码登陆配置

(1)ssh 安装

    使用下面命令安装

[root@leaf ~]# yum install -y openssh-server openssh-clients

(2)ssh 免密码登陆配置

    因为 Hadoop 使用 ssh 协议来管理远程守护进程,所以需要配置免密码登陆。

  • 关闭防火墙和 selinux

    为了确保能够成功配置,在配置前,先把防火墙和 selinux 关闭:

# 关闭防火墙
[root@leaf ~]# /etc/init.d/iptables stop
[root@leaf ~]# chkconfig --level 3 iptables off
  
# 关闭 selinux
[root@leaf ~]# setenforce 0
[root@leaf ~]# sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config 
[root@leaf ~]# cat /etc/selinux/config | grep disabled
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
  • 生成密钥对

[root@leaf ~]# mkdir .ssh
[root@leaf ~]# ssh-keygen -t dsa -P '' -f .ssh/id_dsa
Generating public/private dsa key pair.
Your identification has been saved in .ssh/id_dsa.
Your public key has been saved in .ssh/id_dsa.pub.
The key fingerprint is:
5b:af:7c:45:f3:ff:dc:50:f5:81:4b:1e:5c:c1:86:90 root@leaf
The key's randomart image is:
+--[DSA 1024]----+
|           .o oo.|
|           E..oo |
|             =...|
|            o = +|
|        S .  + oo|
|         o .  ...|
|        .   ... .|
|         . ..  oo|
|          o.    =|
+-----------------+
  • 将公钥添加到本地信任列表

[root@leaf ~]# cat .ssh/id_dsa.pub >> .ssh/authorized_keys
  • 验证

    上面三步完成后就完成了免密码登陆的配置,可以使用下面的命令进行验证:

[root@leaf ~]# ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is d1:0d:ed:eb:e7:d1:2f:02:23:70:ef:11:14:4e:fa:42.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Last login: Wed Aug 30 04:28:01 2017 from 10.0.0.1
[root@leaf ~]#

    在第一次登陆的时候需要输入 yes,之后再登陆时就可以直接登陆了:

[root@leaf ~]# ssh localhost
Last login: Wed Aug 30 04:44:02 2017 from localhost
[root@leaf ~]#

3.jdk 安装与配置

(1)jdk 下载

    这里使用的是 jdk1.7 版本,可以到下面的网站进行下载:

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

    下载完成后,可以使用 winscp 上传到 /root 目录下,如下:

[root@leaf ~]# ls -lh jdk-7u80-linux-x64.tar.gz 
-rw-r--r--. 1 root root 147M Aug 29 12:05 jdk-7u80-linux-x64.tar.gz

(2)jdk 安装

    将 jdk 解压到 /usr/local 目录下,并创建软链接:

[root@leaf ~]# cp jdk-7u80-linux-x64.tar.gz /usr/local/
[root@leaf ~]# cd /usr/local/
[root@leaf local]# tar -zxf jdk-7u80-linux-x64.tar.gz 
[root@leaf local]# ls -ld jdk1.7.0_80/
drwxr-xr-x. 8 uucp 143 4096 Apr 11  2015 jdk1.7.0_80/
[root@leaf local]# ln -s jdk1.7.0_80/ jdk
[root@leaf local]# ls -ld jdk
lrwxrwxrwx. 1 root root 12 Aug 30 04:56 jdk -> jdk1.7.0_80/

(3)JAVA_HOME 环境变量配置

    java 命令在 /usr/local/jdk/bin 目录下:

[root@leaf local]# cd jdk/bin/
[root@leaf bin]# ls -lh java
-rwxr-xr-x. 1 uucp 143 7.6K Apr 11  2015 java

    配置 java 环境变量:

[root@leaf bin]# echo 'export JAVA_HOME=/usr/local/jdk/bin' >> /etc/profile
[root@leaf bin]# echo 'export PATH=$PATH:$JAVA_HOME' >> /etc/profile
[root@leaf bin]# source /etc/profile

    这样我们就可以在任何一个目录下使用 java 相关的命令:

[root@leaf ~]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[root@leaf ~]# javac -version
javac 1.7.0_80

4.hadoop 安装与配置

(1)hadoop 下载

    这里使用 hadoop 2.6.5 版本,可以到下面的网站进行下载:

http://hadoop.apache.org/releases.html

    选择 2.6.5 的 binary 进入相应的页面便可以下载,然后使用 winscp 上传到 /root 目录下,如下:

[root@leaf ~]# ls -lh hadoop-2.6.5.tar.gz 
-rw-r--r--. 1 root root 191M Aug 29 19:09 hadoop-2.6.5.tar.gz

(2)hadoop 安装

    将 hadoop 解压到 /usr/local 目录下,并创建软链接:

[root@leaf ~]# cp hadoop-2.6.5.tar.gz /usr/local
[root@leaf ~]# cd /usr/local
[root@leaf local]# tar -zxf hadoop-2.6.5.tar.gz 
[root@leaf local]# ls -ld hadoop-2.6.5
drwxrwxr-x. 9 1000 1000 4096 Oct  3  2016 hadoop-2.6.5
[root@leaf local]# ln -s hadoop-2.6.5 hadoop
[root@leaf local]# ls -ld hadoop
lrwxrwxrwx. 1 root root 12 Aug 30 05:05 hadoop -> hadoop-2.6.5

(3)hadoop 环境变量配置

    hadoop 相关命令在 /usr/local/hadoop/bin 和 /usr/local/hadoop/sbin 目录下,如下所示:

[root@leaf local]# cd hadoop/bin/
[root@leaf bin]# ls -lh hadoop
-rwxr-xr-x. 1 1000 1000 5.4K Oct  3  2016 hadoop

    配置 hadoop 环境变量:

1
2
[root@leaf bin]# echo 'export HADOOP_HOME=/usr/local/hadoop/bin:/usr/local/hadoop/sbin' >> /etc/profile
[root@leaf bin]# echo 'export PATH=$PATH:$HADOOP_HOME' >> /etc/profile

    这样我们就可以在任何一个目录下使用 hadoop 相关的命令:

[root@leaf ~]# 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.

(4)hadoop 配置

    hadoop 的配置文件在 /usr/local/hadoop/etc/hadoop 目录下:

[root@leaf ~]# cd /usr/local/hadoop/etc/hadoop/
[root@leaf hadoop]# ls
capacity-scheduler.xml      hadoop-policy.xml        kms-log4j.properties        ssl-client.xml.example
configuration.xsl           hdfs-site.xml            kms-site.xml                ssl-server.xml.example
container-executor.cfg      httpfs-env.sh            log4j.properties            yarn-env.cmd
core-site.xml               httpfs-log4j.properties  mapred-env.cmd              yarn-env.sh
hadoop-env.cmd              httpfs-signature.secret  mapred-env.sh               yarn-site.xml
hadoop-env.sh               httpfs-site.xml          mapred-queues.xml.template
hadoop-metrics2.properties  kms-acls.xml             mapred-site.xml.template
hadoop-metrics.properties   kms-env.sh               slaves
  • 配置 core-site.xml

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

    fs.default.name 这个字段下的值用于指定 NameNode(HDFS 的 Master)的 IP 地址和端口号,如下面的 value 值 hdfs://localhost:9000,就表示 HDFS NameNode 的 IP 地址或主机为 localhost,端口号为 9000.

  • 配置 hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.name.dir</name>
        <value>/home/nuoline/hdfs-filesystem/name</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/home/nuoline/hdfs-filesystem/data</value>
    </property>
</configuration>

    dfs.replication 用于指定 HDFS 中每个 Block 块被复制的次数,起到数据冗余备份的作用;dfs.name.dir 用于配置 HDFS 的 NameNode 的元数据,以逗号隔开,HDFS 会把元数据冗余复制到这些目录下;dfs.data.dir 用于配置 HDFS 的 DataNode 的数据目录,以逗号隔开,HDFS 会把数据存在这些目录下。

  • 配置 mapred-site.xml

<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
    </property>
</configuration>

    mapred.job.tracker 字段用于指定 MapReduce Jobtracker 的 IP 地址及端口号,如这里 IP 地址或主机为 localhost,9001 是 MapReduce Jobtracker RPC 的交互端口。

  • 配置 hadoop-env.sh

export JAVA_HOME=/usr/local/jdk

5.hadoop 启动与测试

(1)格式化 HDFS 分布式文件系统

    执行如下命令:

[root@leaf ~]# hadoop namenode -format
...
17/08/30 08:41:29 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
17/08/30 08:41:29 INFO util.ExitUtil: Exiting with status 0
17/08/30 08:41:29 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at leaf/127.0.0.1
************************************************************/

    注意看输出显示是不是跟上面的类似,如果是,则说明操作成功。

(2)启动 hadoop 服务

    执行如下命令:

[root@leaf ~]# start-all.sh 
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
17/08/30 08:53:22 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [localhost]
localhost: starting namenode, logging to /usr/local/hadoop-2.6.5/logs/hadoop-root-namenode-leaf.out
localhost: starting datanode, logging to /usr/local/hadoop-2.6.5/logs/hadoop-root-datanode-leaf.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop-2.6.5/logs/hadoop-root-secondarynamenode-leaf.out
17/08/30 08:53:48 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop-2.6.5/logs/yarn-root-resourcemanager-leaf.out
localhost: starting nodemanager, logging to /usr/local/hadoop-2.6.5/logs/yarn-root-nodemanager-leaf.out

(3)hadoop 服务测试

    启动完成后,执行 jps 命令,可以看到 hadoop 运行的守护进程,如下:

[root@leaf ~]# jps
4167 SecondaryNameNode
4708 Jps
3907 NameNode
4394 NodeManager
4306 ResourceManager
3993 DataNode

    也可以通过在浏览器中输入地址来访问相关页面,这里访问 NameNode 的页面,地址��http://10.0.0.131:50070,如下:

Hadoop 初体验:快速搭建 Hadoop 伪分布式环境    访问 DataNode 的页面,地址为 http://10.0.0.131:50075,如下

Hadoop 初体验:快速搭建 Hadoop 伪分布式环境


6. 参考资料

《Hadoop 核心技术》

不过需要注意的是,书上版本用的是 1.x,这里用的是 2.x 版本。

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

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-09/146694.htm

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7956643
文章搜索
热门文章
星哥带你玩飞牛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-提高用户访问的响应速度和成功率
随机文章
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

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

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...

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

一言一句话
-「
手气不错
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...