hadoop02
HDFS 文件系统的权限控制
HDFS文件提醒,存在权限控制,不同的用户没有分配权限的情况下,对文件系统的创建,删除,执行在开发的时候很麻烦,所以在开发阶段关闭权限
关闭HDFS 权限检查,在hdfs-site.xml文件中增加如下配置信息
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
服务日志文件
1.日志文件的存储位置
$Hadoop_HOME/logs
2.日志文件的格式
(1)log结尾
(2)out结尾
log结尾的日志
- 以log结尾的日志,是通过log4j记录,记录的信息相对完整
out结尾的日志
- 以out结尾的日志,标准错误输出的日志,记录的内容相对较少没有参考意义
- 在运行hadoop的时候如果出现问题,一定要记得查看日志,一般来说主要查看已log结尾的日志
日志的命名规范
- 框架名称-用户名-进程名称-主机名称-文件后缀
Hadoop服务启动
1.单进程的方式启动
2.启动所有进程(前提是设置好免密码登录)
可以通过sbin/start-dfs.sh 启动HDFS 和 stop-dfs.sh 停止HDFS
历史服务器的配置
- 需要为本地计算机设置linux 对应的域名解析
C:\Windows\System32\drivers\etc\hosts
- 在maped-site配置文件中,配置历史服务器的web访问主机
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
- 启动历史服务器
sbin/mr-jobhistory-daemon.sh start historyserver
Hadoop2.x 配置文件
- 默认的配置文件,文件名
core-defualt.xml
hdfs-defualt.xml
yarn-default.xml
mapred-defualt.xml
位置: $HAOOP_HOME/share/hadoop 对应的文件夹下存在jar包中 ,在Hadoop 源码环境中存在了默认的配置文件
自定义的配置文件 ,在用户进行配置的时候,如果用户没有给定自定义的配置文件,hadoop加载的是默认的配置文件。 用户给定了自定义的配置文件,则优先加载自定义的配置文件
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml
设置服务主机
NameNode配置信息
- HDFS 默认复制因子数 为3个 可以修改以下配置
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
- 该属性定义了 HDFS WEB访问服务器的主机名和端口号
<property>
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:50070</value>
</property>
- 定义secondarynamenode 外部地址 访问的主机和端口
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>0.0.0.0:50090</value>
</property>
resourceManager 配置定义
配置resourcemanager 的主机位置
<property>
<name>yarn.resourcemanager.hostname</name>
<value>0.0.0.0</value>
</property>
- Nodemanager datanode 都是在salves 进行配置
HDFS 存储说明
配置存储数据的本地目录
/opt/app/hadoop-2.7.2/data/tmp/dfs/data/current/BP-252844797-10.0.152.61-1540189929854/current/finalized/subdir0/subdir0
以上为datanode存储文件块的磁盘目录,每一个数据块大小128MB
- 配置 namenode fs edites 存储目录 hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
- 配置namednoe edits 存储模式
<property>
<name>dfs.namenode.edits.dir</name>
<value>${dfs.namenode.name.dir}</value>
</property>
- 配置datanode 数据存储目录
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
- 修改secondaryNameNode fsimage 的存储路径
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/namesecondary</value>
</property>
- 修改secondaryNameNode edits 的存储路径
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>${dfs.namenode.checkpoint.dir}</value>
</property>
启用日志聚集功能
1.在yarn-site.xml文件启用日志聚集的功能
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
2.设置HDFS上日志的保存时间
<property>
<name>yarn.nodemanager.log.retain-seconds</name>
<value>10800</value>
</property>
- 在实际开发中,HDFS日志的保存时间一般都是设置为7天
Uber模式
- Uber模式是Hadoop2中针对小文件作业的一种优化,如果作业量足够小,可以把一个task,在一个JVM中运行完成
在mapred-site.xml 文件中设置
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>false</value>
</property>
在搭建集群中,常见的错误
- 格式化
首先要记住,不要频繁的格式化namenode, 如果非要格式化namenode,先删除tmp目录中的内容 ,清空之前,最好把所有的进程jps 中的残存的服务关掉,如果不关闭的话会存在遗留的进程,就有可能占用之前的端口号 - 端口可能被占用
- 避免多用户的使用,多用户的时候会造成pid的冲突
- 最好fsimage edites 存储的目录也清空一下
搭建完全分布式环境
规划
- 前期的准备 必须存在三台虚拟机 每个虚拟机的内存个人建议2g
- 每个虚拟机配置必须完全一致
- 防火墙必须关闭,最好永久性的关闭,设置独立用户 hadoop , 为每台服务器设置主机名
- 设置ip与主机名称的映射 hosts
- 三台主机设置ssh免密登录
- 对服务器中的服务进行规划
Hadoop01 | hadoop02 | hadoop03 |
---|---|---|
Namenode | datanode | datanode |
Datanode | resourcemanager | nodemanager |
Nodemanager | nodemanager | secondaryNamenode |
Historyserver |
搭建过程
- 配置hadoop-env.sh , yarn-env.sh, mapred-env.sh 配置这个三个文件的JAVA_HOME
- 配置core-site.xml 文件
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/app/hadoop-2.7.2/data/tmp</value>
</property>
- 配置hdfs-site.xml
(1)关闭HDFS权限检查
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
(2)配置scondaryNamenode访问服务位置
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:50090</value>
</property>
4.配置yarn-site.xml
(1)配置nodemanager
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(2)开启日志聚集
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.log.retain-seconds</name>
<value>10800</value>
</property>
(3)配置resourcemanager的主机位置
<property>
<description>The hostname of the RM.</description>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>
5 配置mapred-site.xml
(1)指定运行框架为yarn
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(2)指定历史服务器
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
6.配置完成之后,在slaves 配置从节点的主机名称
hadoop01
hadoop02
hadoop03
注意点
1.以上的配置完成之后,需要把hadoop的配置文件分发到各个节点之上可以使用 Scp 命令完成
2.分发之前,别的节点上必须存在相同的目录
3.每一个节点上必须已经安装好JDK环境,并且配置好环境变量
4.安装完成之后,就可以通过 格式化命令 格式化namenode
Bin/hadoop namenode -format
5.启动服务
sbin/mr-jobhistory-daemon.sh start historyserver 启动历史聚集
Sbin/start-dfs.sh 启动HDFS
Sbin/start-yarn.sh 启动YRAN