在一个全配置的集群上,“运行Hadoop”意味着在网络分布的不同服务器上运行一组daemons。这些daemons包括:

  • NameNode
  • DataNode
  • Secondary NameNode
  • JobTracker
  • TaskTracker

NameNode位于HDFS的主端,指导从端的DataNode执行底层的I/O任务。

DataNode将HDFS数据块读取或者写入到本地系统的实际文件中

Secondary NameNode是一个用于监测HDFS集群状态的辅助daemon。

JobTracker是应用程序和Hadoop之间的纽带。一旦提交代码到集群上,JobTracker就会确定执行计划,包括决定处理哪些文件、为不同的任务分配节点以及监控所有任务的运行。

TaskTracker管理各个任务在每个从节点上的执行情况。

下图为Hadoop集群的典型拓扑图。这是一个主/从架构,其中NameNode和JobTracker为主端,DataNode和TaskTracker为从端。

安装一个Hadoop集群时,需要专门指定一个服务器作为主节点。这个服务器通常会运行NameNode和JobTracker。它也将作为一个基站,负责联络并激活所有从节点上的DataNode和TaskTracker。Hadoop使用SSH协议来通信。

安装Hadoop集群前,要先定义一个公共账号。这里使用xiaoruoen

安装Hadoop集群时要先验证SSH是否安装。

如果没有安装,使用yum install openssh来安装,如下

  1. [xiaoruoen@localhost ~]# yum install openssh
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.163.com
  5. * extras: mirrors.163.com
  6. * updates: mirrors.163.com
  7. Setting up Install Process
  8. Resolving Dependencies
  9. --> Running transaction check
  10. --> Processing Dependency: openssh = 4.3p2-36.el5 for package: openssh-clients
  11. --> Processing Dependency: openssh = 4.3p2-36.el5 for package: openssh-askpass
  12. --> Processing Dependency: openssh = 4.3p2-36.el5 for package: openssh-server
  13. ---> Package openssh.i386 0:4.3p2-82.el5 set to be updated
  14. --> Running transaction check
  15. ---> Package openssh-askpass.i386 0:4.3p2-82.el5 set to be updated
  16. ---> Package openssh-clients.i386 0:4.3p2-82.el5 set to be updated
  17. ---> Package openssh-server.i386 0:4.3p2-82.el5 set to be updated
  18. --> Finished Dependency Resolution
  19. Dependencies Resolved
  20. =====================================================================================================================================================
  21. Package                                  Arch                          Version                                  Repository                     Size
  22. =====================================================================================================================================================
  23. Updating:
  24. openssh                                  i386                          4.3p2-82.el5                             base                          291 k
  25. Updating for dependencies:
  26. openssh-askpass                          i386                          4.3p2-82.el5                             base                           42 k
  27. openssh-clients                          i386                          4.3p2-82.el5                             base                          455 k
  28. openssh-server                           i386                          4.3p2-82.el5                             base                          275 k
  29. Transaction Summary

成功安装SSH之后,使用主节点上的ssh-keygen来生成一RSA密钥对。

  1. [xiaoruoen@localhost ~]$ ssh-keygen -t rsa
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/home/xiaoruoen/.ssh/id_rsa):
  4. Created directory '/home/xiaoruoen/.ssh'.
  5. Enter passphrase (empty for no passphrase):
  6. Enter same passphrase again:
  7. Your identification has been saved in /home/xiaoruoen/.ssh/id_rsa.
  8. Your public key has been saved in /home/xiaoruoen/.ssh/id_rsa.pub.
  9. The key fingerprint is:
  10. 33:47:bc:c0:cf:82:92:d2:69:3a:73:f1:3a:14:74:f8 xiaoruoen@localhost.localdomain
  11. [xiaoruoen@localhost ~]$ more /home/xiaoruoen/.ssh/id_rsa.pub
  12. ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAnYAiD7YCrZR3L8Ps1KKqy1FoA3azcnrFP481zJfGGVKC2judapiZJcjca48B99Zqa4jNyRgREAzTQHxbSRKkQqnA1TB5BK7sKrXp6yl3lCQ/E4k05i6aLHU6DImufWJlmbBr
  13. 3ILrxG+sNiD/ihcZ66o74/lXUemTHcNomRLEUgJoI8U6X2PiTmD5HqW7VxelseJ2yIZ8cfx9n+0MQbEQBj5Nme8JR7XBFEGWFzySfp2hWR9SfTwqcRRuiVgEczics4ebdk22SsP13lAdltSS/mqJfVG2G6neVBTt+E0+0AI8
  14. 27DBza9oY2bMiR0HCCihEU2vuLTaKpAzigna1/h2nQ== xiaoruoen@localhost.localdomain

将公钥分布到从服务器上

  1. [xiaoruoen@localhost ~]$ scp ~/.ssh/id_rsa.pub xiaoruoen@192.168.0.107:~/master_key
  2. The authenticity of host '192.168.0.107 (192.168.0.107)' can't be established.
  3. RSA key fingerprint is d1:ac:46:8f:97:32:0b:88:82:2b:14:60:b0:e6:70:c4.
  4. Are you sure you want to continue connecting (yes/no)? y
  5. Please type 'yes' or 'no': yes
  6. Warning: Permanently added '192.168.0.107' (RSA) to the list of known hosts.
  7. xiaoruoen@192.168.0.107's password:
  8. id_rsa.pub                                                                                                                            100%  413     0

