hadoo系列(一)hadoop集群安装 | |
hadoop系列(二)HA高可用方式部署 | |
hadoop系列(三) HDFS的shell操作和常用API操作 | |
hadoop系列(四)HDFS的工作机制,MapReduce,yarn流程及核心原理 | |
hadoop系列(五) 源码分析 |
目录
2.1 四个xml文件,两个.sh启动文件,一个slaves文件 4+2+1=7
主机具备的基础环境
- 设置IP及主机名
- 关闭防火墙及selinux
- 设置host映射
- 时间同步
- 设置ssh免密登录
参考:https://blog.csdn.net/qq_38130094/article/details/119871733?spm=1001.2014.3001.5501
hadoop-2.8.5版本的包
node1(master) 配置4C4G | 192.168.1.101 |
node2(slave) 配置2C2G | 192.168.1.102 |
node4(slave) 配置2C2G | 192.168.1.104 |
虚拟机host文件:
192.168.1.101 node1
192.168.1.102 node2
192.168.1.104 node4
主机相关配置参考:https://blog.csdn.net/qq_38130094/article/details/119871733
1. 创建hadoop目录及数据目录
在指定用户下执行
# 创建 hadoop用户用于操作hadoop
useradd hadoop
su hadoop
# 1.创建hadoop服务文件目录
mkdir -p /user/local/bigdata
# 2.下载2.8.5版本的包
wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
# 3.解压文件目录并赋予用户目录权限
tar xvzf hadoop-2.8.5.tar.gz
chown -R hadoop:hadoop /usr/local/bigdata/hadoop-2.8.5
# 4.在用户目录下创建hadoop的数据文件夹和name文件夹
cd ~
mkdir -p ./hdfs/name ./hdfs/data
hadoop目录文件结构
2. 修改hadoop配置文件
2.1 四个xml文件,两个.sh启动文件,一个slaves文件 4+2+1=7
2.2 hadoop-env.sh
首先必须指定hadoop的配置文件目录,在指定jdk目录
export HADOOP_CONF_DIR=/usr/local/bigdata/hadoop-2.8.5/etc/hadoop
export JAVA_HOME=/usr/local/jdk1.8.0_171
export HADOOP_PREFIX=/usr/local/bigdata/hadoop-2.8.5
2.3 yarn-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_171
2.4 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.home.dir</name>
<value>file:/usr/local/bigdata/hadoop-2.8.5</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hdfs</value>
</property>
</configuration>
2.4 hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.hosts</name>
<value>/usr/local/bigdata/hadoop-2.8.5/etc/hadoop/slaves</value>
</property>
</configuration>
2.5 mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<property>
<name>mapred.job.tracker.http.address</name>
<value>node1:50030</value>
</property>
<property>
<name>mapred.task.tracker.http.address</name>
<value>node1:50060</value>
</property>
</configuration>
2.6 yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>node1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>node1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>node1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>node1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
2.7 slaves 指定dataNode启动节点
node1
node2
node3
2.8 拷贝文件夹到目标节点(node2 node4)
scp -r /usr/local/bigdata/hadoop-2.8.5 node2:/usr/local/bigdata
scp -r /usr/local/bigdata/hadoop-2.8.5 node4:/usr/local/bigdata
2.8 对namenode进行格式化(必须在主节点上进行)
cd bin/
./hdfs namenode -format
2.9 启动
cd sbin
# 第一种启动方式
$bin start-all.sh
# 推荐第二种启动方式
$bin start-dfs.sh
$bin start-yarn.sh
3. 验证阶段
查看启动后的日志文件,是.log文件,在所在主机查看无报错
3.1 dashboard页面(主节点web页面)
DFS WebUI地址:
http://192.168.1.101:50090/
http://192.168.1.101:50070/
Yarn WebUI地址:http://192.168.1.101:8088/
正常有五个进程:
NameNode
SecondaryNameNode
ResourceManager
NodeManager
DataNode
查看三台机器的日志
进程正常,日志无报错,基本就可以证明服务正常