Hadoop集群部署

Hadoop集群部署

一、环境配置信息

组件 版本
OS CentOS 7.2 64bit
Hadoop hadoop-2.6.0-cdh5.15.1
ZooKeeper 3.4.6
JRE 1.8.0_45

软件存放在https://pan.baidu.com/s/1kbVB00sHAcVyH1kzjl735g


二、主机规划

在云提供商购买三台云主机,配置为2核8G内存。

IP Host 安装软件 进程
114.67.97.1* ruozedata001 Hadoop、zookeeper NameNode
DFSZKFailoverController
JournalNode
DataNode
ResourceManager
JobHistoryServer
NodeManager

QuorumPeerMain
114.67.97.2* ruozedata002 Hadoop、zookeeper NameNode
DFSZKFailoverController
JournalNode
DataNode
ResourceManager
NodeManager

QuorumPeerMain
114.67.98.1** ruozedata003 Hadoop、zookeeper JournalNode
DataNode

NodeManager

PS:符号*表示隐藏真实数字,根据自己的实际情况进行部署。

        当前系统配置 NameNode,ResourceManager 进程的 HA


三、环境准备

使用XShell或者SecurityCRT连接云主机进行后续操作。

1、目录规划

在三台云主机上新建名为<font color=red>hadoop</font>的用户,<font color=red>无密码</font>。

[root@ruozedata001 ~]# useradd hadoop

切换至hadoop用户,在其家目录(/home/hadoop)下新建如下列表中的新目录

[root@ruozedata001 hadoop]# su - hadoop

[hadoop@ruozedata001 ~]$ mkdir app data lib maven_repos software script source tmp

目录名 说明
app 最终软件安装的目录
data 存放测试数据
lib 存放我们自己开发的jar
maven_repos Maven本地仓库
software 存放各种软件
script 存放脚本
source 存放源代码
tmp 临时文件夹

<font color=red>注:以下操作均使用hadoop用户操作,如需root用户操作会特别指明。</font>

2、上传组件

将存在个人电脑中的Hadoop、ZK和JDK使用rz命令(如未安装,使用root用户执行yum -y install lrzsz进行安装)上传至ruozedata001主机的/home/hadoop/software目录下

3、ssh三台机器互信

1) 将三台机器的内网ip和hostname分别写入(root用户操作)三台主机的/etc/hosts文件中。

 如:

 172.24.117.89  ruozedata001

 172.24.117.91  ruozedata002

 172.24.117.90  ruozedata003

2) 三台主机都执行ssh-keygen命令(一路按回车)生成公钥和私钥

[hadoop@ruozedata001 ~]$ ssh-keygen


进入.ssh目录,复制公钥文件生成authorized_keys文件。

[hadoop@ruozedata001 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys


将ruozedata002和ruozedata003上的id_rsa.pub公钥内容追加进ruozedata001的authorized_keys文件,再将此文件分发到其他两台主机的.ssh目录下。


3) 将三台机器上的authorized_keys文件权限改为600
chmod 0600 ~/.ssh/authorized_keys

4) 在三台机器都执行一遍下面的命令(遇到需要输入yes的就输入)。如正常显示出日期,不再提示需要输入密码,则说明ssh互信配置成功。

ssh ruozedata001 date

ssh ruozedata002 date

ssh ruozedata003 date

<font color=red>Tips</font>:authorized_keys文件中内容全在一行上,为避免直接拷贝粘贴可能带来的换行问题。可用sz命令将002和003机器上的id_rsa.pub下载到个人电脑改个名,再上传至001机器的.ssh目录。执行

[hadoop@ruozedata001 ~]$cat ~/.ssh/id_rsa_002.pub >> ~/.ssh/authorized_keys

[hadoop@ruozedata001 ~]$cat ~/.ssh/id_rsa_003.pub >> ~/.ssh/authorized_keys

就将另外两台主机的公钥追加进authorized_keys文件中了

四、在CentOS上安装组件

将001主机上的Hadoop、JDK、ZK软件包拷贝到002和003主机的/home/hadoop/software目录中。

