Rhel6-hadoop分布式部署配置文档

时间:2022-09-09 14:12:30

理论基础:

Hadoop  分布式文件系统架构

HDFS  负责大数据存储

MapReduce  负责大数据计算

namenode  master守护进程

datanode  slaves上负责存储的进程

secondarynamenode   master上提供周期检查和清理任务的进程

jobtracker   master上负责调度datanode上工作的进程

tasktracker  slaves上负责计算的进程

Hadoop 主从节点分解:

Rhel6-hadoop分布式部署配置文档

主节点包括名称节点、从属名称节点和jobtracker守护进程(即所谓的主守护进程)以及管理集群所用的实用程序和浏览器。从节点包括tasktracker和数据节点(从属守护进程)。两种设置的不同之处在于,主节点包括提供Hadoop集群管理和协调的守护进程,而从节点包括实现Hadoop文件系统(HDFS)存储功能和MapReduce功能(数据处理功能)的守护进程。

每个守护进程在Hadoop框架中的作用。namenode是Hadoop中的主服务器,它管理文件系统名称空间和对集群中存储的文件的访问。还有一个secondary namenode,它不是namenode的冗余守护进程,而是提供周期检查点和清理任务。在每个Hadoop集群中可以找到一个namenode和一个secondarynamenode。

datanode管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个datanode守护进程。

每个集群有一个jobtracker,它负责调度datanode上的工作。每个
datanode有一个tasktracker,它们执行实际工作。jobtracker和tasktracker
采用主-从形式,jobtracker跨datanode分发工作,而tasktracker执行任务。jobtracker还检查请求的工作,如果一个datanode由于某种原因失败,jobtracker
会重新调度以前的任务。

配置:

系统环境: rhel6 x86_64 iptables and selinux disabled

主机: 192.168.122.112 server12.example.com Master 192.168.122.234 server34.example.com Slave

192.168.122.20 server20.example.com Slave

注:所有主机间时间需同步,并实现无密码认证

所需的包: hadoop-1.1.2.tar.gz

相关网址http://hadoop.apache.org/

#在所有节点上安装jdk

[root@server12 ~]# sh jdk-6u32-linux-x64.bin

[root@server12 ~]# tar zxf hadoop-1.1.2.tar.gz -C /usr/local/

[root@server12 ~]# mv jdk1.6.0_32/ /usr/local/hadoop-1.1.2/jdk

[root@server12 ~]# vim /etc/profile

export JAVA_HOME=/usr/local/hadoop-1.1.2/jdk

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin

[root@server12 ~]# source /etc/profile

生产环境中建议建立一个普通用户来实施以下操作,本文档直接用root用户执行

Standalone Operation

以下步骤在server12上实施:

[root@server12 hadoop-1.1.2]# mkdir dir1

[root@server12 hadoop-1.1.2]# cp conf/* dir1/

[root@server12 hadoop-1.1.2]# bin/hadoop jar hadoop-examples-1.1.2.jar grep dir1/ dir2/ 'dfs[a-z.]+'

[root@server12 hadoop-1.1.2]# cat dir2/*

1 dfs.server.namenode.

1 dfsadmin

注:出现类似如上输出说明成功

Pseudo-Distributed
Operation(
伪分布式)

以下步骤在server12上实施:

[root@server12
~]# cd /usr/local/hadoop-1.1.2/conf/

[root@server12
conf]# vim core-site.xml

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://192.168.122.112:9000</value>
#指定
namenode

</property>

</configuration>

[root@server12
conf]# vim hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name> #指定文件保存的副本数

<value>1</value>

</property>

</configuration>

[root@server12
conf]# vim mapred-site.xml

<configuration>

<property>

<name>mapred.job.tracker</name> #指定
jobtracker

<value>192.168.122.112:9001</value>

</property>

</configuration>

[root@server12
conf]# vim hadoop-env.sh

export JAVA_HOME=/usr/local/hadoop-1.1.2/jdk
(此JAVA_HOME路径跟安装jdk时候指定的JAVA_HOME一致)