登录到从服务器上进行验证

  1. [xiaoruoen@localhost ~]$ mkdir ~/.ssh
  2. [xiaoruoen@localhost ~]$ chmod 700 ~/.ssh
  3. [xiaoruoen@localhost ~]$ mv ~/master_key ~/.ssh/authorized_keys
  4. [xiaoruoen@localhost ~]$ chmod 600 ~/.ssh/authorized_keys

尝试从主节点登录到目标节点来验证它的正确性

  1. [xiaoruoen@localhost ~]$ ssh 192.168.0.107
  2. Last login: Thu Apr 12 22:07:21 2012 from 192.168.0.102

到Hadoop根目录下的conf目录下找到hadoop-env.sh,修改JAVA_HOME

  1. [xiaoruoen@localhost ~]$ cd $HADOOP_HOME/conf
  2. [xiaoruoen@localhost conf]$ ll
  3. total 140
  4. -rw-rw-r-- 1 root root 7457 Mar 25 08:01 capacity-scheduler.xml
  5. -rw-rw-r-- 1 root root  535 Mar 25 08:01 configuration.xsl
  6. -rw-rw-r-- 1 root root  178 Mar 25 08:01 core-site.xml
  7. -rw-rw-r-- 1 root root  327 Mar 25 08:01 fair-scheduler.xml
  8. -rw-rw-r-- 1 root root 2237 Mar 25 08:01 hadoop-env.sh
  9. -rw-rw-r-- 1 root root 1488 Mar 25 08:01 hadoop-metrics2.properties
  10. -rw-rw-r-- 1 root root 4644 Mar 25 08:01 hadoop-policy.xml
  11. -rw-rw-r-- 1 root root  178 Mar 25 08:01 hdfs-site.xml
  12. -rw-rw-r-- 1 root root 4441 Mar 25 08:01 log4j.properties
  13. -rw-rw-r-- 1 root root 2033 Mar 25 08:01 mapred-queue-acls.xml
  14. -rw-rw-r-- 1 root root  178 Mar 25 08:01 mapred-site.xml
  15. -rw-rw-r-- 1 root root   10 Mar 25 08:01 masters
  16. -rw-rw-r-- 1 root root   10 Mar 25 08:01 slaves
  17. -rw-rw-r-- 1 root root 1243 Mar 25 08:01 ssl-client.xml.example
  18. -rw-rw-r-- 1 root root 1195 Mar 25 08:01 ssl-server.xml.example
  19. -rw-rw-r-- 1 root root  382 Mar 25 08:01 taskcontroller.cfg
  1. [xiaoruoen@localhost conf]$ vim hadoop-env.sh
  2. # Set Hadoop-specific environment variables here.
  3. # The only required environment variable is JAVA_HOME.  All others are
  4. # optional.  When running a distributed configuration it is best to
  5. # set JAVA_HOME in this file, so that it is correctly defined on
  6. # remote nodes.
  7. # The java implementation to use.  Required.
  8. export JAVA_HOME=/home/samba/jdk1.6.0_30

Hadoop的设置主要包含在XML配置文件中。在0.20版本前,它们是hadoop-default.xml和hadoop-site.xml。在版本0.20中,这hadoop-site.xml被分离成3个xml文件:core-site.xml,hdfs-stie.xml与mapred-site.xml。

分布式运行hadoop,就要修改这三个文件

在core-site.xml配置NameNode

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <!-- Put site-specific property overrides in this file. -->
  4. <configuration>
  5. <property>
  6. <name>fs.default.name</name>
  7. <value>hdfs://master:9000</value>
  8. </property>
  9. </configuration>

在mapred-site.xml中配置JobTracker

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <!-- Put site-specific property overrides in this file. -->
  4. <configuration>
  5. <property>
  6. <name>mapred.job.tracker</name>
  7. <value>hdfs://master:9001</value>
  8. </property>
  9. </configuration>

在hdfs-site.xml中配置增大HDFS备份参数

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <!-- Put site-specific property overrides in this file. -->
  4. <configuration>
  5. <property>
  6. <name>dfs.replication</name>
  7. <value>3</value>
  8. </property>
  9. </configuration>

更新masters和slaves文件来指定共它daemon的位置。

设定主服务器所在位置,也就是NameNode与JobTracker所在位置

  1. vim masters
  2. localhost

设定从服务器所在位置,也就是DataNode与TaskTracker所在位置

  1. vim slaves
  2. 192.168.0.108
  3. 192.168.0.109

格式化HDFS文件系统

hadoop namenode -format

(如果提示未找到类,可以在~/.bash_profile里设置CLASSPATH为$HADOOP_HOME/hadoop-core-*.jar;$HADOOP_HOME/hadoop-tool-*.jar;)

启动所有的节点

  1. ./start-all.sh