[hadoop@ruozedata001 ~]$scp ~/software/* ruozedata002:/home/hadoop/software

[hadoop@ruozedata001 ~]$scp ~/software/* ruozedata003:/home/hadoop/software


<font color=red>组件的安装操作三台主机同时做,操作几乎一样</font>

1、JDK的安装配置

  1. 用root用户创建/usr/java目录,解压JDK软件包至此目录

    [root@ruozedata001 ~]# mkdir /usr/java

    [root@ruozedata001 ~]# tar -zxvf /home/hadoop/software/jdk-8u45-linux-x64.gz -C /usr/java

    [root@ruozedata001 ~]# vi /etc/profile

2) 修改/usr/java/jdk1.8.0_45目录的权限(不修改的话会出现意想不到的坑)

  修改前

[root@ruozedata001 java]# ll /usr/java/

total 4

drwxr-xr-x 8 10 143 4096 Apr 11 2015 jdk1.8.0_45

  更改用户及用户组

[root@ruozedata001 java]# chown -R root:root /usr/java/*

[root@ruozedata001 java]# ll /usr/java/

total 4

drwxr-xr-x 8 root root 4096 Apr 11 2015 jdk1.8.0_45

3) 添加java的环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_45

export PATH=$JAVA_HOME/bin:$PATH

保存退出,然后执行source命令使环境变量生效。查看java版本,检验是否环境变量配置正确.

[root@ruozedata001 ~]# source /etc/profile
[root@ruozedata001 ~]# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

2、ZooKeeper的安装配置

  1. 切换至hadoop用户,解压ZK软件包至/home/hadoop/app下。

    [hadoop@ruozedata001 ~]$ tar -zxvf ~/software/zookeeper-3.4.6.tar.gz -C ~/app

2)为了变更版本方便,为zookeeper-3.4.6目录创建一个软连接
[hadoop@ruozedata001 ~]$ ln -s ~/app/zookeeper-3.4.6 ~/app/zookeeper

  1. 修改配置文件

  i. 进入zookeeper配置文件目录

    [hadoop@ruozedata001 ~]$ cd ~/app/zookeeper/conf/

  ii. 复制模板文件改名为zoo.cfg

    [hadoop@ruozedata001 conf]$ cp zoo_sample.cfg zoo.cfg

  iii. 修改zoo.cfg配置文件

      根据我们的目录规划更改dataDir的值

    dataDir=/home/hadoop/data/zookeeper

      添加server信息

    server.1=ruozedata001:2888:3888

    server.2=ruozedata002:2888:3888

    server.3=ruozedata003:2888:3888

  1. 在/home/hadoop/data目录下新建zookeeper目录

[hadoop@ruozedata001 ~]$ mkdir ~/data/zookeeper

  1. 为每个主机上的zookeeper创建id标识文件

    ruozedata001主机

  [hadoop@ruozedata001 ~]$ echo 1 > ~/data/zookeeper/myid

    ruozedata002主机

  [hadoop@ruozedata002 ~]$ echo 2 > ~/data/zookeeper/myid

    ruozedata003主机

  [hadoop@ruozedata003 ~]$ echo 3 > ~/data/zookeeper/myid

  <font color=red>Tips:</font>注意 > 符号的左右两边是有空格的,否则会生成一个零字节的文件。

  1. 配置环境变量。

  i. 修改~/.bash_profile文件。

  [hadoop@ruozedata001 ~]$ vi ~/.bash_profile

    在配置文件中添加环境变量

  export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper

  export PATH=$ZOOKEEPER_HOME/bin:$PATH

  ii. 执行source命令使环境变量生效

[hadoop@ruozedata001 ~]$ source .bash_profile

  iii. 验证环境变量是否生效

  [hadoop@ruozedata001 ~]$ which zkServer.sh

  ~/app/zookeeper/bin/zkServer.sh

  1. 启动ZooKeeper

      i. 全部主机都执行启动命令

    [hadoop@ruozedata001 ~]$ zkServer.sh start

      ii. 全部主机都查看运行状态

    [hadoop@ruozedata001 ~]$ zkServer.sh status

      会有一个ZK的mode是leader,另外两个的mode是follower

      <font color=red>Tips:</font>生产上的经验是ZK全部启动后,等个一两分钟后再执行zkServer.sh status查看状态是否正常

3.Hadoop的安装配置

  1. 切换至hadoop用户,解压Hadoop软件包至/home/hadoop/app下。

    [hadoop@ruozedata001 ~]$ tar -zxvf ~/software/hadoop-2.6.0-cdh5.15.1.tar.gz -C ~/app

2)为了变更版本方便,为zookeeper-3.4.6目录创建一个软连接
[hadoop@ruozedata001 ~]$ ln -s ~/app/hadoop-2.6.0-cdh5.15.1 ~/app/hadoop

  1. 修改配置文件(/home/hadoop/app/hadoop/etc/hadoop目录下)

      i. 修改hadoop-env.sh

        修改前:export JAVA_HOME=${JAVA_HOME}

        修改前:export JAVA_HOME=/usr/java/jdk1.8.0_45

  ii. 修改core-site.xml、hdfs-site.xml、slaves、yarn-site.xml

      为方便直接将上述文件删除,从个人电脑拉取上来。

      所需配置文件存放在https://pan.baidu.com/s/1LmRS3JySP7xBFLqYJGwiuw

  1. 配置环境变量

      i. 在~/.bash_profile中添加Hadoop的环境变量

    export HADOOP_HOME=/home/hadoop/app/hadoop

    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

  ii. 使环境变量生效

[hadoop@ruozedata001 ~]$ source ~/.bash_profile

  iii. 检验环境变量是否生效

[hadoop@ruozedata001 ~]$ which hdfs

~/app/hadoop/bin/hdfs

  1. 启动Hadoop集群

    i. 启动前先检查所有ZooKeeper的运行状态。正常时才能启动Hadoop。

  ii. 首先启动JournalNode
[hadoop@ruozedata001 ~]$ hadoop-daemon.sh start journalnode

    使用jps命令查看是否有JournalNode进程

  iii. NameNode格式化(只对ruozedata001操作)

[hadoop@ruozedata001 ~]$ hadoop namenode -format

    看到输出信息中有“successfully format”字样,说明格式化成功。

  iv. 同步NameNode元数据

[hadoop@ruozedata001 ~]$ scp -r /home/hadoop/data/dfs/name ruozedata002:/home/hadoop/data/dfs

  v. 初始化ZKFC

[hadoop@ruozedata001 ~]$ hdfs zkfc -formatZK

    看到输出信息中有“successfully created”字样,说明初始化成功。

  vi. 启动HDFS
[hadoop@ruozedata001 ~]$ start-dfs.sh

  <font color=red>Tips:</font>${HADOOP_HOME}/etc/hadoop/slaves文件必须是ASCII text格式才能正确启动集群,使用file命令可查看。

如需单进程启动,可执行

hadoop-daemon.sh start namenode

hadoop-daemon.sh start datanode

hadoop-daemon.sh start journalnode

hadoop-daemon.sh start zkfc

  vii. 启动YARN框架

    在ruozedata001主机上执行start-yarn.sh,此时在ruozedata002主机上没有启动RM进程,需执行yarn-daemon.sh start resourcemanager手工启动。

  viii. 启动JobHistoryServer

    在ruozedata001主机上执行 mr-jobhistory-daemon.sh start historyserver。

  ix. 验证集群启动成功

    ①使用jps命令

    ②在浏览器打开页面查看。http://[001主机或002主机的IP]:50070 和 http://[active主机的IP]:8088,http://[standby主机的IP]:8088/cluster/cluster和http://[001主机IP]:19888

5.关闭集群

[hadoop@ruozedata001 ~]# mr-jobhistory-daemon.sh stop historyserver

[hadoop@ruozedata002 ~]# yarn-daemon.sh stop resourcemanager

[hadoop@ruozedata001 ~]# stop-all.sh

[hadoop@ruozedata001 ~]# zkServer.sh stop

[hadoop@ruozedata002 ~]# zkServer.sh stop

[hadoop@ruozedata003 ~]# zkServer.sh stop

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容