目录
解压Hadoop
改名
更改配置文件
workers
hdfs-site.xml
core-site.xml
hadoop-env.sh
mapred-site.xml
yarn-site.xml
设置环境变量
启动集群
启动zk集群
启动journalnode服务
格式化hfds namenode
启动namenode
同步namenode信息
查看namenode节点状态
查看启动情况
关闭所有dfs有关的服务
格式化zk
启动dfs
启动yarn
查看resourcemanager节点状态
测试集群wordcount
创建一个TXT文件
上传到hdfs上面
查看输出结果
[root@ant51 install]# tar -zxvf ./hadoop-3.1.3.tar.gz -C ../soft/
[root@ant151 install]# cd /opt/soft
[root@ant151 soft]# mv hadoop-3.1.3/ hadoop313
[root@ant151 ~] # cd /opt/soft/hadoop313/etc/hadoop
[root@ant151 hadoop] # vim workers
把所有的虚拟机加上去
[root@ant151 hadoop] # vim hdfs-site.xml
dfs.replication 2 hadoop中每一个block文件的备份数量 dfs.namenode.name.dir /opt/soft/hadoop313/data/dfs/name namenode上存储hdfs名字空间元数据的目录 dfs.datanode.data.dir /opt/soft/hadoop313/data/dfs/data datanode上数据块的物理存储位置目录 dfs.namenode.secondary.http-address ant151:9869 dfs.nameservices gky 指定hdfs的nameservice,需要和core-site.xml中的保持一致 dfs.ha.namenodes.gky nn1,nn2 gky为集群的逻辑名称,映射两个namenode逻辑名 dfs.namenode.rpc-address.gky.nn1 ant151:9000 namenode1的rpc通信地址
dfs.namenode.http-address.gky.nn1 ant151:9870 namenode1的http通信地址 dfs.namenode.rpc-address.gky.nn2 ant152:9000 namenode2的rpc通信地址
dfs.namenode.http-address.gky.nn2 ant152:9870 namenode2的http通信地址
dfs.namenode.shared.edits.dir qjournal://ant151:8485;ant152:8485;ant153:8485/gky 指定namenode的edits元数据的共享存储位置(JournalNode列表)
dfs.journalnode.edits.dir /opt/soft/hadoop313/data/journaldata 指定JournalNode在本地磁盘存放数据的位置
dfs.ha.automatic-failover.enabled true 开启NameNode故障自动切换
dfs.client.failover.proxy.provider.gky org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider 如果失败后自动切换的实现的方式
dfs.ha.fencing.methods sshfence 防止脑裂的处理
dfs.ha.fencing.ssh.private-key-files /root/.ssh/id_rsa 使用sshfence隔离机制时,需要用ssh免密登陆 dfs.permissions.enabled false 关闭hdfs操作的权限验证 dfs.image.transfer.bandwidthPerSec 1048576 dfs.block.scanner.volume.bytes.per.second 1048576
[root@ant151 hadoop] # vim core-site.xml
fs.defaultFS hdfs://gky 逻辑名称,必须与hdfs-site.xml中的dfs.nameservice值保持一致 hadoop.tmp.dir /opt/soft/hadoop313/tmpdata namenode上本地的hadoop临时文件夹 hadoop.http.staticuser.user root 默认用户 io.file.buffer.size 131072 读写队列缓存:128k;读写文件的buffer大小 hadoop.proxyuser.root.hosts * 代理用户 hadoop.proxyuser.root.groups * 代理用户组 ha.zookeeper.quorum ant151:2181,ant152:2181,ant153:2181 高可用用户连接 ha.zookeeper.session-timeout.ms 10000 hadoop连接zookeeper会话的超时时长为10s
[root@ant151 hadoop] # vim hadoop-env.sh
大概54行左右JAVA_HOME
export JAVA_HOME=/opt/soft/jdk180
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
[root@ant151 hadoop] # vim mapred-site.xml
mapreduce.framework.name yarn job执行框架:local,classic or yarn true mapreduce.application.classpath /opt/soft/hadoop313/etc/hadoop:/opt/soft/hadoop313/share/hadoop/common/lib/*:/opt/soft/hadoop313/share/hadoop/common/*:/opt/soft/hadoop313/share/hadoop/hdfs/*:/opt/soft/hadoop313/share/hadoop/hdfs/lib/*:/opt/soft/hadoop313/share/hadoop/mapreduce/*:/opt/soft/hadoop313/share/hadoop/mapreduce/lib/*:/opt/soft/hadoop313/share/hadoop/yarn/*:/opt/soft/hadoop313/share/hadoop/yarn/lib/* mapreduce.jobhistory.address ant151:10020 mapreduce.jobhistory.webapp.address ant151:19888 mapreduce.map.memory.mb 1024 map阶段task工作内存 mapreduce.reduce.memory.mb 1024 reduce阶段task工作内存
[root@ant151 hadoop] # vim yarn-site.xml
yarn.resourcemanager.ha.enabled true 开启resourcemanager高可用 yarn.resourcemanager.cluster-id yrcabc 指定yarn集群中的id yarn.resourcemanager.ha.rm-ids rm1 指定resourcemanager的名字 yarn.resourcemanager.hostname.rm1 ant153 设置rm1的名字 yarn.resourcemanager.webapp.address.rm1 ant153:8088 yarn.resourcemanager.zk-address ant151:2181,ant152:2181,ant153:2181 指定zk集群地址 yarn.nodemanager.aux-services mapreduce_shuffle 运行mapreduce程序必须配置的附属服务 yarn.nodemanager.local-dirs /opt/soft/hadoop313/tmpdata/yarn/local nodemanager本地存储目录 yarn.nodemanager.log-dirs /opt/soft/hadoop313/tmpdata/yarn/log nodemanager本地日志目录 yarn.nodemanager.resource.memory-mb 1024 resource进程的工作内存 yarn.nodemanager.resource.cpu-vcores 2 resource工作中所能使用机器的内核数 yarn.scheduler.minimum-allocation-mb 256 yarn.log-aggregation-enable true yarn.log-aggregation.retain-seconds 86400 日志保留多少秒 yarn.nodemanager.vmem-check-enabled false yarn.application.classpath /opt/soft/hadoop313/etc/hadoop:/opt/soft/hadoop313/share/hadoop/common/lib/*:/opt/soft/hadoop313/share/hadoop/common/*:/opt/soft/hadoop313/share/hadoop/hdfs/*:/opt/soft/hadoop313/share/hadoop/hdfs/lib/*:/opt/soft/hadoop313/share/hadoop/mapreduce/*:/opt/soft/hadoop313/share/hadoop/mapreduce/lib/*:/opt/soft/hadoop313/share/hadoop/yarn/*:/opt/soft/hadoop313/share/hadoop/yarn/lib/* yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
[root@ant151 hadoop] # vim /etc/profile
#HADOOP_HOME
export HADOOP_HOME=/opt/soft/hadoop313
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib

配置完成之后把hadoop313和配置文件拷贝到其余机器上面
hadoop
[root@ant151 shell]# scp -r ./hadoop313/ root@ant152:/opt/soft/
[root@ant151 shell]# scp -r ./hadoop313/ root@ant153:/opt/soft/环境变量
[root@ant151 shell]# scp /etc/profile root@ant152:/etc
[root@ant151 shell]# scp /etc/profile root@ant153:/etc
所有机器刷新资源[root@ant151 shell]# source /etc/profile
[root@ant151 shell]# ./zkop.sh start
[root@ant151 shell]# ./zkop.sh status
[root@ant151 shell]# ./showjps.sh
启动ant151,ant152,ant153的journalnode服务
[root@ant151 soft]# hdfs --daemon start journalnode
在ant151上面操作
[root@ant151 soft]# hdfs namenode -format
在ant151上面操作
[root@ant151 soft]# hdfs --daemon start namenode
在ant152上操作
[root@ant152 soft]# hdfs namenode -bootstrapStandby
启动namenode
[root@ant152 soft]# hdfs --daemon start namenode
[root@ant151 zk345]# hdfs haadmin -getServiceState nn1
[root@ant151 zk345]# hdfs haadmin -getServiceState nn2
![]()
[root@ant152 shell]# ./showjps.sh

[root@ant151 soft]# stop-dfs.sh
[root@ant151 soft]# hdfs zkfc -formatZK
[root@ant151 soft]# start-dfs.sh
[root@ant151 soft]# start-yarn.sh
[root@ant151 zk345]# yarn rmadmin -getServiceState rm1
[root@ant151 soft]# vim ./aa.txt
[root@ant151 soft]# hdfs dfs -put ./aa.txt /
查看
[root@ant151 soft]# hdfs dfs -ls /
mapreduce里面的jar包运行wordcount

运行
[root@ant151 mapreduce]# hadoop jar ./hadoop-mapreduce-examples-3.1.3.jar wordcount /aa.txt /out1
[root@ant151 mapreduce]# hdfs dfs -ls /
[root@ant151 mapreduce]# hdfs dfs -ls /out1
[root@ant151 mapreduce]# hdfs dfs -cat /out1/part-r-00000出现
aa 1
bb 2
cc 3
则成功