Hadoop2.3完全分布式安装与配置

简介:

一、Hadoop基本介绍

Hadoop优点

1.高可靠性:Hadoop按位存储和处理数据

2.高扩展性:Hadoop是在计算机集群中完成计算任务,这个集群可以方便的扩展到几千台

3.高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度快

4.高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配

5.低成本:Hadoop是开源的,集群是由廉价的PC机组成

Hadoop架构和组件

Hadoop是一个分布式系统基础架构,底层是HDFS(Hadoop Distributed File System)分布式文件系统,它存储Hadoop集群中所有存储节点上的文件(64MB块),HDFS上一层是MapReduce引擎(分布式计算框架),对分布式文件系统中的数据进行分布式计算。

1.HDFS架构

NameNodeHadoop集群中只有一个NameNode,它负责管理HDFS的目录树和相关文件的元数据信息

Sencondary NameNode有两个作用,一是镜像备份,二是日志与镜像定期合并,并传输给NameNode

DataNode负责实际的数据存储,并将信息定期传输给NameNode

2.MapReduce架构(Hadoop0.23以后采用MapReduce v2.0或Yarn)

Yarn主要是把jobtracker的任务分为两个基本功能:资源管理和任务调度与监控,ResourceManager和每个节点(NodeManager)组成了新处理数据的框架。

ResourceManager负责集群中的所有资源的统一管理和分配,接受来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各种应用程序(ApplicationMaster)。

NodeManager与ApplicationMaster承担了MR1框架中的tasktracker角色,负责将本节点上的资源使用情况和任务运行进度汇报给ResourceManager。


wKioL1MS0-vDQ_JSAABrjdkYbj0500.jpg

           MapReduce v1.0框架(图1)


wKioL1MS0_aRv39tAAELEZ6oI_U104.jpg

            MapReduce v2.0框架(图2)


环境介绍:

master-hadoop 192.168.0.201

slave1-hadoop 192.168.0.202

slave2-hadoop 192.168.0.203

最新稳定版:http://www.apache.org/dist/hadoop/core/hadoop-2.3.0/

JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

参考官方文档:http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-common/ClusterSetup.html

Hadoop三种运行方式:单节点方式(单台)、单机伪分布方式(一个节点的集群)与完全分布式(多台组成集群)

二、准备环境

1.Hadoop是用Java开发的,必须要安装JDK1.6或更高版本

2.Hadoop是通过SSH来启动slave主机中的守护进程,必须安装OpenSSH

3.Hadoop更新比较快,我们采用最新版hadoop2.3来安装

4.配置对应Hosts记录,关闭iptables和selinux(过程略)

5.创建相同用户及配置无密码认证

三、安装环境(注:三台配置基本相同)

1.安装JDK1.7

1
2
3
4
5
6
7
8
9
10
11
12
[root@master-hadoop ~] # tar zxvf jdk-7u17-linux-x64.tar.gz
[root@master-hadoop ~] # mv jdk1.7.0_17/ /usr/local/jdk1.7
[root@slave1-hadoop ~] # vi /etc/profile    #末尾添加变量
JAVA_HOME= /usr/local/jdk1 .7
PATH=$PATH:$JAVA_HOME /bin
CLASSPATH=$JAVA_HOME /lib :$JAVA_HOME /jre/lib
export  JAVA_HOME PATH CLASSPATH 
[root@slave1-hadoop ~] # source /etc/profile
[root@slave1-hadoop ~] # java -version      #显示版本说明配置成功
java version "1.7.0_17"
Java(TM) SE RuntimeEnvironment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-BitServer VM (build 23.7-b01, mixed mode)

2.创建hadoop用户,指定相同UID

1
2
3
4
5
6
[root@master-hadoop ~] # useradd -u 600 hadoop
[root@master-hadoop ~] # passwd hadoop
Changing password  for  userhadoop.
New password:
Retype new password:
passwd : all authenticationtokens updated successfully.

