集群搭建
1、虚拟机克隆
首先克隆两台虚拟机,克隆虚拟就需要在主虚拟机关机状态下进行克隆,克隆完成后修改三台虚拟机的主机名:
格式:hostnamectl set-hostname 新主机名
设置完成后可以通过hostname 查看当前的主机名设置是否成功
设置完成后可以重新登录一下,这样主机名就更新完成了。
2、添加互信
既然要搭建集群,那么互信是必不可少的。
在hosts中添加三个主机名:,三台虚拟机的内容是一样的,注意各自的ip地址和主机名:
vi /etc/hosts
配置完成后,生成秘钥:
ssh-keygen
把公钥添加的秘钥中去
cat .ssh/id_rsa.pub > .ssh/authorized_keys
然后传输到需要连接的机器上,root后面是主机名,表示要和哪些主机连接,这里我们就和另外两台机器连接:
ssh-copy-id -i .ssh/id_rsa.pub -p22 root@cent04
到这里我们互信就添加成功了。
3、环境配置
移动到/opt/hadoop/etc/hadoop目录下(前一个hadoop是自命名的目录名,默认是安装包名),对几个xml文件进行配置
corn-site.xml目录在之前安装hadoop的时候已经配置好了,可已不用配置,fs.defaultFS下的ip地址表示我们搭建的集群已哪个机器为主:,如果不了解hadoop安装可以参考我前面的文章:
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.136.80:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
配置hdfs-site.xml
vi hdfs-site.xml
这里我把客户端数设为3,即dfs.replication=3,把namdnode的地址设为第二台机器的ip地址,通过第二天机器进行(NameNode为一个通常在baiHDFS实例中的单独机器上运行的软件du。它负责zhi管理文件系统名称空间和控制外部客户机的访问。NameNode决定是否将文件映射到DataNode上的复制块上。)
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.136.81:50090</value>
</property>
配置 mapred-site.xml
vi mapred-site.xml
这里历史服务的任务交给第三台机器
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.136.83:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.136.83:19888</value>
</property>
配置yarn-site.xml
vi yarn-site.xml
这里资源管理我设为当前的主机器
<property>
<name>yarn.resourcemanager.hostname</name>
<value>cent03</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
配置slaves
配置完前面的文件后,我们需要到slaves文件中指定Datanode的节点。Datanode是数据节点,用来存放数据。
我们在slaves文件中添加上三个主机名:
前面的步骤我们都是在一台主机上完成的,另外两台也需要进行配置,这里我们可以通过复制的方式,直接完成另外两台的配置:
scp *.xml root@cent04:$PWD
scp slaves root@cent04:$PWD
如果不放心可以到各个机器下查看是否复制完成。
然后我们在设为主机的机器上启动hdfs,注意删除下tmp文件:
star-all.sh
启动完成后我们可以通过jps指令查看进程,因为是一个集群,所已只需要在一台机器上启动,其他两台也启动了。
DataNode是三台机器都有的,这是我们在slaves文件中配置的,ResourceManager是资源管理,yarn文件中配置,hdfs中配置了NameNode在第二台机器上,所以在第二天机器上运行
第一台机器:
第二天机器:
第三台机器:
到这里我们的集群就搭建成功了