hadoop-2.x高可用集群搭架
来源:互联网 发布:淘宝网首页秋水伊人 编辑:程序博客网 时间:2024/05/16 23:44
一、规划
1、硬件资源
ip6:centos-node6ip7:centos-node7ip8:centos-node8ip9:centos-node9
2、配置环境变量:
export JAVA_HOME=/usr/local/java/jdk1.7.0_79export PATH=.:$JAVA_HOME/bin:$PATH
二、环境配置
1、修改/etc/hosts
ip6:centos-node6ip7:centos-node7ip8:centos-node8ip9:centos-node9
2、免密码登录
生成私钥【4台机器上均要执行】
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
生成免密码登陆文件【4台机器上均要执行】
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
然后,将id_dsa.pub拷贝到 centos-node7,centos-node8,centos-node9的~/root/目录下
scp ~/.ssh/id_dsa.pub root@centos-node7:~/root scp ~/.ssh/id_dsa.pub root@centos-node8:~/rootscp ~/.ssh/id_dsa.pub root@centos-node9:~/root
将id_dsa.pub重写到 authorized_keys 在当前/root/目录下执行命令:
cat id_dsa.pub >> ~/.ssh/authorized_keys
测试登陆 ssh centos-node7,centos-node8,centos-node9
三、Hadoop-2.x HDFS 高可用分布图
hadoop-2.x 配置在服务器节点位置
四、hadoop-2.x配置
下载hadoop-2.5.1.tar.gz
http://apache.fayea.com/hadoop/common/
并将其解压到/usr/local/hadoop-2.5.1.下,执行命令:
tar -zxvf hadoop-2.5.1.tar.gz -C /usr/local/
1、修改配置文件 /usr/local/hadoop-2.5.1/etc/hadoop/
hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.7.0_79
hdfs-site.xml
//配置一个命名服务bjsxt<property> <name>dfs.nameservices</name> <value>bjsxt</value></property>//NameNode命名<property> <name>dfs.ha.namenodes.bjsxt</name> <value>nn1,nn2</value></property>//配置两个NameNode的RPC协议主机名和端口<property> <name>dfs.namenode.rpc-address.bjsxt.nn1</name> <value>centos-node6:8020</value></property><property> <name>dfs.namenode.rpc-address.bjsxt.nn2</name> <value>centos-node7:8020</value></property>//两个NameNode的http协议的主机名和端口<property> <name>dfs.namenode.http-address.bjsxt.nn1</name> <value>centos-node6:50070</value></property><property> <name>dfs.namenode.http-address.bjsxt.nn2</name> <value>centos-node7:50070</value></property>//配置(原文件)JournalNode的服务器名和端口<property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://centos-node7:8485;centos-node8:8485;centos-node9:8485/bjsxt</value></property>//配置客户端提供的java类,将使用DFS客户机找到哪些NameNode是活跃的Active<property> <name>dfs.client.failover.proxy.provider.bjsxt</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property>//配置sshfence指定私钥的路径<property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value></property>//指定私钥的路径<property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_dsa</value></property>//JournalNode 的工作目录<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>
core-site.xml
//配置集群名称 bjsxt<property> <name>fs.defaultFS</name> <value>hdfs://bjsxt</value></property>//配置zookeeper集群服务器节点<property> <name>ha.zookeeper.quorum</name> <value>centos-node6:2181,centos-node7:2181,centos-node8:2181</value></property>//修改hadoop默认工作目录<property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop-2.5.1</value></property>
slaves
//配置DataNode的节点服务器centos-node7centos-node8centos-node9
五、zookeeper安装配置
下载地址:http://apache.fayea.com/zookeeper/
下载 zookeeper-3.4.6.tar.gz,上传到centos-node6服务器上,解压:
tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local
修改配置文件,cd /usr/zookeeper-3.4.6/conf 执行命令
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg
//修改地址dataDir=/opt/zookeeper//添加集群节点服务server.1=centos-node6:2888:3888server.2=centos-node7:2888:3888server.3=centos-node8:2888:3888
在/opt/zookeeper 目录下创建文件myid, 修改 myid
vi /opt/zookeeper/myid//编辑内容1
将 opt/zookeeper文件夹拷贝到centos-node7,centos-node8 (因为我们有三台zookeep服务节点) 命令:
scp -r zookeeper/ root@centos-node7:/optscp -r zookeeper/ root@centos-node8:/opt
将 centos-node7 服务器目录 /opt/zookeeper 下myid 文件编辑内容为:2
将 centos-node8 服务器目录 /opt/zookeeper 下myid 文件编辑内容为:3
同时拷贝centos-node6 上的zookeeper 到centos-node7,centos-node8服务器上
scp -r /usr/local/zookeeper-3.4.6 root@centos-node7:/usr/localscp -r /usr/local/zookeeper-3.4.6 root@centos-node8:/usr/local
1、配置zookeeper环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.7.0_79export ZK_HOME=/usr/local/zookeeper-3.4.6export PATH=.:$JAVA_HOME/bin:$ZK_HOME/bin:$PATH
环境变量 立即生效
source /etc/profile
同时拷贝centos-node6 上的/etc/profile文件 到centos-node7,centos-node8服务器上的 /etc/目录下 ,在centos-node7,centos-node8 分别执行 source /etc/profile ,立即生效
启动zookeeper 执行命令:
zkServer.sh start
现在 服务器centos-node6 hadoop 配置完成了,需要拷贝到centos-node7,centos-node8,centos-node9,服务器上:
将 hadoop-2.5.1.tar.gz 拷贝到centos-node7,centos-node8,centos-node9,服务器上,分别解压到 /usr/local 目录下面:
tar -zxvf hadoop-2.5.1.tar.gz -C /usr/local
拷贝服务器 centos-node6 的 /usr/local/hadoop -2.5.1/etc/haoop/所有文件 拷贝到
centos-node7,centos-node8,centos-node9服务器上的 /usr/local/hadoop -2.5.1/etc/haoop/中。(保持配置文件一致)
//usr/local/hadoop -2.5.1/etc/haoop/当前目录下拷贝scp ./* root@centos-node7:/usr/local/hadoop-2.5.1/etc/hadoop/scp ./* root@centos-node8:/usr/local/hadoop-2.5.1/etc/hadoop/scp ./* root@centos-node9:/usr/local/hadoop-2.5.1/etc/hadoop/
备注:关闭防火墙:centos-7关闭防火墙:systemctl stop firewalld
启动:JN (journalnode) ,在配置有JD服务器上启动
./hadoop-daemon.sh start journalnode
运行(hdfs namenode -format)格式化,在其中一台NameNode上进行格式化,在hadoop/bin/目录下执行命令:
./hdfs namenode -format
初始化完成 会生成 hdfs 文件目录
现在服务器 centos-node6 上NameNode 以格式化,HDFS 目录已生成,然而第二个centos-node7上的NameNode未格式化, HDFS目录未生成,
这时候我们必须启动 centos-node6 的NameNode,执行一下命令:
./hadoop-daemon.sh start namenode
然后 在未格式化(centos-node7)的 NameNode 上执行次命令:
./hdfs namenode -bootstrapStandby
现在我们就可以 初始化 ZKFC 在其中一个NameNode 上执行(三台zookeeper同时启动的情况) 命令:
./hdfs zkfc -formatZK
启动dfs,查看jps 执行命令:
./start-dfs.sh
浏览器访问:http://centos-node6:50070
接下来我们配置 ResourceManager 和 DataManager
修改配置文件 mapred-site.xml.template 执行命令:
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
//添加yarn<property> <name>mapreduce.framework.name</name> <value>yarn</value></property>
修改配置文件 yarn-site.xml 执行命令:
//centos-node6服务器作为服务节点 <property> <name>yarn.resourcemanager.hostname</name> <value>centos-node6</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property>
拷贝 mapred-site.xml yarn-site.xml 到centos-node7,centos-node8,centos-node9 服务器上/hadoop-2.5.1/etc/hadoop/目录下。
启动所有服务:首先启动所有节点的zookeeper服务
./start-all.sh
查看centos-node7上的进程:jps
查看centos-node8上的进程:jps
查看centos-node9上的进程:jps
浏览器访问 ResourceManager http://centos-node6:8088
hadoop-2.x高可用集群搭架 配置完成
- hadoop-2.x高可用集群搭架
- Hadoop集群(高可用)
- Hadoop 2.x高可用配置
- hadoop 高可用集群搭建
- Hadoop,HA高可用集群
- 搭建高可用hadoop集群
- hadoop 集群高可用环境搭建(zookeeper)
- hadoop HA 高可用集群部署搭建
- Hadoop系列-HDFS HA高可用集群
- Hadoop高可用HDFS集群搭建详解
- Hadoop HA高可用集群搭建
- Hadoop高可用集群搭建(HA)
- linux-hadoop高可用集群和Zookeeper
- Hadoop,HBase高可用集群搭建
- Hadoop HA 高可用集群搭建
- Hadoop集群HA高可用搭建
- Yarn实现的Hadoop集群高可用
- Hadoop HA高可用集群配置详解
- 针对实践(一)代码的修改
- python多线程get与post请求模板代码
- 慎用MySQL子查询,尤其是看到DEPENDENT SUBQUERY标记时
- mysql数据库开启慢查询
- 生产者与消费者模型
- hadoop-2.x高可用集群搭架
- matlab 全部的随机数函数
- Python3连接数据库
- Mac下RabbitMQ安装
- 方法
- hibernate笔记-010-单向多对一映射
- 信号(signals)和槽(slots) 精…
- Ubuntu:操作mysql
- Linux C MySQL数据库函数(转)