3.配置SSH无密码登录(注:master-hadoop本地也要实现无密码登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@master-hadoop ~] # su - hadoop
[hadoop@master-hadoop ~]$  ssh -keygen -t rsa      #一直回车生成密钥
[hadoop@master-hadoop ~]$  cd  /home/hadoop/ . ssh /
[hadoop@master-hadoop . ssh ]$  ls
id_rsa  id_rsa.pub
[hadoop@slave1-hadoop ~]$  mkdir  /home/hadoop/ . ssh    #登录两台创建.ssh目录
[hadoop@slave2-hadoop ~]$  mkdir  /home/hadoop/ . ssh
[hadoop@master-hadoop . ssh ]$  scp  id_rsa.pub hadoop@slave1-hadoop: /home/hadoop/ . ssh /
[hadoop@master-hadoop . ssh ]$  scp  id_rsa.pub hadoop@slave2-hadoop: /home/hadoop/ . ssh /
[hadoop@slave1-hadoop ~]$  cd  /home/hadoop/ . ssh /
[hadoop@slave1-hadoop . ssh ]$  cat  id_rsa.pub >> authorized_keys
[hadoop@slave1-hadoop . ssh ]$  chmod  600 authorized_keys
[hadoop@slave1-hadoop . ssh ]$  chmod  700 ../. ssh /    #目录权限必须设置700
[root@slave1-hadoop ~] # vi /etc/ssh/sshd_config   #开启RSA认证
RSAAuthentication  yes
PubkeyAuthentication  yes
AuthorizedKeysFile . ssh /authorized_keys
[root@slave1-hadoop ~] # service sshd restart

四、Hadoop的安装与配置(注:三台服务器配置一样,使用scp复制过去)

1
2
3
4
5
6
7
[root@master-hadoop ~] # tar zxvf hadoop-2.3.0.tar.gz -C /home/hadoop/
[root@master-hadoop ~] # chown hadoop.hadoop -R /home/hadoop/hadoop-2.3.0/
[root@master-hadoop ~] # vi /etc/profile   #添加hadoop变量,方便使用
HADOOP_HOME= /home/hadoop/hadoop-2 .3.0/
PATH=$PATH:$HADOOP_HOME /bin :$HADOOP_HOME /sbin
export  HADOOP_HOME PATH
[root@master-hadoop ~] # source /etc/profile

1. hadoop-env.sh设置jdk路径

1
2
3
[hadoop@master-hadoop ~]$  cd  hadoop-2.3.0 /etc/hadoop/
[hadoop@master-hadoop hadoop]$  vi  hadoop- env .sh
export  JAVA_HOME= /usr/local/jdk1 .7/

2.slaves设置从节点

1
2
3
[hadoop@master-hadoop hadoop]$  vi  slaves
slave1-hadoop 
slave2-hadoop

3.core-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<configuration>
<property>
<name>fs.defaultFS< /name >
<value>hdfs: //master-hadoop :9000< /value >
< /property >
<property>
<name>io. file .buffer.size< /name >
<value>131072< /value >
< /property >
<property>
<name>hadoop.tmp. dir < /name >
<value> file : /home/hadoop/tmp < /value >
< /property >
< /configuration >
4.hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name. dir < /name >
<value> file : /home/hadoop/dfs/name < /value >
< /property >
<property>
<name>dfs.namenode.data. dir < /name >
<value> file : /home/hadoop/dfs/data < /value >
< /property >
<property>
<name>dfs.replication< /name >     #数据副本数量,默认3,我们是两台设置2
<value>2< /value
< /property >
< /configuration >

