一:准备工作
1:首先安装好linux虚拟机然后配置网络主机名(我的是master)
2:将jdk上传解压安装配置环境变量
3:将安装好的master进行克隆两台虚拟机加master 三台组成一个集群
所克隆的虚拟机需要修改主机名,ip
永久修改主机名
hostnamectl set-hostname node1或node2
ip
方式1:
通过可视化界面直接修改
方式2:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
然后重启网络:service network restart
4:加上映射关系
windows下C:\Windows\System32\drivers\etc\hosts
ip 地址 master
ip地址 node1
ip地址 node2
linux下/etc/hosts
ip 地址 master
ip地址 node1
ip地址 node2
注意ip地址每个虚拟机是不同的,第一个是在linux虚拟网络里查到的,或者是在命令行输入ipconfig 查找ip
我都是192.168.85.1 ,所以我的地址我定义为192.168.85.110 最后一个110是我自己随机的,最后一位可以是11-254之间
我的网络配置是:
192.168.75.110 master
192.168.75.120 node1
192.168.75.130 node2
5:ssh免密:只需要在master下执行
1.创建秘钥
ssh-keygen -t rsa 一直回车
2.秘钥分发
ssh-copy-id 主机名或ip地址(分发三台)
注意:如果执行出错,进入/root/.ssh删除里面所有内容,从新执行
6:scp:文件分发
格式:
scp [选项] 文件路径 主机名:发送的位置
选项:
-r:分发目录
二:安装hadoop
1:上传hadoop安装包 上传到msater的/usr/local/soft/
可以使用上传工具我的是xftp
2:对hadoop解压
tar -xvf hadoop-2.7.6.tar.gz(上传的hadoop)
3:配置环境变量(要把目录切换到hadoop中)
vim /etc/profile
增加hadoop环境变量,将bin和sbin都配置到PATh中
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
export HADOOP_HOME=/usr/local/soft/hadoop-2.7.6
export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
配置完了以后要执行 source /etc/profile 使配置文件生效
4:修改配置文件
hadoop 配置文件在/usr/local/soft/hadoop-2.7.6/etc/hadoop/
cd /usr/local/soft/hadoop-2.7.6/etc/hadoop/
(1、slaves : 从节点列表(datanode)
vim slaves
增加node1, node2 (要与自己映射的主机名一致)
(2、hadoop-env.sh : Hadoop 环境配置文件
vim hadoop-env.sh
修改JAVA_HOME
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
后面是具体的java安装位置,安装在哪就是哪里,直接到jdk所在目录然后执行pwd命令
(3、core-site.xml : hadoop核心配置文件
vim core-site.xml
在configuration中间增加以下内容
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/soft/hadoop-2.7.6/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<value>hdfs://master:9000</value>其中master是主机名 ,如果不是master需要改,或者用ip地址也可以
其中<value>/usr/local/soft/hadoop-2.7.6/tmp</value> 中/usr/local/soft/hadoop-2.7.6是hadoop安装路径,如果不一样要改一下,一样就不用改了
(4、hdfs-site.xml : hdfs配置文件
vim hdfs-site.xml
在configuration中间增加以下内容
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<name>dfs.replication</name>
<value>1</value>
是副本个数,我这里设置是1
(5、yarn-site.xml: yarn配置文件
vim yarn-site.xml
在configuration中间增加以下内容
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<value>master</value> master是主机名
(6、mapred-site.xml: mapreduce配置文件
重命名
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
在configuration中间增加以下内容
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
其中master是主机名不一样要改。
5:将hadoop安装文件同步到子节点
scp -r /usr/local/soft/hadoop-2.7.6/ node1:/usr/local/soft/
scp -r /usr/local/soft/hadoop-2.7.6/ node2:/usr/local/soft/
其中node1和node2是另外两台主机名 前面是解压后的hadoop所在目录,后面是要安装的位置。
6:将配置环境变量分发给node1和node2
scp -r /etc/profile node1:/etc/
scp -r /etc/profile node2:/etc/
7:格式化namenode
hdfs namenode -format
8、启动hadoop
start-all.sh(只在master中执行就可以了就行了)
9:验证是否成功
(1:三台机器都执行jps命令
(2:直接在浏览器输入master:50070