IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop HA 集群搭建 -> 正文阅读

[大数据]Hadoop HA 集群搭建

规划

?搭建步骤

1、zookeeper集群搭建

a) 将zookeeper.tar.gz上传到node2、node3、node4

b) 解压到/opt

tar -zxf zookeeper-3.4.6.tar.gz -C /opt

c) 配置环境变量:

export ZOOKEEPER_PREFIX=/opt/zookeeper-3.4.6

export PATH=$PATH:$ZOOKEEPER_PREFIX/bin

然后. /etc/profile让配置生效

d) 到$ZOOKEEPER_PREFIX/conf下

复制zoo_sample.cfg为zoo.cfg

cp zoo_sample.cfg ?zoo.cfg

e) 编辑zoo.cfg

添加如下行:

server.1=node2:2881:3881

server.2=node3:2881:3881

server.3=node4:2881:3881

修改

dataDir=/var/bjsxt/zookeeper/data

f) 创建/var/bjsxt/zookeeper/data目录,并在该目录下放一个文件:myid

??在myid中写下当前zookeeper的编号

??mkdir -p /var/bjsxt/zookeeper/data

??echo 3 > /var/bjsxt/zookeeper/data/myid

2181??用户客户端连接zk集群的端口

zkCli.sh?客户端启动脚本

zkServer.sh?服务端启动脚本

mysql?-uroot?-p123456

mysqld 服务端

g) 将/opt/zookeeper-3.4.6通过网络拷贝到node2、node3上

scp -r zookeeper-3.4.6/ node2:/opt

scp -r zookeeper-3.4.6/ node3:/opt

h) 在node2和node3上分别创建/var/bjsxt/zookeeper/data目录,

并在该目录下放一个文件:myid

node2:

mkdir -p /var/bjsxt/zookeeper/data

echo 1 > /var/bjsxt/zookeeper/data/myid

node3:

mkdir -p /var/bjsxt/zookeeper/data

echo 2 > /var/bjsxt/zookeeper/data/myid

i) 启动zookeeper

zkServer.sh start 启动zk

zkServer.sh stop??停止zk

zkServer.sh status??查看zk状态

zkServer.sh start|stop|status

j) 关闭zookeeper

zkServer.sh stop

l) 连接zookeeper

zkCli.sh?????node2、node3、node4都可以

m) 退出zkCli.sh命令

quit

2.hadoop配置

一律在node1上操作,做完后scp到node2、node3、node4

配置环境变量

vim /etc/profile

export ?JAVA_HOME=/usr/java/default

export ?PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/opt/hadoop-2.6.5

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

hadoop-env.sh配置JDK

export ?JAVA_HOME=/usr/java/default

core-site.xml

<configuration>

??<property>

<name>fs.defaultFS</name>

<value>hdfs://mycluster</value>

??</property>

??<property>

<name>hadoop.tmp.dir</name>

<value>/var/bjsxt/hadoop/ha</value>

??</property>

??<!-- 指定每个zookeeper服务器的位置和客户端端口号 -->

??<property>

?<name>ha.zookeeper.quorum</name>

?<value>node2:2181,node3:2181,node4:2181</value>

???</property>


</configuration>

hdfs-site.xml

<configuration>

??<!-- 指定block默认副本个数 -->

??<property>

<name>dfs.replication</name>

<value>2</value>

??</property>

??<!-- 用于解析fs.defaultFS中hdfs://mycluster中的mycluster地址 -->

??<property>

<name>dfs.nameservices</name>

<value>mycluster</value>

??</property>

??<!-- mycluster下面由两个namenode服务支撑 -->

??<property>

<name>dfs.ha.namenodes.mycluster</name>

<value>nn1,nn2</value>

??</property>

??<!--指定nn1的地址和端口号,发布的是一个hdfs://的服务-->

??<property>

<name>dfs.namenode.rpc-address.mycluster.nn1</name>

<value>node1:8020</value>

??</property>

??<property>

<name>dfs.namenode.rpc-address.mycluster.nn2</name>

<value>node2:8020</value>

??</property>

??<!--指定三台journal服务器的地址-->

??<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://node1:8485;node2:8485;node3:8485/mycluster</value>

??</property>

??<!-- 指定客户端查找active的namenode的策略:

??会给所有namenode发请求,以决定哪个是active的 -->

??<property>

<name>dfs.client.failover.proxy.provider.mycluster</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

??</property>

??<!--在发生故障切换的时候,ssh到对方服务器,将namenode进程kill掉 ?kill -9 ?55767-->

<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在哪个目录存放edits log文件 -->

??<property>

<name>dfs.journalnode.edits.dir</name>

<value>/var/bjsxt/hadoop/ha/jnn</value>

??</property>

<!--启用自动故障切换-->

<property>

???<name>dfs.ha.automatic-failover.enabled</name>

???<value>true</value>

?</property>



</configuration>

3.启动ha的hadoop

0)启动zookeeper集群

a) 在node1\node2\node3上启动三台journalnode

hadoop-daemon.sh start journalnode

b) 选择namenode node1,格式化HDFS

hdfs namenode -format

格式化后,启动namenode进程

hadoop-daemon.sh start namenode

c) 在另一台namenode node2上同步元数据

hdfs namenode -bootstrapStandby

d) 初始化zookeeper上的内容?一定是在namenode节点上。

hdfs zkfc -formatZK

e) 启动hadoop集群,可在node1到node4这四台服务器上任意位置执行

start-dfs.sh

stop-dfs.sh停止hadoop服务。

如果格式化之后,启动:

启动三台zk

随意节点:start-dfs.sh

hadoop-daemon.sh stop namenode

hadoop-daemon.sh stop zkfc

4.zookeeper操作

在node2或者node3或者node4上运行

zkCli.sh

ls /hadoop-ha/mycluster 查看临时文件

get /hadoop-ha/mycluster/ActiveStandbyElectorLock 查看临时文件的内容

退出zkCli.sh

quit

5、停止集群:

首先

stop-dfs.sh

其次,停止zookeeper集群

node2、node3、node4上执行:

zkServer.sh stop

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:53:03  更:2021-08-02 10:53:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/22 6:23:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码