#建立ssh无密码登录

[root@server12
conf]# ssh-keygen (一路回车即可)

[root@server12
conf]# ssh-copy-id localhost

[root@server12
conf]# cd /usr/local/hadoop-1.1.2/

[root@server12
hadoop-1.1.2]# bin/hadoop namenode -format

/************************************************************

STARTUP_MSG:
Starting NameNode

STARTUP_MSG:
host = server12.example.com/192.168.122.112

STARTUP_MSG:
args = [-format]

STARTUP_MSG:
version = 1.1.2

STARTUP_MSG:
build =
https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r
1440782; compiled by 'hortonfo' on Thu Jan 31 02:03:24 UTC 2013

************************************************************/

13/12/01
15:49:39 INFO util.GSet: VM type = 64-bit

13/12/01
15:49:39 INFO util.GSet: 2% max memory = 19.33375 MB

13/12/01
15:49:39 INFO util.GSet: capacity = 2^21 = 2097152 entries

13/12/01
15:49:39 INFO util.GSet: recommended=2097152, actual=2097152

13/12/01
15:49:39 INFO namenode.FSNamesystem: fsOwner=root

13/12/01
15:49:39 INFO namenode.FSNamesystem: supergroup=supergroup

13/12/01
15:49:39 INFO namenode.FSNamesystem: isPermissionEnabled=true

13/12/01
15:49:39 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100

13/12/01
15:49:39 INFO namenode.FSNamesystem: isAccessTokenEnabled=false
accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)

13/12/01
15:49:39 INFO namenode.NameNode: Caching file names occuring more
than 10 times

13/12/01
15:49:40 INFO common.Storage: Image file of size 110 saved in 0
seconds.

13/12/01
15:49:40 INFO namenode.FSEditLog: closing edit log: position=4,
editlog=/tmp/hadoop-root/dfs/name/current/edits

13/12/01
15:49:40 INFO namenode.FSEditLog: close success: truncate to 4,
editlog=/tmp/hadoop-root/dfs/name/current/edits

13/12/01
15:49:40 INFO common.Storage: Storage directory
/tmp/hadoop-root/dfs/name has been successfully formatted.

13/12/01
15:49:40 INFO namenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG:
Shutting down NameNode at server12.example.com/192.168.122.112

************************************************************/

注:出现类似如上输出为正常

[root@server12
hadoop-1.1.2]# bin/start-all.sh

[root@server12
hadoop-1.1.2]# jps

2065
NameNode

2164
DataNode

2346
JobTracker

2262
SecondaryNameNode

2448
TaskTracker

个进程说明启动成功.

和可分别看到如下页面:

Rhel6-hadoop分布式部署配置文档

Rhel6-hadoop分布式部署配置文档

测试:

[root@server12 hadoop-1.1.2]# mkdir input

[root@server12 hadoop-1.1.2]# cp conf/* input/

[root@server12 hadoop-1.1.2]# bin/hadoop fs -mkdir dir1

[root@server12 hadoop-1.1.2]# bin/hadoop fs -ls

Found 1 items

drwxr-xr-x - root supergroup 0 2013-12-01 15:57 /user/root/dir1

[root@server12
hadoop-1.1.2]# bin/hadoop fs -put input/* dir1

[root@server12
hadoop-1.1.2]# bin/hadoop fs -ls dir1 (列出分布式文件系统dir1中的内容)

[root@server12
hadoop-1.1.2]# bin/hadoop jar hadoop-examples-1.1.2.jar grep dir1
dir2 'dfs[a-z.]+'

[root@server12
hadoop-1.1.2]# bin/hadoop fs -cat dir2/*

cat:
ouput/_logs: Is a directory

1 dfs.server.namenode.

1 dfsadmin

[root@server12
hadoop-1.1.2]# bin/hadoop fs -get dir2 output
(将分布式文件系统中的文件导出到本地的output文件夹中)

[root@server12
hadoop-1.1.2]# cat output/*

cat:
ouput/_logs: Is a directory

