介绍
广义:以apache Hadoop软件为主的生态圈:hive、flume、hbase、kafka、spark、flink
狭义:apache Hadoop软件
组成:
hdfs :存储 海量的数据
mapreduce :计算、分析
yarn:资源和作业的调度
相辅相成,必不可少的
大数据平台:存储是第一位 存储和计算时相辅相成的
官网:
Hadoop官网:http://hadoop.apache.org
其他apache官就是把project换成别的名字:project.apache.org
大数据平台主要是求稳,不是求新
部署: 大数据平台组件:主从架构(一个老大,多个小弟)
1.hdfs 存储海量的数据:
namenode 老大 负责指挥数据的存储
datanode 小弟 主要负责数据的存储
seconderynamenode 万年老二 主要辅助namenode工作
2.yarn 资源和作业的调度
resourcemanager 老大 负责指挥资源分配
nodemanager 小弟真正的资源
部署模式:跟部署的组件有关
1.单点模式→伪分布式模式 :所有进程在一台机器上运行
2.完全分布式模式:多个进程分布在不同的机器上运行
伪分布式模式:
1.Prerequisites:(前置要求)
Java™ must be installed.(java配置jdk)
Apache Hadoop 3.3 and upper supports Java 8 and Java 11 (runtime only)
(之前的旧版本,官网上可下:http://srchive.apache.org/dist/)
0.对linux要求:
1.0.1.创建一个用户hadoop,切换用户:root → hadoop
先查看有没有hadoop用户:id hadoop
没有就新创建hadoop用户:useradd hadoop
切换用户:su - hadoop(以后只能用这个用户做大数据操作)
1.0.2.hadoop用户家目录:(固定的,方便)
[hadoop@bigdata221 ~]$ mkdir app shell project software data log
app:之后部署的组件存放的目录
shell:shell脚本
project:自己开发的某个项目
software:安装的组件或框架的安装包
data:存放临时的数据或者某个组件的数据
log:应用数据监控日志的情况
1.1.部署jdk
上传安装包:
切换到software目录下:cd software/
把安装包拖进去就行
注意:hadoop对jdk的安装目录没有要求
解压安装包:
[hadoop@bigdata221 software]$ tar -zxvf ./jdk-8u45-linux-x64.gz -C ~/app/
切到app目录下,设置一个软连接
[hadoop@bigdata221 app]$ ln -s ./jdk1.8.0_45/ java
软连接:
相当于windows里的快捷方式,进到java目录和jdk目录效果是一样的
好处:切换版本以及配置相关参数比较方便且快
java目录下的东西的详解
bin目录:存放的是java相关的脚本
include目录和lib目录:相当于java运行过程中需要的jar包
jre目录:java运行时环境所需的文件
src.zip压缩包:java的源码包
1.2.配置环境变量
目的:让java 里面的脚本 在当前linux任何位置都可以使用
环境变量文件:家目录下的.bashrc
vim ~/.bashrc
export JAVA_HOME=/home/hadoop/app/java
export PATH=${JAVA_HOME}/bin:$PATH
让环境变量生效:source ~/.bashrc
查看java版本
[hadoop@bigdata221 ~]$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
2.部署hadoop :
1.解压
[hadoop@bigdata221 software]$ tar -zxvf ./hadoop-3.3.4.tar.gz -C ~/app/
2.软连接
[hadoop@bigdata221 app]$ ln -s ./hadoop-3.3.4/ hadoop
3.目录介绍
[hadoop@bigdata221 hadoop]$ ll
bin目录:hadoop相关脚本
etc目录:hadoop配置文件
include目录:额外的第三方jar包
lib目录:包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用
sbin目录:hadoop组件启动停止脚本
share目录:hadoop相关案例
4.配置环境变量:
1.vim ~/.bashrc
#HADOOP_HOME
export HADOOP_HOME=/home/hadoop/app/hadoop
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
2.source ~/.bashrc
5.配置参数
切到hadoop目录下的bin和sbin目录:删除所有的cmd文件:rm -rf ./*.cmd
[hadoop@bigdata221 hadoop]$ pwd
/home/hadoop/app/hadoop/etc/hadoop
[hadoop@bigdata221 hadoop]$ vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/app/java
6.查看hadoop版本:
[hadoop@bigdata221 ~]$ hadoop version
Hadoop 3.3.4
hadoop三种方式部署:
Local (Standalone) Mode 本地模式(不能用)
Pseudo-Distributed Mode 伪分布式
Fully-Distributed Mode 完全分布式
Pseudo-Distributed Mode 伪分布式部署:
0.hdfs部署
1.core-site.xml
fs.defaultFS 指定 namenode 所在机器
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata221:9000</value>
</property>
2.hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
3.ssh 远程登录并执行的命令
ssh [