Hadoop HA 配置
改配置是基于已经安装好Hadoop的前提下的。1. 安装zookeeper下载安装zookeeper,我的版本是zookeeper-3.4.62. 配置zookeeper置文件存放在$ZOOKEEPER_HOME/conf/目录下,将zoo_sample.cfd文件名称改为zoo.cfg, ① 更改其中的数据目录dataDir=/opt/zookeeper② 添加
改配置是基于已经安装好Hadoop的前提下的。
1. 安装zookeeper
下载安装zookeeper,我的版本是zookeeper-3.4.6
2. 配置zookeeper
置文件存放在$ZOOKEEPER_HOME/conf/目录下,将zoo_sample.cfd文件名称改为zoo.cfg,
① 更改其中的数据目录
dataDir=/opt/zookeeper
② 添加zookeeper节点
server.1=ubuntu1:2888:3888
server.2=ubuntu2:2888:3888
server.3=ubuntu3:2888:3888
③ 在所有机器上添加zookeeper节点
在所有机器的/opt/zookeeper/目录下添加myid文件,里面的内容为改机器的server值,比如上面的ubuntu1,里面的内容为1
④ 拷贝zookeeper到所有的机器
⑤ 在所有的机器上启动zookeeper
zkServer start
Jps 后 出现QuorumPeerMain说明启动成功
3. 配置Hadoop
配置core-site.xml 和hdfs-site.xml
Core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>ubuntu1:2181,ubuntu2:2181,ubuntu3:2181</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop2/tmp</value>
</property>
Hdfs-site.xml
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>ubuntu1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>ubuntu2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>ubuntu1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>ubuntu2:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://ubuntu1:8485;ubuntu2:8485;ubuntu3:8485/mycluster</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.mycluster</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/daiwei/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/hadoop2/tmp/to/journal/node/local/data</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop2/dfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop2/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
以上配置时需要关闭所有节点
4. 格式化一台机子上的NameNode
① 格式化时需要先删除以前的所有数据,包括nameNode和dataNode的所有数据。数据的具体位置见hdfs-site.xml
② 开启journalnode
开启所有机器上的
hadoop-daemon.sh start journalnode
③ 格式化数据
hdfs namenode -format
5. 在另外一台机子上复制NameNode
① 启动已经格式化的那台机器的NameNode
hadoop-daemon.sh start bamenode
② 在另外一个NameNode上复制元数据
hdfs namenode -bootstrapStandby
6. 启动其他
① 先关闭所有的其他节点
② 开启全部节点
Start-all.sh
详细见参考,视频见腾讯课堂,23/24/25三节
问题:
1. 无法启动NameNode,且日志无法产看
日志为 ulimit ***,是因为以前初始化过NameNode,删除NameNode的元数据,重新格式化就可以了。
2. 无法启动DataNode,且日志无法产看
和第一个问题一样,删除dataNode的数据就可以了。
更多推荐
所有评论(0)