1 dfs.server.namenode.

1 dfsadmin

Fully-Distributed
Operation(
分布式)

以下步骤在server12上实施:

[root@server12
~]# cd /usr/local/hadoop-1.1.2/conf/

[root@server12
conf]# vim core-site.xml

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://192.168.122.112:9000</value>
#指定
namenode

</property>

</configuration>

[root@server12
conf]# vim hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name> #指定文件保存的副本数

<value>2</value>

</property>

</configuration>

[root@server12
conf]# vim mapred-site.xml

<configuration>

<property>

<name>mapred.job.tracker</name> #指定
jobtracker

<value>192.168.122.112:9001</value>

</property>

</configuration>

[root@server12
conf]# vim hadoop-env.sh

export JAVA_HOME=/usr/local/hadoop-1.1.2/jdk
(此JAVA_HOME路径跟安装jdk时候指定的JAVA_HOME一致)

[root@server12
conf]# vim masters

192.168.122.112
#指定master节点的IP

[root@server12
conf]# vim slaves

192.168.122.234
#指定slave节点的IP

192.168.122.20

[root@server12
conf]# scp -r /usr/local/hadoop-1.1.2/
root@192.168.122.234:/usr/local/

[root@server12
conf]# scp -r /usr/local/hadoop-1.1.2/
root@192.168.122.20:/usr/local/

[root@server12
conf]# scp /etc/profile root@192.168.122.234:/etc/

[root@server12
conf]# scp /etc/profile root@192.168.122.20:/etc/

以下步骤在server34server20上实施:

[root@server34
~]# source /etc/profile

#建立ssh无密码登录

[root@server12
conf]# ssh-keygen (一路回车即可)

[root@server12
conf]# ssh-copy-id 192.168.122.234

[root@server12
conf]# ssh-copy-id 192.168.122.20

[root@server12
conf]# cd /usr/local/hadoop-1.1.2/

[root@server12
hadoop-1.1.2]# bin/hadoop namenode -format

13/12/01
17:10:42 INFO namenode.NameNode: STARTUP_MSG:

/************************************************************

STARTUP_MSG:
Starting NameNode

STARTUP_MSG:
host = server12.example.com/192.168.122.112

STARTUP_MSG:
args = [-format]

STARTUP_MSG:
version = 1.1.2

STARTUP_MSG:
build =
https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r
1440782; compiled by 'hortonfo' on Thu Jan 31 02:03:24 UTC 2013

********13/12/01
17:10:45 INFO util.GSet: VM type = 64-bit

13/12/01
17:10:45 INFO util.GSet: 2% max memory = 19.33375 MB

13/12/01
17:10:45 INFO util.GSet: capacity = 2^21 = 2097152 entries

13/12/01
17:10:45 INFO util.GSet: recommended=2097152, actual=2097152

13/12/01
17:10:45 INFO namenode.FSNamesystem: fsOwner=root

13/12/01
17:10:45 INFO namenode.FSNamesystem: supergroup=supergroup

13/12/01
17:10:45 INFO namenode.FSNamesystem: isPermissionEnabled=true

13/12/01
17:10:45 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100

13/12/01
17:10:45 INFO namenode.FSNamesystem: isAccessTokenEnabled=false
accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)

13/12/01
17:10:45 INFO namenode.NameNode: Caching file names occuring more
than 10 times

13/12/01
17:10:46 INFO common.Storage: Image file of size 110 saved in 0
seconds.

13/12/01
17:10:46 INFO namenode.FSEditLog: closing edit log: position=4,
editlog=/tmp/hadoop-root/dfs/name/current/edits

13/12/01
17:10:46 INFO namenode.FSEditLog: close success: truncate to 4,
editlog=/tmp/hadoop-root/dfs/name/current/edits

13/12/01
17:10:46 INFO common.Storage: Storage directory
/tmp/hadoop-root/dfs/name has been successfully formatted.

13/12/01
17:10:46 INFO namenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG:
Shutting down NameNode at server12.example.com/192.168.122.112

************************************************************/
****************************************************/