6.yarn-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<configuration>
<property>
<name>yarn.resourcemanager.address< /name >
<value>master-hadoop:8032< /value >
< /property >
<property>
<name>yarn.resourcemanager.scheduler.address< /name >
<value>master-hadoop:8030< /value >
< /property >
<property>
<name>yarn.resourcemanager.resource-tracker.address< /name >
<value>master-hadoop:8031< /value >
< /property >
<property>
<name>yarn.resourcemanager.admin.address< /name >
<value>master-hadoop:8033< /value >
< /property >
<property>
<name>yarn.resourcemanager.webapp.address< /name >
<value>master-hadoop:8088< /value >
< /property >
<property>
<name>yarn.nodemanager.aux-services< /name >
<value>mapreduce_shuffle< /value >
< /property >
<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class< /name >
    <value>org.apache.hadoop.mapred.ShuffleHandler< /value >
< /property >
< /configuration >

7.mapred-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
<property>
<name>mapreduce.framework.name< /name >
<value>yarn< /value >
< /property >
<property>
<name>mapreduce.jobhistory.address< /name >
<value>master-hadoop:10020< /value >
< /property >
<property>
<name>mapreduce.jobhistory.webapp.address< /name >
<value>master-hadoop:19888< /value >
< /property >
< /configuration >

五、格式化文件系统并启动

1.格式化新的分布式文件系统(hdfs namenode -format

wKiom1MS1DSiAgo4AAXvONDFnvs364.jpg

2.启动HDFS文件系统并使用jps检查守护进程是否启动

wKiom1MS1D7CRuM-AAL910T_7Zo320.jpg

wKioL1MS1ETy_saEAAA_Z9hlJyI709.jpg

可以看到master-hadoop已经启动NameNode和SecondaryNameNode进程,slave-hadoop已经启动DataNode进程说明正常。

3.启动新mapreduce架构(YARN)

wKiom1MS1JSTJYZuAAGsL2ftiq4313.jpg

wKioL1MS1HiSqDLnAABLaZvuy0c392.jpg

可以看到master-hadoop已经启动ResourceManger进程,slave-hadoop已经启动NodeManager进程说明正常。

4.查看集群状态

wKiom1MS1KfSbrq-AAFu2a1fmHQ432.jpg

5.通过web查看资源(http://192.168.0.201:8088)

wKiom1MS1NHwFfDFAAOdMhjRyTw847.jpg

6、查看HDFS状态(http://192.168.0.201:50070)

wKiom1MS1N2wI6cEAALawzAGv98814.jpg



本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1365883,如需转载请自行联系原作者

相关文章
|
1月前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
1月前
|
存储 分布式计算 Hadoop
Hadoop【基础知识 01】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)
【4月更文挑战第3天】Hadoop【基础知识 01】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)
43 3
|
1月前
|
存储 分布式计算 监控
Hadoop【基础知识 01+02】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
77 2
|
2天前
|
分布式计算 资源调度 Hadoop
安装hadoop学习笔记
安装hadoop学习笔记
13 0
安装hadoop学习笔记
|
3天前
|
存储 分布式计算 Hadoop
Hadoop配置
【5月更文挑战第4天】
13 1
单向/双向V2G环境下分布式电源与电动汽车充电站联合配置方法(matlab代码)
单向/双向V2G环境下分布式电源与电动汽车充电站联合配置方法(matlab代码)
|
4天前
|
调度
考虑充电负荷空间可调度特性的分布式电源与电动汽车充电站联合配置方法(matlab代码)
考虑充电负荷空间可调度特性的分布式电源与电动汽车充电站联合配置方法(matlab代码)
|
4天前
|
安全
考虑极端天气线路脆弱性的配电网分布式电源和储能优化配置模型
考虑极端天气线路脆弱性的配电网分布式电源和储能优化配置模型
|
4天前
|
调度
互动环境下分布式电源与电动汽车充电站的优化配置方法研究-全文复现matlab
互动环境下分布式电源与电动汽车充电站的优化配置方法研究-全文复现matlab
|
6天前
|
分布式计算 Hadoop Linux
Hadoop节点IP地址和子网掩码配置
【5月更文挑战第1天】
26 5

相关实验场景

更多