Hadoop
核心组件
HDFS(分布式文件系统):解决海量数据存储
YARN(作业调度和集群管理的框架):解决资源任务调度
MAPREDUCE(分布式运算编程框架):解决海量数据计算
Hadoop 特性优点
扩容能力
成本低
高效率
可靠性
Hadoop 集群启动、初体验
1. 启动方式
要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个集群。
注意:首次启动 HDFS 时,必须对其进行格式化操作。本质上是一些清理和
准备工作,因为此时的 HDFS 在物理上还是不存在的。
hadoop namenode –format
1.1. 单节点逐个启动
在主节点上使用以下命令启动 HDFS NameNode:
hadoop-daemon.sh start namenode
在每个从节点上使用以下命令启动 HDFS DataNode:
hadoop-daemon.sh start datanode
在主节点上使用以下命令启动 YARN ResourceManager:
yarn-daemon.sh start resourcemanager
在每个从节点上使用以下命令启动 YARN nodemanager:
yarn-daemon.sh start nodemanager
以上脚本位于$HADOOP_PREFIX/sbin/目录下。如果想要停止某个节点上某个
角色,只需要把命令中的 start 改为 stop 即可。
1.2. 脚本一键启动
如果配置了 etc/hadoop/slaves 和 ssh 免密登录,则可以使用程序脚本启动
所有 Hadoop 两个集群的相关进程,在主节点所设定的机器上执行。
hdfs:$HADOOP_PREFIX/sbin/start-dfs.sh
yarn: $HADOOP_PREFIX/sbin/start-yarn.sh
停止集群:stop-dfs.sh、stop-yarn.sh
2. 集群 web-ui
一旦 Hadoop 集群启动并运行,可以通过 web-ui 进行集群查看,如下所述:
NameNode http://nn_host:port/ 默认 50070.
ResourceManager http://rm_host:port/ 默认 8088.
3. Hadoop 初体验
3.1. HDFS 使用
从 Linux 本地上传一个文本文件到 hdfs 的/test/input 目录下
hadoop fs -mkdir -p /wordcount/input
hadoop fs -put /root/somewords.txt /test/input
3.2. 运行 mapreduce 程序
在 Hadoop 安装包的 share/hadoop/mapreduce 下有官方自带的 mapreduce 程
序。我们可以使用如下的命令进行运行测试。
示例程序 jar:
hadoop-mapreduce-examples-2.7.4.jar
计算圆周率:
hadoop jar hadoop-mapreduce-examples-2.7.4.jar pi 20 50
关于圆周率的估算,感兴趣的可以查询资料 Monte Carlo 方法来计算 Pi 值。
MapReduce jobHistory
JobHistory 用来记录已经 finished 的 mapreduce 运行日志,日志信息存
放于 HDFS 目录中,默认情况下没有开启此功能,需要在 mapred-site.xml 中配
置并手动启动。
1. 修改 mapred-site.xml
cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim mapred-site.xml
MR JobHistory Server 管理的日志的存放位置
<property>
<name>mapreduce.jobhistory.address</name>
<value>node-1:10020</value>
</property>
查看历史服务器已经运行完的 Mapreduce 作业记录的 web 地址,需要启动该
服务才行
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node-1:19888</value>
</property>
2. 分发配置到其他机器
cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
scp -r mapred-site.xml node-2:$PWD
scp –r mapred-site.xml node-3:$PWD
3. 启动 jobHistoryServer 服务进程
mr-jobhistory-daemon.sh start historyserver
如果关闭的话 用下述命令
mr-jobhistory-daemon.sh start historyserver
4. 页面访问 jobhistoryserver
http://node-1:19888/jobhistory
HDFS 的垃圾桶机制
1. 垃圾桶机制解析
每一个文件系统都会有垃圾桶机制,便于将删除的数据回收到垃圾桶里面去,
避免某些误操作删除一些重要文件。回收到垃圾桶里里面的资料数据,都可以进
行恢复。
2. 垃圾桶机制配置
修改 core-site.xml :
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
然后重启 hdfs 集群
3. 垃圾桶机制验证
如果启用垃圾箱配置,dfs 命令删除的文件不会立即从 HDFS 中删除。相反,
HDFS 将其移动到垃圾目录(每个用户在/user/<username>/.Trash 下都有自己的
垃圾目录)。只要文件保留在垃圾箱中,文件可以快速恢复。
使用 skipTrash 选项删除文件,该选项不会将文件发送到垃圾箱。它将从
HDFS 中完全删除。