提前下载好hadoop的tar包
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包所在的目录 |
[所有节点]
配置环境变量vim /etc/profile.d/my_env.sh
export HADOOP_HOME=/bigdata/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
文件中设置的是Hadoop运行时需要的环境变量。JAVA_HOME
是必须设置的,即使我们当前的系统中设置了JAVA_HOME,它也是不认识的,因为Hadoop即使是在本机上执行,它也是把当前的执行环境当成远程服务器
。
vim hadoop-env.sh
54行的JAVA_HOME的设置
export JAVA_HOME=/bigdata/server/jdk
在文件末尾添加如下内容
export JAVA_HOME=/export/server/jdk export HADOOP_HOME=/export/server/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HADOOP_LOG_DIR=$HADOOP_HOME/logs 上面的参数选择性填写,还未验证,但是不会报错 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 export YARN_PROXYSERVER_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://hadoop01:8020value> property> <property> <name>hadoop.tmp.dirname> <value>/bigdata/data/hadoopvalue> property> <property> <name>hadoop.http.staticuser.username> <value>rootvalue> property> <property> <name>io.file.buffer.sizename> <value>131072value> 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>hadoop02:50090value> property> <property> <name>dfs.datanode.data.dir.perm>name> <value>700>value> property> <property> <name>dfs.namenode.name.dir>name> <value>/data/nn>value> property> <property> <name>dfs.namenode.hosts>name> <value>node1,node2,node3>value> property> <property> <name>dfs.blocksize>name> <value>268435456>value> property> <property> <name>dfs.namenode.handler.count>name> <value>100>value> property> <property> <name>dfs.datanode.data.dir>name> <value>/data/dn>value> property> <property> <name>dfs.namenode.datanode.registration.ip-hostname-check>name> <value>false>value> property> <property> <name>dfs.replication>name> <value>3>value> 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> <property> <name>mapreduce.jobhistory.addressname> <value>node1:10020value> property> <property> <name>mapreduce.jobhistory.webapp.addressname> <value>node1:19888value> 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-site.xml
<property> <name>yarn.resourcemanager.hostnamename> <value>hadoop01value> 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://hadoop01: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
master hadoop01 hadoop02 hadoop03
xrsync /bigdata
查看进程情况
jps
要启动Hadoop集群,需要启动HDFS
和YARN
两个集群。
注意:首次启动HDFS时,必须在主节点hadoop01
对其进行格式化操作。本质上是一些清理和准备工作,因为此时的HDFS在物理上还是不存在的。
hadoop namenode -format
如果配置了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的脚本
启动历史服务器
mapred --daemon start historyserver
hdfs的web端口
http://master:9870
访问web管理界面
http://node1:19888/jobhistory