频道栏目
首页 > 网络 > 云计算 > 正文

hadoop伪分布式环境搭建与测试

2016-09-19 09:31:42           
收藏   我要投稿

标签(空格分隔): hadoop 伪分布式 集群搭建

目录

第一步 Linux系统环境设置
1. 系统环境介绍
2. 配置固定IP地址
3. 修改主机名
4. 建立主机映射
5. 关闭防火墙、禁用selinux
6. 创建普通用户、设置用户密码
7. 为创建的普通用户赋权限
8. 卸载CentOS自带的Openjdk
第二步 创建hadoop目录结构并使用FileZilla上传文件
1. 以普通用户创建hadoop目录结构
2. 修改目录归属者
3. 使用FileZilla上传文件至相应的目录中
第三步 安装JDK、配置环境变量、解压Hadoop2.5.0
1. 安装JDK
2. 配置环境变量
3. 解压Hadoop2.5.0文件,最大化可用空间
第四步 配置HDFS、启动和测试读写文件
1. 使用Notepad++配置hadoop-env.sh中的JAVA_HOME
2. 使用Notepad++配置hdfs相关的xml属性
3. 格式化HDFS系统、启动HDFS系统及测试读写文件
第五步 配置YARN、启动和MapReduce运行在YARN上
1. 使用Notepad++配置yarn-env.sh和mapred-env.sh中的JAVA_HOME
2. 使用Notepad++配置yarn相关的xml属性,并启动YARN
3. 使用Notepad++配置mapred相关的xml属性,并启动JobHistoryServer服务
4. 运行MapReduce WordCount程序
HDFS、YARN以及MapReduce功能描述


【第一步】:Linux系统环境设置

1. 系统环境介绍

1) 虚拟机环境: VMWare Workstation 12
2) 操作系统: CentOS 6.5
3) 远程工具: SecureCRT(远程连接工具)
FileZilla(远程文件传输工具)

2. 配置固定IP地址

  IPv4 Settings :
        IPADDR  : 192.168.1.100
        NETMASK : 255.255.255.0
        GATEWAY : 192.168.1.1
        DNS1    : 192.168.1.1
        DNS2    : 8.8.8.8
  setting file  :/etc/sysconfig/network-scripts/ifcfg-eth0

 

1.png

 <喎"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxzdHJvbmc+My4g0N64xNb3u/rD+zwvc3Ryb25nPjwvcD4NCjxwcmUgY2xhc3M9"brush:java;"> [root@localhost ~]# hostname localhost [root@localhost ~]# vi /etc/sysconfig/network [root@localhost ~]# hostname hadoop-master.qianxin.com

 

2.png

 

4. 建立主机映射

修改Linux主机映射
[root@localhost ~]# vi /hosts

 

2.png

 

修改Windows主机映射
使用Notepad++打开C:\Windows\System32\drivers\etc目录下的hosts文件添加以下信息:
    192.168.1.100   hadoop-master.qianxin.com
修改完成后,重启Linux系统。

 

2.png

 

5. 关闭防火墙、禁用selinux

[root@hadoop-master ~]# service iptables stop
[root@hadoop-master ~]# chkconfig iptables off
[root@hadoop-master ~]# vi /etc/selinux/config

 

2.png

 

6. 创建普通用户、设置用户密码

[root@hadoop-master ~]# useradd qianxin
[root@hadoop-master ~]# passwd qianxin

7. 为创建的普通用户赋权限

[root@hadoop-master ~]# visudo

 

2.png

 

8. 卸载CentOS自带的Openjdk

[root@hadoop-master ~]# rpm -qa | grep java
[root@hadoop-master ~]# rpm -e --nodeps [已安装的jdk应用名]

【第二步】:创建hadoop目录结构并使用FileZilla上传文件

1. 以普通用户创建hadoop目录结构

[qianxin@hadoop-master ~]$ cd /opt
[qianxin@hadoop-master opt]$ sudo mkdir datas modules softwares tools
[qianxin@hadoop-master opt]$ ls -l
drwxr-xr-x 2 root root 4096 Sep 12 10:34 datas
drwxr-xr-x 4 root root 4096 Sep 12 10:45 modules
drwxr-xr-x 2 root root 4096 Sep 12 10:38 softwares
drwxr-xr-x 2 root root 4096 Sep 12 10:37 tools

