hadoop2.5.2HDFS HA搭建
来源:互联网 发布:淘宝卖家新手全攻略 编辑:程序博客网 时间:2024/04/28 06:47
hadoop2.5.2全分布式HDFS HA搭建
最近老师布置了个大作业,需要搭建hadoop存储数据,所以照着网上的各种版本教程努力的搭了一个,搭建的过程可谓声泪俱下。。。(此处省略一万字),所以想着以后要是重新搭建hadoop可以有所参照,所以写下这个博客。
本次搭建主要有如下几个步骤:
- 安装VM以及ubuntu,配置好4台虚拟机
- 更改4台虚拟机的主机名以及hosts文件并配置java环境
- 用SFTC将下载好的hadoop-2.5.X-x64.tar.gz和zookeeper-3.4.6传到虚拟机中
- 解压两个压缩文件夹并开始配置
节点分布如下
先行准备及虚拟机配置
- hadoop-2.5.1-x64.tar.gz下载地址百度云链接密码00vm
Ctrl + B
- zookeeper-3.4.6去官网下载
- VM及Ubuntu14.04.5自行下载
先装一台虚拟机,分配20G的存储空间,1G内存,网卡选择NAT。虚拟机名称命名为node4(因为之前配过由3台虚拟机组成的hadoop1.X,所以这是第4台虚拟机),用户名为hadoop,密码随意。配置好之后选择完全克隆,复制3台虚拟机。
克隆完成后将4台虚拟机全部打开,依次修改主机名。 -sudo gedit etc/hostname #要改成的主机名
-sudo gedit etc/hosts #将4台虚拟机的ip地址写进去
重启4台虚拟机,4台虚拟机分别为 hadoop@node4、hadoop@node5、hadoop@node6、hadoop@node7
配置java环境
- sudo apt-get install openjdk-7-jre openjdk-7-jdk
安装好后需要找到相应的安装路径,这个路径是用于配置JAVA_HOME环境变量的
这里直接放出路径/usr/lib/jvm/java-7-openjdk-amd64
接着配置JAVA_HOME环境变量,为了方便,我们在~/.bashrc 中进行设置
- sudo gedit ~/.bashrc
在文件最前面添加如下内容
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
保存并且输入如下命令使该环境变量生效
- source ~/.bashrc
任意位置输入java验证是否配置成功
安装ssh、配置无密钥登录
- sudo apt-get install openssh-server
安装完后即可通过 ssh hadoop@node5 访问node5虚拟机
分别在4台虚拟机上输入如下命令
- ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa- cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
保证登录本地免密码,然后把公钥文件 id_dsa.pub 拷贝到其他虚拟机上去
- scp id_dsa.pub hadoop@node5:~然后在node5的命令行里输入- cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
如法炮制使node4、node5可以免密码登录到其他node
配置hadoop以及zookeeper
在node4上
- tar -zxvf hadoop-2.5.1-x64.tar.gz- tar -zxvf zookeeper-3.4.6.tar.gz
配置hadoop-env.sh
- cd hadoop-2.5.1/etc/hadoop- sudo gedit hadoop-env.sh找到 export JAVA_HOME=${JAVA_HOME}改为 export JAVA_HOME=${JAVA_HOME:-"/usr/lib/jvm/java-7-openjdk-amd64"}
配置hdfs-site.html
- sudo gedit hdfs-site.html找到configuration标签,在标签内插入如下内容<configuration><property> <name>dfs.nameservices</name> <value>mxy</value></property><property> <name>dfs.ha.namenodes.mxy</name> <value>nn1,nn2</value></property><property> <name>dfs.namenode.rpc-address.mxy.nn1</name> <value>node4:8020</value></property><property> <name>dfs.namenode.rpc-address.mxy.nn2</name> <value>node5:8020</value></property><property> <name>dfs.namenode.http-address.mxy.nn1</name> <value>node4:50070</value></property><property> <name>dfs.namenode.http-address.mxy.nn2</name> <value>node5:50070</value></property><property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node5:8485;node6:8485;node7:8485/mxy</value></property><property> <name>dfs.client.failover.proxy.provider.mxy</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value></property><property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/hadoop/.ssh/id_dsa</value></property><property> <name>dfs.journalnode.edits.dir</name> <value>/path/to/journal/node/local/data</value></property><property> <name>dfs.journalnode.edits.dir</name> <value>/opt/jn/data</value></property><property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property></configuration>
其中mxy为hadoop集群名字,可以改为其他,但是要注意,集群名不能带下划线!!!
配置core-site.xml
- sudo gedit core-site.xml找到configuration标签,在标签内插入如下内容<configuration><property> <name>fs.defaultFS</name> <value>hdfs://mxy</value></property> <property> <name>ha.zookeeper.quorum</name> <value>node4:2181,node5:2181,node6:2181</value> </property><property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop2</value></property></configuration>
mxy为集群名可以更改
配置slaves
- sudo gedit slaves- 插入node5- 插入node6- 插入node7
配置zoo.cfg
- cd ~/zookeeper-3.4.6/conf找到zoo_sample.cfg将其重命名为zoo.cfg- sudo gedit zoo.cfg找到dataDir,修改为dataDir=/opt/zookeeper在文件最下部插入server.1=node4:2888:3888server.2=node5:2888:3888server.3=node6:2888:3888
启动zookeeper
分别在node4、node5、node6的建立/opt/zookeeper (注意opt文件权限问题)
- cd /- sudo mkdir opt/zookeeper- sudo chmod -R 777 /opt- cd /opt/zookeeper- sudo gedit myid在文档中写入数字编号:node4中的myid文件写入1,node5写2,node6写3
将zookeeper-3.4.6文件拷贝到node5、node6上
- cd ~- scp -r zookeeper-3.4.6 hadoop@node5:~/- scp -r zookeeper-3.4.6 hadoop@node6:~/
在node4上为zookeeper配置环境变量
- sudo gedit /etc/profile在unset i之前插入export PATH=$PATH:/home/hadoop/zookeeper-3.4.6/bin
退出保存执行如下语句
- source /etc/profile- scp /etc/profile hadoop@node5:/etc/- 在node5中执行source /etc/profile- scp /etc/profile hadoop@node6:/etc/- 在node6中执行source /etc/profile
在node4、5、6的任意目录下输入zkServer.sh start启动zookeeper
输入jps检查是否启动
出现QuorumPeerMain则为成功
启动JournalNode
- scp -r /home/hadoop/hadoop-2.5.1 hadoop@node5:/home/hadoop/- scp -r /home/hadoop/hadoop-2.5.1 hadoop@node6:/home/hadoop/- scp -r /home/hadoop/hadoop-2.5.1 hadoop@node7:/home/hadoop/
在node5、6、7中分别启动journalnode
- cd ~/hadoop-2.5.1/sbin- ./hadoop-daemon.sh start journalnode
输入jps检查
可以使用冒号来定义对齐方式:
初始化NameNode
在node4上
- cd ..- cd bin- ./hdfs namenode -format
启动node4上的namenode,把namenode信息复制到node5上
node4:
- cd ..- cd sbin- ./hadoop-daemon.sh start namenode
node5:
- cd ../bin- ./hdfs namenode -bootstrapStandby- cd ../sbin- ./stop-dfs.sh
初始化ZKFC
在任意namenode(node4或node5上)执行以下命令
- cd ../bin- ./hdfs zkfc -formatZK
配置完成,启动全部节点
- cd ../sbin- ./start-dfs.sh
别忘了修改window/system32/driver/etc/hosts文件哦
然后浏览器输入http://node4:50070 和 http://node5:50070
即可查看两个namenode节点情况
ps:输入node4或5的ip:50070也可以
- hadoop2.5.2HDFS HA搭建
- hadoop2.0 HDFS搭建和HA切换
- Hadoop2 上HDFS HA 搭建过程
- 搭建hadoop2.2.0 HDFS,HA / Federation 和 HA&Federation
- hadoop-HA hadoop2.0 HDFS搭建和HA切换
- hadoop2.x新特性HDFS HA、YARN HA,分布式搭建
- 搭建hadoop2.6.0 HDFS HA及YARN HA
- Hadoop2.6集群环境搭建(HDFS HA+YARN)
- Hadoop2.5的HDFS集群HA搭建(高可用集群)
- Hadoop2.5.1 HDFS HA(QJM)
- hadoop2.4.0 ha 搭建
- 搭建hadoop2 HA
- HDFS-HA的搭建
- 搭建hadoop2.6.0 HA及YARN HA
- 搭建hadoop2.6.0 HA及YARN HA
- 搭建hadoop2.6.0 HA及YARN HA
- 搭建hadoop2.6.0 HA及YARN HA
- Hadoop2.x之HDFS HA Federation
- 解读 Linux 性能指标
- linux文本命令&用户和组命令 练习
- noip2013货车运输
- PopupMenu菜单以及开发工作中像素的计算
- APUE学习笔记5——第七章——进程环境
- hadoop2.5.2HDFS HA搭建
- GitHub error “Failed to get HEAD”
- 树莓派:django,uwsgi,nginx安装与设置
- poj2931 Procrastination
- adnroid 单元测试 简单实现
- 台阶问题
- vim中替换命令
- hdu 5119 Happy Matt Friends【dp】
- Spring核心技术之JDBC支持