节点名称 | IP | HDFS | YARN |
---|---|---|---|
bigdata02 | 192.168.237.132 | NameNode + DataNode 主节点 | NodeManager |
bigdata03 | 192.168.237.133 | DataNode + SecondaryNamenode | NodeManager |
bigdata04 | 192.168.237.134 | DataNode | NodeManager + ResourceManager主节点 |
JDK1.8(安装略),CentOS7(安装略),hadoop-2.7.7.tar.gz
关闭防火墙
#关闭命令 service firewalld stop chkconfig firewalld off
关闭SELINUX 配置文件:/etc/selinux/config
#SELINUX=enforcing SELINUX=disabled
在Master节点的bigdata02机器上,将hostname置为bigdata02
hostnamectl set-hostname bigdata02
同样的方式在另外两台worker节点上分别设置hostname为bigdata03、bigdata04
在三个节点都需要配置 vim /etc/hosts,都加入如下内容
192.168.237.132 bigdata02 192.168.237.133 bigdata03 192.168.237.134 bigdata04
配置132节点到133节点和134节点的ssh免密登录,由于134作为Yarn的主节点,需在134节点启动Yarn集群,还需要配置134节点到132节点和133节点的ssh免密登录,一定要配。
每个节点生成ssh密钥,执行命令后会在~目录下生成.ssh文件夹,里面包含id_rsa和id_rsa.pub两个文件。
[root@bigdata02 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. ..................... [root@bigdata02 ~]# cd .ssh [root@bigdata02 .ssh]# ls id_rsa id_rsa.pub
在主节点上将公钥拷到一个特定文件authorized_keys中。
[root@bigdata02 ~]# cd .ssh [root@bigdata02 .ssh]# ls id_rsa id_rsa.pub [root@bigdata02 .ssh]# cp id_rsa.pub authorized_keys [root@bigdata02 .ssh]# ls authorized_keys id_rsa id_rsa.pub
将authorized_keys文件拷到下一个节点,并将该节点的ssh密钥id_rsa.pub加入该文件中。
#在bigdata02上使用scp命令实现远程文件拷贝 [root@bigdata02 .ssh]# scp authorized_keys root@bigdata03:/root/.ssh/ The authenticity of host 'bigdata03 (192.168.237.133)' can't be established. ECDSA key fingerprint is SHA256:MyB1zs0E3J/fm8pC0AN8ycsgEIBNHtUqd9xS0WAyv3s. ECDSA key fingerprint is MD5:88:48:3a:ba:3e:14:a7:d7:86:f6:51:74:00:10:f9:00. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'hadoop02,192.168.237.133' (ECDSA) to the list of known hosts. root@bigdata03's password: authorized_keys 100% 395 306.2KB/s 00:00 #登录bigdata03主机 [root@bigdata03 ~]# cd .ssh/ [root@bigdata03 .ssh]# ls authorized_keys id_rsa id_rsa.pub [root@bigdata03 .ssh]# cat id_rsa.pub >> authorized_keys #使用cat追加方式
重复上一步的操作,将bigdata04节点的ssh密钥加入到authorized_keys文件中,并将bigdata04节点生成的authorized_keys文件拷贝到其他两个节点(bigdata02、bigdata03)即可。
验证免密登录
使用ssh 用户名@节点名或ssh ip地址命令验证免密码登录。
[root@bigdata02 .ssh]# ssh root@bigdata03
在132节点创建路径/hadoop,将hadoop压缩包上传并解压出路径 hadoop-2.7.7
创建集群的相关数据存储目录、name目录和data目录
在路径/hadoop/hadoop-2.7.7/etc/hadoop下,进行配置文件修改
# The java implementation to use. export JAVA_HOME=/usr/local/src/jdk8
在标签中添加如下内容:
<property> <name>fs.defaultFS</name> <value>hdfs://bigdata02:9000</value> <description>HDFS集群的url</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/hadoop/bigdata/tmp</value> <description>HDFS集群的相关数据存储目录</description> </property>
在标签中添加如下内容:
<property> <name>dfs.namenode.name.dir</name> <value>/hadoop/bigdata/name</value> <description>为了保证元数据的安全一般配置多个不同目录</description> </property> <property> <name>dfs.datanode.data.dir</name> <value>/hadoop/bigdata/data</value> <description>datanode的数据存储目录</description> </property> <property> <name>dfs.replication</name> <value>3</value> <description>HDFS的数据块的副本存储个数</description> </property> <property> <name>dfs.secondary.http.address</name> <value>bigdata03:50090</value> <description>secondarynamenode运行节点的信息,和namenode不同节点</description> </property>
集群只有 mapred-site.xml.template,可以从这个文件进行复制,或者直接改名也可
cp mapred-site.xml.template mapred-site.xml
然后修改配置文件
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
在标签中添加如下内容:
<property> <name>yarn.resourcemanager.hostname</name> <value>bigdata04</value> <description>YARN集群主节点所在节点</description> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> <description>YARN集群为MapReduce程序提供的shuffle服务</description> </property>
bigdata02 bigdata03 bigdata04
vim /etc/profile
#set java environment export JAVA_HOME=/usr/local/src/jdk8 export JRE_HOME=$JAVA_HOME/jre export CLASS_PATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export HADOOP_HOME=/hadoop/hadoop-2.7.7 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
[root@bigdata02 /]# scp -r hadoop bigdata03:$PWD [root@bigdata02 /]# scp -r hadoop bigdata04:$PWD
只需在bigdata02节点执行,进入到bin目录下执行
[root@bigdata02 bin]# ./hadoop namenode -format
注意
关于初始化操作,是第一次安装Hadoop集群的时候初始化一次就可以了,而不是后面每次使用的都需要初始化一次。如果你想要把一个旧HDFS集群的数据都给删掉,当做一个新集群来使用。那么可以重新初始化,但是还是要把对应的每个节点数据存储目录先行删掉。然后再初始化。这样又得到了一个新HDFS集群。
按照规划,在bigdata02节点上启动hdfs集群,进入sbin目录执行启动命令
[root@bigdata02 sbin]# ./start-dfs.sh
按规划,在bigdata04节点启动Yarn集群
[root@bigdata04 sbin]# ./start-yarn.sh
包含了 HDFS 和 YARN 两个集群,所以两个集群都分别做一次测试
关于 HDFS:上传一个文件查看是否存在,再下载下来。
[root@bigdata02 bigdata]# ls data name SettleRedisConfig.java tmp [root@bigdata02 bigdata]# hadoop fs -put SettleRedisConfig.java /user/java
如在windows系统浏览器查看,则需修改win系统的hosts文件进行映射。
192.168.237.132 bigdata02
192.168.237.133 bigdata03
192.168.237.134 bigdata04
HDFS集群的web ui地址:http://bigdata02:50070
YARN集群的web ui地址:http://bigdata04:8088
hadoop dfsadmin -report hdfs dfsadmin -report(推荐用这个)
duce 例子程序
如在windows系统浏览器查看,则需修改win系统的hosts文件进行映射。
192.168.237.132 bigdata02
192.168.237.133 bigdata03
192.168.237.134 bigdata04
HDFS集群的web ui地址:http://bigdata02:50070
YARN集群的web ui地址:http://bigdata04:8088
hadoop dfsadmin -report hdfs dfsadmin -report(推荐用这个)