2. 修改目录归属者

[qianxin@hadoop-master opt]$ sudo chown -R qianxin:qianxin /opt/*
[qianxin@hadoop-master opt]$ ls -l

 

2.png

 

3. 使用FileZilla上传文件至相应的目录中

2.png

 


【第三步】:安装JDK、配置环境变量、解压Hadoop2.5.0

1. 安装JDK
使用普通用户将/opt/softwares目录下的jdk-7u67-linux-x64.tar.gz解压至/opt/modules目录中。

[qianxin@hadoop-master softwares]$ tar -zxvf jdk-7u67-linux-x64.tar.gz -C /opt/modules

2. 配置环境变量

[qianxin@hadoop-master softwares]$ sudo vim /etc/profile

在文件末尾添加JAVA_HOME、JRE_HOME和PATH的环境变量值,具体值如下所示。

export JAVA_HOME=/opt/modules/jdk1.7.0_67
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:JRE_HOME/bin

 

2.png

 

配置完成后保存关闭,执行以下命令使配置生效,检测JDK是否安装成功。

[qianxin@hadoop-master softwares]$ sudo source /etc/profile
[qianxin@hadoop-master softwares]$ java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

 

2.png

 

3. 解压Hadoop2.5.0文件,最大化可用空间

[qianxin@hadoop-master softwares]$ tar -zxvf hadoop-2.5.0.tar.gz -C /opt/modules
[qianxin@hadoop-master softwares]$ df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        60G  5.9G   51G  11% /
tmpfs           1.9G  372K  1.9G   1% /dev/shm
/dev/sda3        12G  160M   12G   2% /home
[qianxin@hadoop-master softwares]$ rm -rf /opt/modules/hadoop-2.5.0/share/docs
[qianxin@hadoop-master softwares]$ df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        60G  4.4G   52G   8% /
tmpfs           1.9G  372K  1.9G   1% /dev/shm
/dev/sda3        12G  160M   12G   2% /home

 

2.png

 


【第四步】:配置HDFS、启动和测试读写文件

1. 使用Notepad++配置hadoop-env.sh中的JAVA_HOME

路径:/opt/modules/hadoop-2.5.0/etc/hadoop/hadoop-env.sh

 

2.png

 

2. 使用Notepad++配置hdfs相关的xml属性
1)core-site.xml文件配置

<!-- 1. core-site.xml文件配置 -->
<!-- 路径:/opt/modules/hadoop-2.5.0/etc/hadoop/core-site.xml -->
<!-- 配置内容如下 -->
<!-- 说明:配置主节点NameNode位置及交互端口 -->

    fs.defaultFS
    hdfs://hadoop-master.qianxin.com:8020

<!-- 说明:指定hadoop运行时产生文件的存储目录 -->

    hadoop.tmp.dir
    /opt/modules/hadoop-2.5.0/data/tmp

 

2.png

 

2)slaves文件配置

<!-- 2. slaves文件配置 -->
<!-- 路径:/opt/modules/hadoop-2.5.0/etc/hadoop/slaves -->
<!-- 说明:配置从节点DataNode位置 -->
<!-- 配置内容如下 -->
hadoop-master.qianxin.com

 

2.png

 

3)hdfs-site.xml文件配置

<!-- 3. hdfs-site.xml文件配置 -->
<!-- 路径:/opt/modules/hadoop-2.5.0/etc/hadoop/hdfs-site.xml -->
<!-- 配置内容如下 -->
<!-- 说明:配置hdfs系统中文件快的数据副本个数 -->

    dfs.replication
    1

<!-- 说明:配置SecondaryNameNode位置 -->

    dfs.namenode.secondary.http-address
    hadoop-master.qianxin.com:50090

 

2.png

 

3. 格式化HDFS系统、启动HDFS系统及测试读写文件
1)格式化HDFS文件系统

[qianxin@hadoop-master hadoop-2.5.0]$ bin/hdfs namenode -format

出现以下信息即为格式化HDFS文件系统成功:

2.png

 

2)启动HDFS文件系统及测试

[qianxin@hadoop-master hadoop-2.5.0]$ sbin/hadoop-daemon.sh start namenode
[qianxin@hadoop-master hadoop-2.5.0]$ sbin/hadoop-daemon.sh start secondarynamenode
[qianxin@hadoop-master hadoop-2.5.0]$ sbin/hadoop-daemon.sh start datanode
[qianxin@hadoop-master hadoop-2.5.0]$ jps
4161 NameNode
4240 SecondaryNameNode
4382 Jps
4304 DataNode

 

2.png

 

HDFS管理界面:http://hadoop-master.qianxin.com:50070/

2.png

 

测试1:在hdfs上创建文件夹

[qianxin@hadoop-master hadoop-2.5.0]$ bin/hdfs dfs -mkdir -p /user/qianxin
[qianxin@hadoop-master hadoop-2.5.0]$ bin/hdfs dfs -ls -p /

 

2.png


2.png


注意:使用自己编译的native文件夹替换原有${HADOOP_HOME}/lib下原有的native文件夹即可解决上述无法使用本地库的警告。

 

测试2:上传文件至hdfs

[qianxin@hadoop-master hadoop-2.5.0]$ bin/hdfs dfs -put ./etc/hadoop/core-site.xml /user/qianxin
[qianxin@hadoop-master hadoop-2.5.0]$ bin/hdfs dfs -ls -p /

 

2.png

 

使用HDFS管理界面查看上传的文件:

2.png

 

测试3:从hdfs上读取文件

[qianxin@hadoop-master hadoop-2.5.0]$ bin/hdfs dfs -cat /user/qianxin/core-site.xml

 

2.png

 

测试4:从hdfs上下载文件

[qianxin@hadoop-master hadoop-2.5.0]$ bin/hdfs dfs -get /user/qianxin/core-site.xml /home/qianxin/qx-core-site.xml

 

2.png

 


【第五步】:配置YARN、启动和MapReduce运行在YARN上

1. 使用Notepad++配置yarn-env.sh和mapred-env.sh中的JAVA_HOME

路径:
yarn-env.sh     :   /opt/modules/hadoop-2.5.0/etc/hadoop/yarn-env.sh
mapred-env.sh   :   /opt/modules/hadoop-2.5.0/etc/hadoop/mapred-env.sh

2. 使用Notepad++配置yarn相关的xml属性,并启动YARN
1)yarn-site.xml文件配置

<!-- yarn-site.xml文件配置 -->
<!-- 路径:/opt/modules/hadoop-2.5.0/etc/hadoop/yarn-site.xml -->
<!-- 配置内容如下 -->
<!-- 说明:配置reduce获取数据的方式 -->

    yarn.nodemanager.aux-services
    mapreduce_shuffle

<!-- 说明:指定ResourceManager -->

    yarn.resourcemanager.hostname
    hadoop-master.qianxin.com

 

2.png

 

2)启动YARN

[qianxin@hadoop-master hadoop-2.5.0]$ sbin/yarn-daemon.sh start resourcemanager
[qianxin@hadoop-master hadoop-2.5.0]$ sbin/yarn-daemon.sh start nodemanager
[qianxin@hadoop-master hadoop-2.5.0]$ jps
4161 NameNode
4240 SecondaryNameNode
5908 NodeManager
6003 Jps
4304 DataNode
5666 ResourceManager

 

2.png

 

YARN管理界面:http://c:8088/

2.png

 

3. 使用Notepad++配置mapred相关的xml属性,并启动JobHistoryServer服务
1)mapred-site.xml文件配置

<!-- mapred-site.xml文件配置 -->
<!-- 路径:/opt/modules/hadoop-2.5.0/etc/hadoop/mapred-site.xml -->
<!-- 配置内容如下 -->
<!-- 说明:指定MapReduce运行在YARN上 -->

    mapreduce.framework.name
    yarn

<!-- 说明:配置JobHistoryServer -->

    mapreduce.jobhistory.address
    hadoop-master.qianxin.com:10020


    mapreduce.jobhistory.webapp.address
    hadoop-master.qianxin.com:19888

 

2.png

 

2)启动JobHistoryServer

[qianxin@hadoop-master hadoop-2.5.0]$ sbin/mr-jobhistory-daemon.sh start historyserver
[qianxin@hadoop-master hadoop-2.5.0]$ jps
4161 NameNode
6628 JobHistoryServer
4240 SecondaryNameNode
6375 NodeManager
4304 DataNode
6127 ResourceManager
6666 Jps

 

2.png

 

4. 运行MapReduce WordCount程序
1)在/opt/datas目录下创建一个wordcount_input目录,并创建一个自定义文件

[qianxin@hadoop-master hadoop-2.5.0]$ mkdir /opt/datas/wordcount_input
[qianxin@hadoop-master hadoop-2.5.0]$ touch /opt/datas/wordcount_input/wc_input.txt
[qianxin@hadoop-master hadoop-2.5.0]$ vim /opt/datas/wordcount_input/wc_input.txt 

 

2.png

 

2)在hdfs上创建新路径

[qianxin@hadoop-master hadoop-2.5.0]$ bin/hdfs dfs -mkdir -p /user/qianxin/mapreduce/wordcount/input

 

2.png

 

3)上传自定义的wc_input.txt文件至hdfs上的input目录

[qianxin@hadoop-master hadoop-2.5.0]$ bin/hdfs dfs -put /opt/datas/wordcount_input/wc_input.txt /user/qianxin/mapreduce/wordcount/input
[qianxin@hadoop-master hadoop-2.5.0]$ bin/hdfs dfs -ls /user/qianxin/mapreduce/wordcount/input/*

 

2.png

 

4)运行WordCount程序

[qianxin@hadoop-master hadoop-2.5.0]$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/qianxin/mapreduce/wordcount/input /user/qianxin/mapreduce/wordcount/output

 

2.png

 

界面监控MapReduce WordCount程序的运行:

2.png

 

MapReduce WordCount程序结束后显示的运行详情:

2.png

 

5)程序运行结果
程序运行结束后会在/user/qianxin/mapreduce/wordcount/目录下生成一个output目录。

2.png

 

显示程序运行的结果:

[qianxin@hadoop-master hadoop-2.5.0]$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/qianxin/mapreduce/wordcount/input /user/qianxin/mapreduce/wordcount/output

 

2.png

 


HDFS、YARN以及MapReduce功能描述

HDFS

易于扩展的分布式文件系统,为进一步分析计算提供数据基础;运行在大量普通廉价机器上,提供容错机制,数据自动冗余,无需另外备份;提供分布式存储机制,为大量用户提供可先行增长的存储能力以及性能不错的文件存取服务。
HDFS三大体系结构及功能: NameNode:是主节点,存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限)以及每个文件的块列表和块所在的DataNode等; DataNode:存放具体数据,数据块存储在不同的DataNode中,在本地文件系统中存放文件块数据,以及文件快数据的校验和; SecondaryNameNode:用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

YARN

主要负责作业的调度和资源的管理分配;解决MapReduce 1.0固有问题;解决Hadoop 1.X资源利用率不均衡的问题。
YARN四大重要组件及功能: ResourceManager:整个集群只有一个,负责集群资源的统一管理和调度。详细功能:
1) 处理客户端请求;
2) 启动/监控ApplicationMaster;
3) 监控NodeManager;
4) 资源分配与调度。 NodeManager:整个集群有多个,负责单节点资源管理和使用。详细功能:
1) 单个节点上的资源管理和任务管理;
2) 处理来自ResourceManager的命令;
3) 处理癞子ApplicationMaster的命令。 ApplicationMaster:每个应用只有一个,负责应用程序的管理。详细功能:
1) 数据切分;
2) 为应用程序申请资源,并进一步分配给内部任务;
3) 任务监控和容错。 Container:对任务运行环境的抽象。详细功能:
1) 描述任务运行资源(节点、内存、CPU);
2) 描述任务启动命令;
3) 描述任务运行环境。

MapReduce

MapReduce是一个分布式并行计算框架; MapReduce思想:“分而治之”; MapReduce主要由Map和Reduce两大部分构成,Map任务实为“分”,每一个map任务都会开一个Java虚拟机Reduce任务实为“合”,将Map的结果进行计算和规约。
上一篇:PGM:图模型学习概述
下一篇:hadoop-2.5.0源码编译
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站