注:出现类似如上输出为正常

[root@server12
hadoop-1.1.2]# bin/start-all.sh

[root@server12
hadoop-1.1.2]# jps

5385
NameNode

5526
SecondaryNameNode

5612
JobTracker

个进程说明启动成功.

[root@server34
~]# jps

1942
TaskTracker

1873
DataNode

个进程说明启动成功.

和192.168.122.112:50030可分别看到如下页面:

Rhel6-hadoop分布式部署配置文档

Rhel6-hadoop分布式部署配置文档

测试:仿照伪分布式的测试方式即可

Hadoop
在线添加节点:

1.
在新增节点上安装jdk,并创建相同的hadoop用户,uid等保持一致

2.
在conf/slaves文件中添加新增节点的ip

3.
同步master上hadoop所有数据到新增节点上,路径保持一致

4.
在新增节点上启动服务:

#
bin/hadoop-daemon.sh start datanode

#
bin/hadoop-daemon.sh start tasktracker

5.
均衡数据:

#
bin/start-balancer.sh

1)如果不执行均衡,那么cluster会把新的数据都存放在新的datanode上,这样会降低mapred的工作效率

2)设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长

#
bin/start-balancer.sh -threshold 5

Hadoop
在线删除
datanode
节点:

1.
在master上修改conf/mapred-site.xml

<property>

<name>dfs.hosts.exclude</name>

<value>/home/hadoop/hadoop-1.0.4/conf/datanode-excludes</value>

</property>

2.
创建datanode-excludes文件,并添加需要删除的主机,一行一个

192.168.122.77

3.
在master上在线刷新节点

#
bin/hadoop dfsadmin -refreshNodes

此操作会在后台迁移数据,等此节点的状态显示为Decommissioned,就可以安全关闭了。

4.
你可以通过以下命令查看
datanode 状态

#
bin/hadoop dfsadmin -report

在做数据迁移时,此节点不要参与
tasktracker,否则会出现异常。

Hadoop
在线删除
tasktracker
节点:

1.
在master上修改conf/mapred-site.xml

<property>

<name>mapred.hosts.exclude</name>

<value>/home/hadoop/hadoop-1.0.4/conf/tasktracker-excludes</value>

</property>

2.
创建tasktracker-excludes文件,并添加需要删除的主机名,一行一个

192.168.122.77

3.
在master上在线刷新节点

#
bin/hadoop mradmin -refreshNodes

4.
登录
jobtracker
的网络接口,进行查看。

