首先是大数据开发基础篇 环境搭建、组件面试题等
其次是更新大数据开发面经的java面试基础
最后更新一个大数据开发离线数仓的实战项目,自己写入简历的项目。
关注不迷路,学习要进步!!!!!!
node01 | node02 | node03 | |
---|---|---|---|
角色 | 主节点 | 从节点 | 从节点 |
NameNode | √ | ||
DataNode | √ | √ | √ |
ResourceManager | √ | ||
NodeManager | √ | √ | √ |
SecondaryNameNode | √ | ||
Historyserver | √ |
tar -zxvf /bigdata/soft/hadoop-3.3.3.tar.gz -C /bigdata/server/
cd /bigdata/server
ln -s hadoop-3.3.3/ hadoop
目录 | 作用 | 说明 |
---|---|---|
bin/ | Hadoop最基本的管理脚本和使用脚本 | hdfs: 文件上传命令 hadoop文件管理基础命令 yarn: 资源调度相关 mapred: 程序运行, 启动历史服务器 |
etc/ | Hadoop配置文件的目录 | core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml |
include/ | 对外提供的编程库头文件 | 对外提供的编程库头文件(具体动态库和静态库在lib目录中), 这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序 |
lib/ | 动态库和静态库 | 该目录包含了Hadoop对外提供的编程动态库和静态库, 与include目录中的头文件结合使用。 |
libexec/ | shell配置文件 | 各个服务对用的shell配置文件所在的目录, 可用于配置日志输出、启动参数(比如JVM参数)等基本信息。 |
sbin/ | Hadoop管理命令 | 主要包含HDFS和YARN中各类服务的启动/关闭脚本 |
share/ | 官方自带示例 | Hadoop各个模块编译后的jar包所在的目录 |
Hadoop安装主要就是配置文件的修改,一般在主节点进行修改
,完毕后scp分发给其他各个从节点机器
。
文件中设置的是Hadoop运行时需要的环境变量。JAVA_HOME
是必须设置的,即使我们当前的系统中设置了JAVA_HOME,它也是不认识的,因为Hadoop即使是在本机上执行,它也是把当前的执行环境当成远程服务器
。
vim hadoop-env.sh
54行的JAVA_HOME的设置
export JAVA_HOME=/bigdata/server/jdk1.8
在文件末尾添加如下内容
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
hadoop的核心配置文件,有默认的配置项core-default.xml
。
core-default.xml与core-site.xml的功能是一样的,如果在core-site.xml里没有配置的属性,则会自动会获取core-default.xml里的相同属性的值。
cd /bigdata/server/hadoop/etc/hadoop/
vim core-site.xml在文件的configuration的标签中添加以下内容:
<property> <name>fs.defaultFSname> <value>hdfs://node01:8020value> property> <property> <name>hadoop.tmp.dirname> <value>/bigdata/data/hadoopvalue> property> <property> <name>hadoop.http.staticuser.username> <value>rootvalue> property> <property> <name>hadoop.proxyuser.root.hostsname> <value>*value> property> <property> <name>hadoop.proxyuser.root.groupsname> <value>*value> property>
HDFS的核心配置文件,有默认的配置项hdfs-default.xml
。
hdfs-default.xml与hdfs-site.xml的功能是一样的,如果在hdfs-site.xml里没有配置的属性,则会自动会获取hdfs-default.xml里的相同属性的值。
cd /bigdata/server/hadoop/etc/hadoop/
vim hdfs-site.xml
<property> <name>dfs.namenode.secondary.http-addressname> <value>node02:50090value> property>
MapReduce的核心配置文件,有默认的配置项mapred-default.xml
。
mapred-default.xml与mapred-site.xml的功能是一样的,如果在mapred-site.xml里没有配置的属性,则会自动会获取mapred-default.xml里的相同属性的值。
cd /bigdata/server/hadoop/etc/hadoop/
vim mapred-site.xml
<property> <name>mapreduce.framework.namename> <value>yarnvalue> property> <property> <name>yarn.app.mapreduce.am.envname> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value> property> <property> <name>mapreduce.map.envname> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value> property> <property> <name>mapreduce.reduce.envname> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value> property>
YARN的核心配置文件,有默认的配置项yarn-default.xml
。
yarn-default.xml与yarn-site.xml的功能是一样的,如果在yarn-site.xml里没有配置的属性,则会自动会获取yarn-default.xml里的相同属性的值。
cd /bigdata/server/hadoop/etc/hadoop/
vim yarn-default.xml
<property> <name>yarn.resourcemanager.hostnamename> <value>node01value> property> <property> <name>yarn.nodemanager.aux-servicesname> <value>mapreduce_shufflevalue> property> <property> <name>yarn.nodemanager.pmem-check-enabledname> <value>falsevalue> property> <property> <name>yarn.nodemanager.vmem-check-enabledname> <value>falsevalue> property> <property> <name>yarn.log-aggregation-enablename> <value>truevalue> property> <property> <name>yarn.log.server.urlname> <value>http://node02:19888/jobhistory/logsvalue> property> <property> <name>yarn.log-aggregation.retain-secondsname> <value>604800value> property>
workers文件里面记录的是集群主机名。主要作用是配合一键启动脚本如start-dfs.sh、stop-yarn.sh用来进行集群启动。这时候workers文件里面的主机标记的就是从节点角色所在的机器。
cd /bigdata/server/hadoop/etc/hadoop/
vim workers
node01 node02 node03
scp -r hadoop-3.3.3/ node02:$PWD
scp -r hadoop-3.3.3/ node03:$PWD
在node02节点配置软链接
ln -s hadoop-3.3.3/ hadoop
在node03节点配置软链接
ln -s hadoop-3.3.3/ hadoop
[所有节点]
配置环境变量vim /etc/profile
export HADOOP_HOME=/bigdata/server/hadoop
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
要启动Hadoop集群,需要启动HDFS
和YARN
两个集群。
注意:首次启动HDFS时,必须在主节点node01
对其进行格式化操作。本质上是一些清理和准备工作,因为此时的HDFS在物理上还是不存在的。
hadoop namenode -format
在主节点node01
启动namenode
cd /bigdata/server/hadoop/bin
./hdfs --daemon start namenode
在node02
启动secondarynamenode
cd /bigdata/server/hadoop/bin
./hdfs --daemon start secondarynamenode
在所有节点
启动datanode
cd /bigdata/server/hadoop/bin
./hdfs --daemon start datanode
查看进程情况
jpg
netstat -ntlp
其中hdfs的web端口: node01:9870已经可以正常访问
在主节点node01
启动ResouceManager
cd /bigdata/server/hadoop/bin
./yarn --daemon start resourcemanager
在所有节点
启动Nodemanager
cd /bigdata/server/hadoop/bin
./yarn --daemon start nodemanager
如果想要停止某个节点上某个角色,只需要把命令中的
start
改为stop
即可。
如果配置了etc/hadoop/workers
和ssh免密登录
,则可以使用程序脚本启动所有Hadoop两个集群的相关进程,在主节点所设定的机器上执行。
hdfs:/bigdata/server/hadoop/sbin/start-dfs.sh
yarn:/bigdata/server/hadoop/sbin/start-yarn.sh
停止脚本
hdfs:/bigdata/server/hadoop/sbin/stop-dfs.sh
yarn:/bigdata/server/hadoop/sbin/stop-yarn.sh
完整的一键启动hdfs和yarn脚本
start-all.sh: 启动所有的hdfs和yarn的脚本
stop-all.sh: 停止所有的hdfs和yarn的脚本
hdfs: http://node01:9870
yarn:http://node01:8088
JobHistory用来记录已经finished的mapreduce运行日志,日志信息存放于HDFS目录中,默认情况下没有开启此功能,需要在mapred-site.xml
中配置并手动启动。
cd /bigdata/server/hadoop/etc/hadoop/
vim mapred-site.xml
<property> <name>mapreduce.jobhistory.addressname> <value>node02:10020value> property> <property> <name>mapreduce.jobhistory.webapp.addressname> <value>node02:19888value> property>
scp mapred-site.xml node02: P W D s c p m a p r e d − s i t e . x m l n o d e 03 : PWD scp mapred-site.xml node03: PWDscpmapred−site.xmlnode03:PWD
cd /bigdata/server/hadoop/bin
./mapred --daemon start historyserver
http://node02:19888/jobhistory
在hdfs创建一个目录:
hdfs dfs -mkdir /input
上传文件到hdfs的/input目录
hdfs dfs -put start-all.sh /input
运行示例程序
hadoop jar /bigdata/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.3.jar wordcount /input /output
http://node02:19888/jobhistory`
在hdfs创建一个目录:
hdfs dfs -mkdir /input
上传文件到hdfs的/input目录
hdfs dfs -put start-all.sh /input
运行示例程序
hadoop jar /bigdata/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.3.jar wordcount /input /output