大数据
Hadoop框架
Hadoop介绍
定义:hadoop是一个分布式存储的分布式计算的框架
1. 分布式:在每个积点上分布计算
2. 项目开发用于可靠、可扩展、分布式计算的开源软件。
3. 相关网站:https://hadoop.apache.org/#
hadoop的核心组件
1. HDFS:分布式存储组件
2. MapReduce: 分布式计算组件(ps:2018年后逐渐过时,计算是在指定环境中计算)
3. Yarn:资源调度管理器(正常使用适合MapReduce一起使用)
详细如下图:
Hadoop 的安装有三种方式
- 单机模式:直接解压,只支持MapReduce的测试,不支持HDFS,一般不用。
- 伪分布式模式:单机通过多进程模拟集群方式安装,支持Hadoop所有功能。
1. 优点:功能完整。
2. 缺点:性能低下。学习测试用。 - 完全分布式模式:集群方式安装,生产级别。
1. HA:高可用。
伪分布式布置
- 需要环境:
1. JDK,JAVA_HOME,配置hosts,关闭防火墙,配置免密登录等。 注意:只将其安装在hadoop01节点上。 虚拟机布置如下图:
修改配置文件
位置:/opt/servers/hadoop-2.7.7/etc/hadoop
1. 修改hadoop-env.sh
vim /opt/servers/hadoop-2.7.7/etc/hadoop/hadoop-env.sh
修改
export JAVA_HOME=/opt/servers/jdk1.8.0_65
export HADOOP_CONF_DIR=/opt/servers/hadoop-2.7.7/etc/hadoop
2. 修改 core-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/core-site.xml
增加namenode配置、文件存储位置配置:粘贴代码部分到标签内
<property>
<!--用来指定hdfs的老大,namenode的地址,数据存储地址-->
<name>fs.default.name</name> #ps:<name>fs.defaultFS.name</name>是新版本
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<!--用来指定hadoop运行时产生文件的存放目录-->
<name>hadoop.tmp.dir</name>
<value>/opt/servers/hadoop-2.7.7/tmp</value>
</property>
3. 修改 hdfs-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
- 配置包括自身在内的备份副本数量到标签内
<property>
<!--指定hdfs保存数据副本的数量,包括自己,默认为3-->
<!--伪分布式模式,此值必须为1-->
<name>dfs.replication</name> # ps:容错节点,存了多少份,取决于<value>1</value>
<value>1</value>
</property>
<!--设置hdfs操作权限,false表示任何用户都可以在hdfs上操作文件-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
4. 修改 mapred-site.xml
说明:在/opt/servers/hadoop-2.7.7/etc/hadoop的目录下,只有一个mapred-site.xml.template文件,复制一个。
cp mapred-site.xml.template mapred-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/mapred-site.xml
配置mapreduce运行在yarn上:粘贴高亮部分到标签内
<property>
<!--指定mapreduce运行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5. 修改 yarn-site.xml
vim /opt/servers/hadoop-2.7.7/etc/hadoop/yarn-site.xml
- 配置:粘贴高亮部分到标签内
<property>
<!--指定yarn的老大resourcemanager的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<!--NodeManager获取数据的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6. 修改slaves
vim /opt/servers/hadoop-2.7.7/etc/hadoop/slaves
修改
hadoop01
7. 配置hadoop的环境变量
vim /etc/profile
export HADOOP_HOME=/opt/servers/hadoop-2.7.7
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后生效
source /etc/profile
环境变量配置完成,测试环境变量是否生效
echo $HADOOP_HOME
启动
1. 初始化
hdfs namenode -format
2. 启动
start-all.sh
3. 测试
jps
运行结果成功图如下:
4. 访问浏览器
windows的浏览器中访问hadoop01:50070
安装成功!
5. 停止
stop-all.sh
6. 停止服务
stop-all.sh
7. 如果没有安装成功
如果没有成功(进程数不够)
1.stop-all.sh 停掉hadoop所有进程
2.删掉hadoop2.7.7下的tmp文件
3.hdfs namenode -format 重新初始化(出现successfully证明成功),如果配置文件报错,安装报错信息修改相应位置后重新执行第二步。
4.start-all.sh 启动hadoop
上传文件到hadoop01:50070
1.创建a.txt文件
touch a.txt
2.上传文件a.txt
hadoop fs -put a.txt /
5.4.2 完全分布式部署
安装环境服务部署规划
服务器IP | 192.168.65.101 | 192.168.65.102 | 192.168.65.103 |
---|---|---|---|
NameNode | |||
HDFS | Secondary NameNode | ||
DataNode | DataNode | DataNode | |
YARN | ResourceManager | ||
NodeManager | NodeManager | NodeManager | |
MapReduce | JobHistoryServer |
先在第一台机器hadoop01进行部署
注意:如果已安装伪分布模式,先删除格式化后生成的数据文件,其他请略过。
rm -rf /opt/servers/hadoop-2.7.7/tmp
进入目录
cd /opt/servers
6.修改slaves
vim /opt/servers/hadoop-2.7.7/etc/hadoop/slaves
修改
hadoop01
hadoop02
hadoop03
7.配置hadoop的环境变量
vim /etc/profile
export HADOOP_HOME=/opt/servers/hadoop-2.7.7
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后生效
source /etc/profile
环境变量配置完成,测试环境变量是否生效
echo $HADOOP_HOME
8.分发文件到hadoop02、hadoop03服务器
cd /opt/servers/
scp -r hadoop-2.7.7/ hadoop02:$PWD
scp -r hadoop-2.7.7/ hadoop03:$PWD
9.hadoop02、hadoop03服务器配置hadoop的环境变量
vim /etc/profile
export HADOOP_HOME=/opt/servers/hadoop-2.7.7
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后生效
source /etc/profile
环境变量配置完成,测试环境变量是否生效
echo $HADOOP_HOME
6.访问浏览器
ps:以此01节点初始化,01、02、03启动,jps测试后执行一下
windows的浏览器中访问
hdfs集群访问地址
http://hadoop01:50070/
yarn集群访问地址
安装成功!