配置历史服务器
(查看监听已经运行完成的MapReduce任务的执行情况)
mapred-site.xml
mapreduce.jobhistory.address master.bigdata.com:10020
mapreduce.jobhistory.webapp.address master.bigdata.com:19888
启动命令
sbin/mr-jobhistory-daemon.sh start historyserver
日志集聚功能
(当MapReduce程序在YARN上运行完成之后,将产生日志文件上传到HDFS目录中,以便后续查看。)
yarn-site.xml
yarn.log-aggregation-enable true
日志存储的时间1周 60*60*24*7
yarn.log-aggregation.retain-seconds 604800
重启YARN和jobHistoryServer
HDFS垃圾回收配置
core-site.xml
默认是分钟,60*7*24
fs.trash.interval 10080
Hadoop集群配置免密登陆
1.A,B,C三台服务器分别执行(hostname分别为ambari01、ambari02、ambari03)
ssh-keygen -t rsa
ssh-copy-id ambari01
//cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys(这个方法我在cntos上不行)
2.将B,C的公钥拷贝给A,此时A有所有服务器的公钥,任意可访问A
B上执行:ssh-copy-id -i ~/.ssh/id_rsa.pub master.bigdata.com(或A的ip)
C上执行:ssh-copy-id -i ~/.ssh/id_rsa.pub master.bigdata.com(或A的ip)
3.将A的authorized_keys复制给B,C,实现任意节点相互免密访问
scp ~/.ssh/authorized_keys 192.168.100.12:~/.ssh/(根据实际情况修改ip)
scp ~/.ssh/authorized_keys 192.168.100.13:~/.ssh/(根据实际情况修改ip)
4.各个节点相互访问下,第一次需要输入yes,为了记录host在know_host下
若无法免密,请检查文件权限(下方为我配置的可行权限):
.ssh =rwx
-rw——- 1 hadoop hadoop 1191 Aug 10 13:36 authorized_keys
-rw——- 1 hadoop hadoop 1675 Aug 10 13:25 id_rsa
-rw-r–r– 1 hadoop hadoop 397 Aug 10 13:25 id_rsa.pub
-rw-r–r– 1 hadoop hadoop 1212 Aug 10 13:38 known_hosts
参考
https://blog.csdn.net/ityang_/article/details/70144395
https://blog.csdn.net/u012453843/article/details/52443305
Hadoop 2.x各个服务组件如何配置在那台服务器运行并测试
Hdfs
NameNode
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master.bigdata.com:8020</value>
</property>
DataNode
slaves
master.bigdata.com
SecondaryNameNode
hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master.bigdata.com:50090</value>
</property>
- Yarn
ResourceManager
yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master.bigdata.com</value>
</property>
NodeManagement
slaves
master.bigdata.com
- MapReduce
MapReduceHistoryServer
mapred-site.xml
<property>
<name>mapreduce.jobhistory.address</name>
<value>master.bigdata.com:10020</value
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master.bigdata.com:19888</value>
</property>
linux下hadoop2.x开发环境准备
1- 安装配置Maven
maven 安装包:apache-maven-3.0.5
jar包:repository.tar.gz
- 上传安装包到/opt/softwares,解压到/opt/modules
- 增加path /etc/profile 中增加
export MAVEN_HOME=/opt/modules/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin
Maven仓库中增加jar包
mkdir -p ~/.m2/repository
上传jar包到/opt/softwares,解压到~/.m2/repository(tar -zxvf repository.tar.gz -C ~/.m2/)拷贝maven配置文件到.m2目录下
cp /opt/modules/apache-maven-3.0.5/conf/settings.xml ~/.m2/
2-安装eclipse
上传eclipse到/opt/tools,并解压在当前目录,因之前已经装过jdk并设置path,这里可直接使用。运行eclipse:/opt/tools/eclipse/eclipse
3-eclipse和Maven集成
eclipse里自带了一个版本的Maven,用自己下载的。
windows->preference->Maven->installations Add一下。
4.快捷键修改
windows->preferenc->keys
Content Assist Ctrl+Space 改成 Alt+/
Word Completion Alt +/ 改成 Ctrl+Space
5.新建maven project
新建source folder文件夹,folder name:src/main/resources
build path 设置上一部的文件夹的输出目录为target/classes
6.修改pom.xml
HDFS Java API使用
获取FileSystem对象
读取文件内容
YARN对nodemanage单个节点的内存和cpu设置
yarn-site.xml
内存大小,默认8G
yarn.nodemanager.resource.memory-mb 8192
cpu核数,默认8核
yarn.nodemanager.resource.cpu-vcores 8
Namenode启动过程
a: NameNode的数据存放在两个地方
**内存当中
**本地磁盘
*fsimage//格式化文件系统就是为了生成这个文件
*edits
b: 第一步格式化后HDFS,目的是生成fsimage
c: start NameNode执行这个命令后,会read fsimage文件;
d:start DataNode:向NameNode注册;block report(块汇报);
f:create dir /user/beifeng/tmp -> write [edits]
g: put files /user/beifeg/tmp(*-site.xml) -> write [edits]
h: delete file /user/beifeng/tmp/core-site.xml -> write [edits]
第二次启动HDFS
1->NameNode
* read [fsimage]
* read [edits]
————-
* gen write fsimage [new]
* gen edits [null]
2-> Start DataNode
* 注册
* block report
SecondaryNameNode辅助功能讲解
a:NameNode中的编辑日志文件太大的话如何处理。需要借助SecondaryNameNode.
b:定期的合并
8.HDFS启动时Safemode讲解
a:安全模式的作用是等待DataNodes向他发送block report
b:NameNode会汇总所有接收的report,当total blocks/datanodes blocks这个比例达到99.9999%时,此时安全模式才会退出。
c:在安全模式期间我们有些操作是不能进行的,比如不能改变文件系统的命令空间,也就是元数据信息不能改变(创建文件夹\上传文件\删除文件)。
如何手动进入Safemode操作
执行命令 bin/hdfs dfsadmin -safemode enter | leave | get | wait