使用JPS来查看节点

  1. jps
  2. 30879 JobTracker
  3. 30717 NameNode
  4. 30965 jps
  1. jps
  2. 7101 TaskTracker
  3. 7617 Jps
  4. 6988 DataNode

转载于:https://blog.51cto.com/xiaoruoen/832651

Hadoop---集群安装相关推荐

  1. Hadoop实战-中高级部分 之 Hadoop 集群安装

    Hadoop RestFul Hadoop HDFS原理1 Hadoop HDFS原理2 Hadoop作业调优参数调整及原理 Hadoop HA Hadoop MapReduce高级编程 Hadoop ...

  2. Hadoop集群安装与配置

    转载自Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS 本教程讲述如何配置 Hadoop 集群,默认读者已经掌握了 Hadoop 的单机伪分布式配置,否则请先查看Had ...

  3. Hadoop集群安装及其配置(三台虚拟机)

    Hadoop集群安装及其配置(三台虚拟机) 利安装配置前准备--安装虚拟机 利用cat查看配置文件 修改主机名称 配置IP映射 配置网卡设备的mac地址 Xshell的安装与配置 ssh的配置 JDK ...

  4. Hadoop集群安装和搭建(全面超详细的过程)

    Hadoop集群安装和搭建(全面超详细的过程) 文章目录 Hadoop集群安装和搭建(全面超详细的过程) 前言 一.虚拟机的安装 二.Linux系统安装 1.环境准备 2.虚拟机安装 三.Centos ...

  5. hadoop集群安装

    一.简述 本次集群安装基于4台虚拟集群下进行. hadoop版本使用 2.6.4 操作系统为 centos6.5 jdk版本为 jdk-7u67-linux-x64.tar.gz 二.准备 创建had ...

  6. Hadoop集群安装-CDH5(5台服务器集群)

    CDH5包下载:http://archive.cloudera.com/cdh5/ 架构设计: 主机规划: IP Host 部署模块 进程 192.168.254.151 Hadoop-NN-01 N ...

  7. 一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)

    1:Hadoop分布式计算平台是由Apache软件基金会开发的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS)和MapReduce(Google MapReduce的开源实现)为核心的 ...

  8. Hadoop集群安装部署_分布式集群安装_02

    文章目录 一.上传与 解压 1. 上传安装包 2. 解压hadoop安装包 二.修改hadoop相关配置文件 2.1. hadoop-env.sh 2.2. core-site.xml 2.3. hd ...

  9. Hadoop集群安装部署_分布式集群安装_01

    文章目录 1. 分布式集群规划 2. 数据清理 3. 基础环境准备 4. 配置ip映射 5. 时间同步 6. SSH免密码登录完善 7. 免密登录验证 1. 分布式集群规划 伪分布集群搞定了以后我们来 ...

  10. Hadoop集群安装部署_伪分布式集群安装_02

    文章目录 一.解压安装 1. 安装包上传 2. 解压hadoop安装包 二.修改Hadoop相关配置文件 2.1. hadoop-env.sh 2.2. core-site.xml 2.3. hdfs ...

最新文章

  1. Python 图像处理简介——色彩阴影调整
  2. Android UI -- 布局介绍(布局包括FrameLayout, LinearLayout, RelativeLayout, GridLayout)
  3. python浪漫代码-python七夕浪漫表白源码
  4. 【Python】趣学Python变量和赋值:大师兄和二师兄教的好~
  5. WebDriver高级应用实例(7)
  6. 445. 两数相加 II golang
  7. python 水位_Leetcode 42. 接雨水 - python - 递归 查找分水岭
  8. C++ 空间配置器(allocator)
  9. 例子---年倒计时/JS日期对象类型
  10. 不同网站不同网卡_弄清高端网站建设的独特不同之处才能做好网站
  11. 分类型变量预测连续型变量_「JS进阶」你真的掌握变量和类型了吗
  12. JavaScript之子类构建工具
  13. Windows服务创建及安装
  14. oracle将日期格式化to_char及字符串转日期to_date
  15. edge chrome Android,微软Edge浏览器正式登陆Android平台
  16. mac电脑上的效率工具:alfred 4
  17. GB28181协议--设备注册和注销
  18. 【MapGIS精品教程】001:MapGIS K9完整图文安装教程
  19. Android Jetpack 系列篇(一) Data Binding
  20. 无线承载根据承载的内容不同分为SRB和DRB EPS承载根据用户业务需求和Qos的不同可以分为GBR/ Non-GBR 承载...

热门文章

  1. 很火的仿soul交友盲盒1.0全开源源码
  2. 史上最全的ECharts讲解与使用
  3. 针对文字加密的简单 JS 加密算法 --进制乱序法改良版
  4. 16个SNS网站常用JS组件
  5. 9款WordPress视频插件
  6. 如何用Pygame写游戏(七)
  7. Linux(debian 7)错误集锦(一)之开机显示 a start job is running for dev-disk 解决办法
  8. LeetCode 343. Integer Break
  9. 记一次线上压测Dubbo线程池队列满的问题
  10. django-前端上传图片190912