Linux001: DataNode、NodeManager、
Linux002: DataNode、NodeManager、JournalNode、QuorumPeermain
Linux003: NameNode(备)、ResourceManager(备)、ZKFC、JournalNode、QuorumPeermain
Linux004: NameNode(主)、ResourceManager(主)、ZKFC、JournalNode、QuorumPeermain
参考:Hadoop全分布搭建
这儿的第2步即本人的上一篇博客的第2步到第5步,不用看,直接复制黏贴即可。
1、上传zookeeper-3.4.6.tar.gz到/opt/source目录下
2、解压:
tar -zxvf zookeeper-3.4.6.tar.gz -C ../apps/
注意:
有时候解压后的文件属主和属组会发生变化,如果发生变化请注意修改为你想要的属主和属组
3、vi + /etc/profile
export ZOOKEEPER_HOME=/opt/apps/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
4、cp /opt/apps/zookeeper-3.4.6/conf/zoo_sample.cfg /opt/apps/zookeeper-3.4.6/conf/zoo.cfg
vi +12 /opt/apps/zookeeper-3.4.6/conf/zoo.cfg
dataDir=/opt/apps/zookeeper-3.4.6/datadir
行末添加:
server.1=Linux004:2888:3888
server.2=Linux003:2888:3888
server.3=Linux002:2888:3888
注意:
dataDir属性在第12行
server.1/server.2/server.3要与后续的myid文件中内容相对应
2888通信端口、3888选举端口
5、 mkdir /opt/apps/zookeeper-3.4.6/data && cd /opt/apps/zookeeper-3.4.6/data
vi /opt/apps/zookeeper-3.4.6/data/myid
1
#注意:
不同节点的zk该数字不一样,该数字与zoo.cfg中的sever.x中的x相对应
data目录为zookeeper数据存储目录。默认为/tmp目录
6、拷贝zookeeper安装文件到其他zookeeper节点
scp -r /opt/apps/zookeeper-3.4.6 Linux002:/opt/apps
scp -r /opt/apps/zookeeper-3.4.6 Linux003:/opt/apps
1、vi + /etc/profile
export ZOOKEEPER_HOME=/opt/apps/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
2、vi /opt/apps/zookeeper-3.4.6/data/myid
2
#Linux003修改为2,Linux002修改为3,不可颠倒,因为和zoo.cfg中的配置是相对应的
启动:
./zkServer.sh start
#启动时所有zk节点都要执行该命令,启动完成,则zk集群搭建完毕
#每台zk节点执行jps可以看到zk的进程QuorumPeerMain
补充:
停止zk:
./zkServer.sh stop #停止zk,每台都执行
查看状态:
./zkServer.sh status #zk有一个leader,多个follower
进入zk客户端:
./zkCli.sh
查看命令帮助:
help
查看文件夹:
ls path
删除文件[夹]:
rmr
查看文件内容:
get 文件名
退出客户端:
ctrl+c
1、上传hadoop-2.6.5.tar.gz安装包到Linux004机子的/opt/source目录下
2、解压:
tar -zxvf hadoop-2.6.5.tar.gz ../apps/
#注意:
凡是解压操作一定要注意观察,解压后的文件的属主和属组是否发生变化。发生变化后一定改过来。
3、配置环境变量
vi + /etc/profile
export HADOOP_PREFIX=/opt/apps/hadoop-2.6.5
export PATH=$PATH:$HADOOP_PREFIX/bin
4、创建临时数据保存目录
mkdir /opt/apps/hadoop-2.6.5/tmp
#个人测试环境建议给777权限客避免一些问题
5、创建DataNode、NameNode数据保存目录
mkdir -p /opt/apps/hadoop-2.6.5/data/dfs
vi +25 /opt/apps/hadoop-2.6.5/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_80
vi /opt/apps/hadoop-2.6.5/etc/hadoop/core-site.xml
fs.defaultFS
hdfs://mycluster
hadoop.tmp.dir
file:///opt/apps/hadoop-2.6.5/tmp
ha.zookeeper.quorum
Linux004:2181,Linux003:2181,Linux002:2181
注意:
hadoop.tmp.dir:
指定hadoop临时目录, hadoop.tmp.dir 是hadoop文件系统依赖的基础配置。很多路径都依赖它。
如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默认就放在这>个路径中。
vi /opt/apps/hadoop-2.6.5/etc/hadoop/hdfs-site.xml
dfs.namenode.name.dir
file:///opt/apps/hadoop-2.6.5/data/dfs/name
dfs.namenode.edits.dir
${dfs.namenode.name.dir}
dfs.datanode.data.dir
file:///opt/apps/hadoop-2.6.5/data/dfs/data
dfs.replication
3
dfs.nameservices
mycluster
dfs.ha.namenodes.mycluster
nn1,nn2
dfs.namenode.rpc-address.mycluster.nn1
Linux004:8020
dfs.namenode.rpc-address.mycluster.nn2
Linux003:8020
dfs.namenode.http-address.mycluster.nn1
Linux004:50070
dfs.namenode.http-address.mycluster.nn2
Linux003:50070
dfs.journalnode.http-address
0.0.0.0:8480
dfs.journalnode.rpc-address
0.0.0.0:8485
dfs.namenode.shared.edits.dir
qjournal://Linux004:8485;Linux003:8485;Linux002:8485/mycluster
dfs.journalnode.edits.dir
/opt/apps/hadoop-2.6.5/data/dfs/jn
dfs.ha.automatic-failover.enabled
true
dfs.client.failover.proxy.provider.mycluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_dsa
dfs.ha.fencing.ssh.connect-timeout
30000
dfs.hosts
/opt/apps/hadoop-2.6.5/etc/hadoop/slaves
#NameNode/Edits Log/DataNode数据存放目录可以不配置,不配置会自动配置在core-site.xml中
hadoop.tmp.dir属性对应的目录中
1、cp /opt/apps/hadoop-2.6.5/etc/hadoop/mapred-site.xml.template /opt/apps/hadoop-2.6.5/etc/hadoop/mapred-site.xml
2、vi /opt/apps/hadoop-2.6.5/etc/hadoop/mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
Linux004:10020
mapreduce.jobhistory.webapp.address
Linux004:19888
vi /opt/apps/hadoop-2.6.5/etc/hadoop/yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.ha.enabled
true
yarn.resourcemanager.ha.automatic-failover.enabled
true
yarn.resourcemanager.cluster-id
yarn-cluster
yarn.resourcemanager.ha.rm-ids
rm1,rm2
yarn.resourcemanager.hostname.rm1
Linux004
yarn.resourcemanager.hostname.rm2
Linux003
yarn.resourcemanager.zk-address
Linux004:2181,Linux003:2181,Linux002:2181
yarn.resourcemanager.zk.state-store.address
Linux004:2181,Linux003:2181,Linux002:2181
vi /opt/apps/hadoop-2.6.5/etc/hadoop/slaves
Linux001
Linux002
scp -r /opt/apps/hadoop-2.6.5 root@Linux001:/opt/apps/
scp -r /opt/apps/hadoop-2.6.5 root@Linux002:/opt/apps/
scp -r /opt/apps/hadoop-2.6.5 root@Linux003:/opt/apps/
环境变量:
vi + /etc/profile
export HADOOP_PREFIX=/opt/apps/hadoop-2.6.5
export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
source /etc/profile
#输入start双击tab键如果出现hadoop的相关脚本,则环境变量配置成功
cd /opt/apps/hadoop-2.6.5/sbin && hadoop-daemon.sh start journalnode
#启动journalnode方便格式化时元数据落在journalnode上
#启动后执行jps命令会多一个JournalNode进程
说明:
选定一台namenode节点,你选Linux003也行,进行格式化。格式化后在该机器上将NameNode元数据文件拷贝到另一台NameNode节点。
1、/opt/apps/hadoop-2.6.5/bin/hdfs namenode -format
2、scp -r /opt/apps/hadoop-2.6.5/data/dfs/name Linux003:/opt/apps/hadoop-2.6.5/data/dfs/
注意:
格式化失败:
先关闭集群,journalnode也关掉。
然后删除本机上/opt/apps/hadoop-2.6.5/data/dfs和/opt/apps/hadoop-2.6.5/tmp两个文件夹
再删除其他节点上的hadoop安装目录。
然后重新重第13步执行起。
cd /opt/apps/hadoop-2.6.5/bin/ && hdfs zkfc -formatZK
#仅在集群搭建额时候需要格式化
start-all.sh
cd /opt/apps/hadoop-2.6.5/sbin && yarn-daemon.sh start resourcemanager
#备用的namenode不用手动启动,但备用的resourcemanager需要手动启动