最近看hadoop和人工智能相关的知识,hadoop搭建笔记,晒出来给大家分享下。
1、fsimage 在namdenode的格式化的产生的,不同的namenode格式化的fsimage是不同的。只在其中一台namenode机 器上格式化,edists 也是在格式化的时间产生的
2、多个edits的文件,如何给其他namenode相同的edits.就是用共享机制
3、edits 文件,实时产生的,有如下方式实现共享edits :network file share (NFS)
4、HA环境搭建【注意:所有相关的机器的时间都要保持一致。使用如果不一致使用: ntpdate ntp.sjtu.edu.cn 同步一致】
以四台机器:node1,node2,node3,node4为例搭建环境
以node1可以无密码登录其他三台机器为例
NN DN ZK ZKFC JN RM NM(任务管理)
Node1 Y Y Y
Node2 Y Y Y Y Y Y Y
Node3 Y Y Y Y
Node4 Y Y Y
(1)、zookeper搭建
zoo.conf 配置和myid的配置
a. 三台zookeeper:node1,node2,node3
b. 编辑zoo.cfg配置文件
i. 修改dataDir=/opt/zookeeper
ii. server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
c. 在dataDir目录中创建一个myid的文件,文件内容为1,2,3
(2)hadoop-site.xml
配置nameservice
需要配置的有:
<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>node1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>node2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>node1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>node2:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node2:8485;node3:8485;node4: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>/root/.ssh/id_dsa</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/jouralnode/data</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
Core-site.xml 需要的配置
<property>
<name>ha.zookeeper.quorum</name>
<value>node1:2181,node2:2181,node3:2181</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
(3)配置hadoop中的slaves 位datanode节点的值
(4)不用配置masters,如果有删掉masters文件,masters是配置secondary namenode.
(5)启动zookeeper :执行命令:./zkServer.sh start
(6)启动Jouralnode 执行命令:./hadoop-daemon.sh start journalnode
(7)格式化和启动namenode的机器
a、首先格式化可以无密码登录三台机器的namenode的机器.执行命令:dfs namenode -format,格式化没有报错后启动这台格式化机器的namenode,执行命令在/etc/hadoop下执行:./ hadoop-daemon.sh start namenode
b、在没有格式化的namenode上执行:hdfs namenode -bootstrapStandby,然后启动这台namenode机器。命令依然是:在/etc/hadoop下执行:./ hadoop-daemon.sh start namenode
(8)在其中一个namenode上初始化zkfc:hdfs zkfc -formatZK 建议在可以无密码登录其他三台机器的namenode执行。
(9)停止上面的节点【在第一台namenode上执行】:stop-dfs.sh
(10)全面启动所有的节点:start-dfs.sh
网友评论