模拟1台master,2台slave。
准备工作:
VMware12
CentOS-7-x86_64-DVD-1611.iso
hadoop-2.7.3.tar.gz
jdk-8u131-linux-x64.tar.gz
1.安装VMware
2.VMware下安装CentOS,参考http://blog.csdn.net/xx352890098/article/details/72271924
3.jkd、hadoop安装见下文
搭建环境:
1.使用第一个虚拟机CentOS(主机名为slave1,剩余的master和slave2用VMware的克隆)
登录Linux
修改主机名为slave1
vi /etc/hostname
I 输入slave1
:wq 保存退出
设置网络
cd /etc/sysconfig/net-work-scripts/
vi 第一个网络文件配置
修改成如下的网络配置,可参考http://blog.csdn.net/xx352890098/article/details/72271924
因为修改了主机名和网络,重启
reboot
重新登录Linux,ping配置的IP看看是否通,也查看主机名是否更改过来
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
vi /etc/sysconfig/selinux
i 将SELINUX=enforcing改成SELINUX=disabled
:wq 保存退出
setenforce 0
getenforce 出现permissive即可
安装JDK,可参考http://blog.csdn.net/xx352890098/article/details/72395759
cd /root/download/
mkdir java
cd java/
rz (用secureCRT选择你机子里的jdk.tar.gz)
tar -zxvf jdk.tar.gz(安装)
rm jdk.tar.gz(移除安装包)
vi /etc/profile(配置环境)
i(编辑)
在最后加上
export JAVA_HOME=/root/download/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin
:wq(保存退出)
source /etc/profile
然后输入java -version,出现信息即完成了
安装Hadoop
cd /root/download/
mkdir hadoop
cd hadoop/
rz (用secureCRT选择你机子里的hadoop.tar.gz)
tar -zxvf hadoop.tar.gz(安装)
rm hadoop.tar.gz(移除安装包)
vi /etc/profile(配置环境)
i(编辑)
在最后加上
export JAVA_HOME=/root/download/jdk1.8.0_131
export HADOOP_HOME=/root/download/hadoop-2.7.3
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
:wq(保存退出)
source /etc/profile
然后是Hadoop文件的配置(配置8个地方)
①/etc/hosts
添加master、slave对应的IP和主机名
②修改mapred-env.sh
③修改core-site.xml
<configuration>
<!--指定namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://slave1:9000</value>
</property>
<!--指定缓冲大小-->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!--指定使用hadoop产生的存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-root</value>
</property>
</configuration>
圈出的地方在克隆后要修改
④hdfs-site.xml
<configuration>
<!-- namenode使用的元数据保存路径 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/tmp/hadoop-root/tmp/dfsnamenode</value>
</property>
<!-- datanode数据的保存路径 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/tmp/hadoop-root/tmp/dfsdatanode</value>
</property>
<!-- 指定hdfs保存数据的副本数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 一个文件块大小 -->
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
<!-- namenode启动后展开的线程数 -->
<property>
<name>dfs.namenode.handle.count</name>
<value>100</value>
</property>
<!-- datanode页面监听地址和端口 -->
<property>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:50076</value>
</property>
</configuration>
⑤mapred-site.xml(mv mapred-site.xml.template mapred-site.xml)
<configuration>
<!-- 告诉hadoop以后mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
⑥yarn-site.xml
<configuration>
<!-- 是否启动日志聚合 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>false</value>
</property>
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.5.5:8032</value>
</property>
<!-- 指定YARN的老大(ResourceManager)的主机名 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
⑦slaves
输入两个slave的主机名
⑧hadoop-env.sh
文件全部配置完毕
2.克隆出另外两个虚拟机:
对两个克隆出的虚拟机需要修改的地方
①修改IP
②修改主机名
③修改上文core-site.xml的主机名
3.SSH无密码登录:
在master主机上
ssh-keygen -t rsa -p ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
然后将authorized_keys和id_rsa发往其他两节点
scp ~/.ssh/authorized_keys 主机名@IP地址:~/.ssh
scp ~/.ssh/id_rsa 主机名@IP地址:~/.ssh
4.启动:
hdfs namenode -format(初始化)
./start-all.sh
可以用jps命令查看进程是否启动
输入master的IP:8080可以看到ResourceManager的信息
输入master的IP:50070可以看到NameNode的信息