HadoopHA集群搭建手册 - 图文
更新时间:2023-10-24 12:53:01 阅读量: 综合文库 文档下载
- hadoop集群搭建推荐度:
- 相关推荐
Hadoop +HA高可靠集群+Hbase+Zookeeper 环境搭建手册
什么是HA见附件。
集群环境:
Ubuntu15.04 64位操作系统,通过VMWARE虚拟3个节点: master1:192.168.8.101 master2:192.168.8.102 slave1:192.168.8.201
由于只有3个节点,所以master1,master2为nodedate,master2为standby zookeeper,datanode,hbase三个节点都部署 机器名 ip地址 安装软件 运行的进程 master1 192.168.8.101 jdk,hadoop, NameNode,DataNode, hbase,zookeeper hbase Hmaster, hbase HRegionServer QuorumPeerMain,zkfc JournalNode, ResourceManager master2 192.168.8.102 jdk,hadoop, NameNode,DataNode, hbase,zookeeper hbase HRegionServer QuorumPeerMain,zkfc JournalNode, NodeManager slave1 192.168.8.201 jdk,hadoop, DataNode,HRegionSever, hbase,zookeeper QuorumPeerMain, JournalNode, NodeManager 其中zkfc进程是DFSZKFailoverController Jdk1.7.0_79 64位,Hadoop2.6.0,HBase1.0.2,Zookeeper3.4.6 此时我们以master1节点为例,其他节点操作一致
准备工作(可选)
增加一个名为 hadoop 的用户,密码可设置为 hadoop (密码随意指定)。 首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 : $ sudo useradd -m hadoop -s /bin/bash
创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为shell。
接着使用如下命令修改密码,按提示输入两次密码 hadoop : $ sudo passwd hadoop
可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:
$ sudo adduser hadoop sudo
最后注销当前用户(点击屏幕右上角的齿轮,选择注销),在登陆界面使用刚创建的 hadoop 用户进行登陆。
安装SSH server、配置SSH无密码登陆
集群需要用到SSH登陆(类似于远程登陆,你可以登录某台Linux电脑,并且在上面运行命令)
$ sudo apt-get install ssh 安装后,可以使用如下命令登陆本机: $ ssh localhost
此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
$ exit # 退出刚才的 ssh localhost
$ cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
$ ssh-keygen -t rsa # 会有提示,都按回车就可以 $ cat id_rsa.pub >> authorized_keys # 加入授权
就在.ssh文件夹下生成了2个文件,一个公钥和一个私钥文件, id_rsa id_rsa.pub 这样配置之后就可以实现无密码登录本机。如果需要登录到远程主机,只需要将 authorized_keys文件发送到远程主机的~/.ssh/目录下。
此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了。 如果出现Agent admitted failure to sign using the key
解決方式 使用 ssh-add 指令将私钥 加进来 (根据个人的密匙命名不同更改 id_rsa) $ ssh-add ~/.ssh/id_rsa 再通过ssh 主机名 就可以实现无密码登录了
1安装jdk
$ sudo mkdir /usr/lib/jvm #创建jdk存放目录
$ sudo tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/lib/jvm 添加环境变量
$ sudo gedit ~/.bashrc 在最后添加
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79 export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$JAVA_HOME/bin:$PATH 然后在终端
$ source ~/.bashrc # 使变量设置生效 $ echo $JAVA_HOME # 检验是否设置正确 $ echo $PATH
$ java -version #输出如下表示成功
centos在/etc/profile中修改
2.修改/etc/hosts文件
添加集群所有机器,每个节点都如此操作。 192.168.8.101 192.168.8.102 192.168.8.201
master1 master2 slave1
$ sudo vim /etc/hosts
如果之后没有问题不用注释127.0.0.1 localhost 修改本机的hostname
$ sudo vim /etc/hostname 将原来的hostname改成master1即可 重启机器
cenos 修改 hostname:
cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=master1
ip:
cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=\
BOOTPROTO=\
HWADDR=\IPV6INIT=\
NM_CONTROLLED=\ONBOOT=\TYPE=\
UUID=\IPADDR=\NETMASK=\GATEWAY=\
配置HADOOP HBASE ZOOKEEPER
所有文件都放在/usr/local/hadoop下,所有黄色标注的地方建议手动新建相应文件夹
3. 解压hadoop并修改环境变量
$ sudo mkdir /usr/local/hadoop # 存放hadoop,hbase,zookeeper #更改目录所有者权限,以防以后没用户权限 $ sudo chown -R hadoop hadoop
$ sudo tar -zxvf hadoop-2.6.0.tar.gz -C /usr/local/hadoop $ sudo vim ~/.bashrc #更改环境变量 在最后添加
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.6.0 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
$ source ~/.bashrc #使环境变量修改生效
4.修改配置文件
4.1 修改$HADOOP_HOME/etc/hadoop/slaves文件
加入所有slave节点hostname ,这里所有节点都是slave节点,如果机器多可以把Namenode节点分开
添加如下图
4.2 修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件
修改JAVA_HOME路径 , 写全路径
4.3 修改$HADOOP_HOME/etc/hadoop/yarn-env.sh文件
4.4 修改$HADOOPHOME/etc/hadoop/core-site.xml
文件详见附件8.5修改
HADOOP_HOME/etc/hadoop/core-site.xml文件 ,红色为需要修改的地方,黄色为需要新建的文件夹
新建黄色中的目录并修改权限
(yarn.resourcemanager.ha.id的属性值在master2机器中需要更改为rm2)
4.8 添加$HADOOP_HOME/etc/hadoop/fairscheduler.xml文件
root,yarn,search,hdfs
此时Hadoop+HA配置文件已经配好,就差ssh免密码登录+格式化Hadoop系统。等装完所有软件(Zookeeper+hbase),克隆机器后再进行ssh免密码登录及Hadoop格式化。 克隆后还需要更改每个节点的/etc/network中的hostname, 以及更改master2中$HADOOP_HOME/etc/hadoop/yarn- site.xml文件 的yarn.resourcemanager.ha.id属性值为rm2
5. 安装Zookeeper3.4.6
5.1.解压Zookeeper
$ sudo tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/hadoop 5.2 Zookeeper环境变量的配置 $ sudo gedit ~/.bashrc
在最后添加Zookeeper的路径
export ZOOKEEPER_HOME=/usr/local/hadoop/zookeeper-3.4.6 export PATH=$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$PATH $ source ~/.bashrc #使修改生效 5.3.更改配置文件
将conf/zoo_sample.cfg改成conf/zoo.cfg ,然后对zoo.cfg进行更改
5.4.在DataDir路径下创建myid文件
根据配置文件的dataLogDir路径
创建/usr/local/hadoop/zookeeper-3.4.6/var/datalog文件夹 创建/usr/local/hadoop/zookeeper-3.4.6/var/data文件夹 $ sudo mkdir var
再创建/soft/zookeeper-3.4.6/var/data文件夹
$ sudo mkdir var/data
再创建/soft/zookeeper-3.4.6/var/data/myid文件 $ sudo vim var/data/myid $ sudo mkdir var/datalog
向其中输入数字1 (对应zoo.cfg文件server后的数字)
其他节点在克隆后应根据zoo.cfg中对应的值进行更改
最后修改一下conf下的log4j.properties中log的dir地址
6. 安装Hbase1.0.2
6.1 修改本机配置(可以不配)
$ sudo vim /etc/security/limits.conf
$ sudo vim /etc/pam.d/login
如果有不用加
6.2 修改配置文件 $ sudo gedit ~/.bashrc 添加
export HBASE_HOME=/usr/local/hadoop/hbase-1.0.2 export PATH=$HBASE_HOME/bin:$PATH $ source ~/.bashrc
在hbase目录下的conf下修改hbase-env.sh
6.3 修改conf/hbase-site.xml
(注意hbase.rootdir的值 用ip地址表示)
8.8.启动所有datanode
在master1上执行命令
$ hadoop-daemons.sh start datanode
执行后在datanode节点上显示的进程datanode
8.9.启动yarn
在master1上执行命令 $ start-yarn.sh
在master1上多出ResourceManager和NodeManager进程
在master2 slave1 上多出NodeManager进程
8.10.启动ZKFC
在master1和master2上启动zkfc $ hadoop-daemon.sh start zkfc 会启动进程DFSZKFailoverController
8.11.Hadoop启动成功
下图是两个启动后的master节点 ,master1是active,master2是standby
8.12.启动hbase 在master1上执行命令 $ start-hbase.sh
master1会启动hmaster和hregionserver进程,master2和slave1启动hregionserver进程
hbase 下要建 logs 目录 并且修改权限
9 第n次启动
9.1.对于HA,要先启动Zookeeper
zkServer.sh start (每个节点)
9.2.启动hadoop
start-dfs.sh start-yarn.sh (master1节点) 或者start-all.sh
9.3.启动hbase
start-hbase.sh (master1节点)
后续待解决问题
问题一:对于HA框架,hbase-site.xml如何根据当前active的master来配置? 问题二:服务全部停止后重启,hbase显示无法启动。不知为何。我只能全部清空格式化hadoop。 步骤:
1.删除hadoop/mydata下的所有文件夹 再新建yarn文件夹 2.删除hadoop/log文件夹下的所有文件
3.删除zookeeper/var/data下的除了myid的所有文件 4.删除Zookeeper/var/datalog下的所有文件夹 5.删除hbase下的file:文件
6.删除hbase下的logs下的所有文件 7.重新格式化hadoop
附件:
什么是HA?
hadoop2.0之前,namenode只有一个,存在单点问题(虽然hadoop1.0有
secondarynamenode,checkpointnode,buckcupnode这些,但是单点问题依然存在),在hadoop2.0引入了HA机制。hadoop2.0的HA 机制有两个namenode,一个是active namenode,状态是active;另外一个是standby namenode,状态是standby。两者的状态是可以切换的,但不能同时两个都是active状态,最多只有1个是active状态。只有active namenode提供对外的服务,standby namenode是不对外服务的。active namenode和standby namenode之间通过NFS或者JN(journalnode,QJM方式)来同步数据。这样,保持了active namenode和standby namenode的数据的实时同步,standby namenode可以随时切换成active namenode(譬如active namenode挂了)。而且还有一个原来hadoop1.0的
secondarynamenode,checkpointnode,buckcupnode的功能:合并edits文件和fsimage文件,使fsimage文件一直保持更新。所以启动了hadoop2.0的HA机制之后,secondarynamenode,checkpointnode,buckcupnode这些都不需要了。
一定要关闭防火墙 centos 关闭防火墙
#查看防火墙状态
sudo service iptables status #关闭防火墙
sudo service iptables stop #查看防火墙开机启动状态 #关闭防火墙开机启动 sudo chkconfig iptables off
sudo chkconfig iptables --list
8.1.启动Zookeeper
分别在每个机器上运行命令zkServer.sh start或者在$ZOOKEEPER_HOME/bin目录下运行./zkServer.sh start命令。
然后可以
通过命令jps来查看Zookeeper启动的进程QuorumPeerMain。
可通过zkServer.sh status命令来查看Zookeeper状态。正常是机器中只有一个leader,其他的都是follow 。所有的机器都start以后再执行此命令
必须全部start以后查看状态。如果查看status出现错误查看日志文件。
8.2.格式化ZooKeeper集群
目的是在ZooKeeper集群上建立HA的相应节点。 在master1机器上执行命令 $ hdfs zkfc -formatZK
他会根据$HADOOP_HOME/etc/hadoop/core-site.xml文件中ha.zookeeper.quorum的值来进行初始化。
8.3.启动journalnode进程 在master1节点上执行
$ hadoop-daemons.sh start journalnode
hadoop目录下可能没有logs,需要新建logs并更改用户所有权限 $ sudo mkdir logs 然后更改目录所有者权限 $ sudo chown -R hadoop logs
查看错误日志 有可能 hadoop目录下的mydata下的journal目录没有权限写入,同样对journal目录执行上面命令
或者在每台机器上执行
$ hadoop-daemon.sh start journalnode
8.4.格式化namenode
在master1上执行命令 $ hdfs namenode -format
会在mydata文件下创建一些文件夹及文件(name或者data以及journal) 如果/etc/hosts里有localhost 127.0.0.1 可能会失败,我是没有
8.5.启动namenode
在master1上执行命令
$ hadoop-daemon.sh start namenode 在master1上多出进程NameNode
8.6.将刚才格式化的namenode信息同步到备用namenode上 在master2机器上执行命令
$ hdfs namenode -bootstrapStandby
8.7.在master2上启动namenode
$ hadoop-daemon.sh start namenode 在master2上多出进程NameNode
在地址栏输入http://master1:50070和http://master2:50070显示如下,两个此时都是standby状态
正在阅读:
HadoopHA集群搭建手册 - 图文10-24
魔方,我喜欢你作文500字06-26
2014河南中考模拟最新英语试卷(三)07-26
渭南市继续教育多选题答案06-19
《牛顿第二定律》习题(第一课时)06-05
行政前台个人工作总结例文202204-02
2010高考二轮专题突破训练二:识记现代汉字的字形06-25
离散型随机变量的均值05-12
试验检测方案201611-16
大型企业网络配置系列课程详解(一)09-04
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 集群
- 搭建
- HadoopHA
- 手册
- 图文
- 团队活动、主题班会记录
- 楚雄市治安保卫委员会和人民调解委员会组织体系建设工作方案
- 2016年湖北省技能高考机械类考试大纲 - 图文
- 二〇一〇年度山东省建筑施工安全文明小区名单
- 外国文学史复习
- 中科院-中科大1998试卷及答案
- 《劝学》教案、说课稿
- “一号案件”侦破纪实
- (大楼可视对讲)智能小区方案 - 图文
- 第七、九、十、十一、十四章 数据库作业 - 图文
- Web程序设计复习提纲
- 运动会突发事件应急处理预案
- 毕业设计(论文)(国际经济与贸易)
- 新人教版六年级上学期期末模拟考试卷
- 比例尺1西师版导学案
- BIM毕业论文 - 图文
- 财务管理B各章节复习题答案
- 毛概论文资料 和平统一与一国两制
- 设施园艺植物生产技术课程标准cha
- 物流企业核心KPI管理