Hadoop安装
1.软件版本
选取在VMware Workstation Pro 12.0以上版本的虚拟机上部署5台CentOS-7系统模拟5台服务器。Java jdk环境采用jdk-1.8以上版本,Hadoop采用hadoop-2.8.3版本
2.节点地址规划
下表为地址规划表,地址规划以及与主机名的映射关系如下表所示:master1地址为192.168.182.129;master2地址为192.168.182.130;slave1地址为192.168.182.131;slave2地址为192.168.182.132;slave3地址为192.168.182.133
3.每节点资源规划
每台主机的资源配置如下表,后期也可以根据需要动态调整资源(vCPU的资源可以大于物理CPU 2倍左右,比如你的电脑只有4核,可以虚出8 vcpu)
4.节点功能规划
以下为Hadoop节点的部署图,将NameNode部署在master1,SecondaryNameNode部署在master2,slave1、slave2、slave3中分别部署一个DataNode节点。
5.节点文件目录规划
环境准备环节均已完成,下面是Hadoop集群部署
软件存放目录/opt/software,测试目录/opt/test,软件安装目录/opt/hadoop。
mkdir software
mkdir test
mkdir hadoop
1.软件包下载,安装
上传至/opt/software目录下
解压:
tar zxvf jdk-8u231-linux-x64.tar.gz -C /opt/hadoop/
tar zxvf /opt/software/hadoop-2.8.3.tar.gz -C /opt/hadoop/
重命令文件夹
mv jdk1.8.0_231/ jdk1.8
mv hadoop-2.8.3/ hadoop
2.配置环境变量
vi ~/.bashrc
export JAVA_HOME=/opt/hadoop/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/opt/hadoop/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
应用环境变量:
source ~/.bashrc
查看java环境情况:
java -version
3.配置hadoop文件
3.1)修改core-site.xml文件
vim /opt/hadoop/hadoop/etc/hadoop/core-site.xml
<property>
<!-- 配置HDFS的NameNode所在节点服务器 -->
<name>fs.defaultFS</name>
<value>hdfs://master1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoop/data/full/tmp</value>
</property>
3.2)修改hdfs-site.xml文件
vim /opt/hadoop/hadoop/etc/hadoop/hdfs-site.xml
<property>
<!-- 配置HDFS的登陆端口-->
<name>dfs.namenode.http-address</name>
<value>master1:50070</value>
</property>
<!-- 设置secondarynamenode的http通讯地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master2:50090</value>
</property>
<property>
<!-- 配置HDFS的DataNode的备份数量,默认是3个-->
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/hadoop/hdfs/data</value>
</property>
<property>
<!-- 配置HDFS的权限控制 -->
<name>dfs.permissions.enabled</name>vim
<value>false</value>
</property>
<property>
<!-- 配置SecondaryNameNode的节点地址 -->
<name>dfs.namenode.secondary.http-address</name>
<value>master2:50090</value>
</property>
3.3)修改mapred-site.xml
由于Hadoop文件中没有携带mapred-site.xml文件,但是可以有mapred-site.xml.template复制过来
cp mapred-site.xml.template mapred-site.xml
vim /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
3.4)修改yarn-site.xml
vim /opt/hadoop/hadoop/etc/hadoop/yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master1</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
3.5)配置slaves
vim /opt/hadoop/hadoop/etc/hadoop/slaves
slaves1
slaves2
slaves3
3.6)设置hadoop-env.sh环境变量
vim hadoop-env.sh
export JAVA_HOME=/opt/hadoop/jdk1.8 (修改成绝对路径)
export HADOOP_CONF_DIR=/opt/hadoop/hadoop/etc/hadoop
3.7)设置yarn-env.sh环境变量
vim yarn-env.sh
export JAVA_HOME=/opt/hadoop/jdk1.8
3.8)设置mapred-env.sh环境变量
export JAVA_HOME=/opt/hadooo/jdk1.8
3.9)应用环境变量
. yarn-env.sh
. mapred-env.sh
. hadoop-env.sh
4.将master1配置好的hadoop分别远程传输给其它节点
4.1)进入root用户:
chown -R hadoop:hadoop /opt/
其它三个节点同理修改opt属主和属组为hadoop:hadoop
4.2)
scp -r /opt/hadoop hadoop@master2:/opt/
scp -r /opt/hadoop hadoop@slave1:/opt/
scp -r /opt/hadoop hadoop@slave2:/opt/
scp -r /opt/hadoop hadoop@slave3:/opt/
4.3)将master1配置好的环境变量分别传输给其它节点
scp -r .bashrc hadoop@master2:~
scp -r .bashrc hadoop@slave1:~
scp -r .bashrc hadoop@slave2:~
scp -r .bashrc hadoop@slave3:~
每个节点分别允许变量
source .bashrc
5.启动集群平台
5.1)格式化集群,在master1节点上
hdfs namenode -format
5.2)启动hadoop服务
start-dfs.sh、start-yarn.sh
5.3)查看java进程状态:jps
5.4)查看接口服务情况:ss -tnl
6. 浏览器访问web页面
HDFS集群web页面查看地址(9870):http://namenode_host:端口号——http://192.168.182.129:50070(在hdfs-site.xml配置文件中)
YARN集群web页面查看地址(8088):http://resourcemanager_host:端口号——http://192.168.182.129:8088(在yarn-site.xml配置文件中)