一、准备
1、准备至少三台linux服务器,并安装JDK
关闭防火墙如下
systemctl stop firewalld.service
systemctl disable firewalld.service
2、使用xshell工具,连接三台机器上,同时输入命令操作三台机器,只要如图勾选上即可
1)配置域名与Ip映射关系 vi /etc/hosts
2)配置免密登陆,需每台机器上都生成密钥对,将各自的公钥传输到其他机器上
输入命令:ssh-keygen -t rsa 回车生成密钥对
ssh-copy-id -i .ssh/id_rsa.pub root@bidata112
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata113
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata114
3)保证集群的时间同步
date -s 小时:分钟
二、在主节点上安装hadoop (bigdata112)
1、上传并解压hadoop
2、配置/etc/hadoop下的几个文件,hadoop-env.sh,
export JAVA_HOME=/root/training/jdk1.8.0_144
3、hdfs-site.xml
<!--配置数据块的冗余度,默认是3-->
<!--原则冗余度跟数据节点个数保持一致,最大不要超过3-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--是否开启HDFS的权限检查,默认是true-->
<!--使用默认值,后面会改为false-->
<!--
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
-->
4、core-site.xml
<!--配置HDFS主节点的地址,就是NameNode的地址-->
<!--9000是RPC通信的端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata112:9000</value>
</property>
<!--HDFS数据块和元信息保存在操作系统的目录位置-->
<!--默认是Linux的tmp目录,一定要修改-->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/training/hadoop-2.7.3/tmp</value>
</property>
5、mapred-site.xml
<!--MR程序运行容器或者框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
6、yarn-site.xml
<!--配置Yarn主节点的位置-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata112</value>
</property>
<!--NodeManager执行MR任务的方式是Shuffle洗牌-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
7、slaves 配置从节点地址
bigdata113
bigdata114
8、对namenode进行格式化
hdfs namenode -format
出现红色部分表示格式化成功
三、把安装好的hadoop复制到从节点
scp -r hadoop-2.7.3/ root@bigdata113:/root/training
scp -r hadoop-2.7.3/ root@bigdata114:/root/training
四、在主节点上启动集群
start-all.sh
到此全分布式模式安装结束,并能成功启动服务