Rhel6-hadoop分布式部署配置文档的更多相关文章

  1. 【G】开源的分布式部署解决方案文档 - 手动安装

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 序言 因各种原因,决定先写使用文档.也证明下项目没有太监.至于安装过程复杂,是因为还没有做一键安装,这个现阶段确实没精力. 项目进度 (点击图片 ...

  2. 【G】开源的分布式部署解决方案文档 - 使用手册

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 已知问题 导航没有联动 因为权限只是做了基础的登录校验,考虑到后面导航要跟权限关联上暂时是写死的. 只有部分界面使用了Vue.js 因为刚开始没 ...

  3. 【G】开源的分布式部署解决方案文档 - Web Deploy

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 微软官方部署方式 右键项目->发布 这个大家应该再熟悉不过,在部署前有个预览界面可以看本次更新到底更新哪些文件. 既然它可以预览部署结果, ...

  4. 【G】开源的分布式部署解决方案文档 - 部署Console &amp&semi; 控制负载均衡 &amp&semi; 跳转持续集成控制台

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 设置项目部署流程 项目类型:选择Console,这个跟功能无关,只是做项目分类,后面会有后续功能 宿主:选择Console 部署方式:选择原始, ...

  5. &lowbar;00024 尼娜抹微笑伊拉克&lowbar;云计算ClouderaManager以及CHD5&period;1&period;0群集部署安装文档V1&period;0

    笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

  6. Apache Hadoop 集群安装文档

    简介: Apache Hadoop 集群安装文档 软件:jdk-8u111-linux-x64.rpm.hadoop-2.8.0.tar.gz http://www.apache.org/dyn/cl ...

  7. Hibernate配置文档详解

    Hibernate配置文档有框架总部署文档hibernate.cfg.xml 和映射类的配置文档 ***.hbm.xml hibernate.cfg.xml(文件位置直接放在src源文件夹即可) (在 ...

  8. Hadoop分布式部署——要点

    这里只记录几个要点,比较容易出问题的地方. 1.各服务器必须有相同的用户(便于使用相同的用户ssh登录)2.ssh互通,配置无密码登录ssh-keygen -t rsa,将id_rsa.pub的内容相 ...

  9. Kerberos主从配置文档

    Kerberos主从配置文档   1. Kerberos主从同步机制 在Master上通过以下命令同步数据: kdb5_util dump /var/kerberos/krb5kdc/slave_db ...

随机推荐

  1. js操作数组

    一.数组的声明方式: var colors = new Array();//创建数组 var colors = new Array(20);//创建20个长度的数组 var colors = new ...

  2. &num;研发解决方案&num;基于Apriori算法的Nginx&plus;Lua&plus;ELK异常流量拦截方案

    郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...

  3. &lbrack;Android&rsqb;Volley源码分析(五)

    前面几篇通过源码分析了Volley是怎样进行请求调度及请求是如何被实际执行的,这篇最后来看下请求结果是如何交付给请求者的(一般是Android的UI主线程). 类图:

  4. OpenStreetMap&sol;Google&sol;百度&sol;Bing瓦片地图服务&lpar;TMS&rpar;

    开源与成熟商业的瓦片地图服务(TMS  2  WMTS),都有如下共同的特性,基本成为了标准: (1) 坐标系:WGS84 (2) 投影:墨卡托投影(Marcator,正轴等角圆柱投影) ------ ...

  5. Android&lpar;安卓&rpar;系统USB-OTG-HID外设通讯开发

    正在为客户开发的X射线荧光成分分析仪(简称手持XRF分析仪 ),采用了MT6577 Android方案来开发.其中负责发送X射线的X-Ray-Tube设备是通过USB口来控制的.为了完成控制,就要求我 ...

  6. MyEclipse10&period;7使用egit托管项目到GitHub

    原文出处:http://www.xuebuyuan.com/2126438.html 1.注册一个github账户:(www.github.com)点击打开链接 注册完成后,登录github后点击右上 ...

  7. 享元模式 FlyWeight 结构型 设计模式(十五)

    享元模式(FlyWeight)  “享”取“共享”之意,“元”取“单元”之意. 意图 运用共享技术,有效的支持大量细粒度的对象. 意图解析 面向对象的程序设计中,一切皆是对象,这也就意味着系统的运行将 ...

  8. MySql开启远程用户登录GRANTALLPRIVILEGESON&ast;&period;&ast;TO&&num;39&semi;root&&num;39&semi;&commat;&&num;39&semi;&percnt;&&num;39&semi;I MySql开启远程用户登录GRANTALLPRIVILEGESON&ast;&period;&ast;TO&&num;39&semi;root&&num;39&semi;&commat;&&num;39&semi;&percnt;&&num;39&semi;I

    MySql开启远程用户登录 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'huawei' WITH GRANT OPTION; FL ...

  9. php 商场收银收费系统&comma;使用的策略模式

    <?php//策略模式就是你有很多的方法,选择一种适合自己的,// 单例模式就是只有一个实例对象,不需要每个文件都要加载,比如连接数据库,// 工厂模式就是 //策略模式 优惠系统.工资计算系统 ...

  10. 外媒速递:系统管理员必须掌握的20条Linux命令

    [51CTO.com原创稿件]外媒速递是核子可乐精选的近日国外媒体的精彩文章推荐,希望大家喜欢! 今天推荐的内容包括:系统管理员必须掌握的20条Linux命令.五款最佳Linux屏幕记录应用.MySQ ...