一个计算机技术爱好者与学习者

0%

Hadoop入门篇

1. 什么是大数据?

什么是大数据?正如字面意思,大量的数据。举个例子,Mysql的一张表里存了1万条数据,查询没问题;100万条数据,查询也没问题;那么,1亿条数据?100亿条数据?更大的数据?

大数据科学家JohnRauser提到一个简单的定义:大数据就是任何超过了一台计算机处理能力的庞大数据量。

为了处理大量的数据,我们必须找到更好的办法。谷歌经过研究,发表了一些关于大数据解决方案的论文,涉及MapReduce、BigTable、GFS等。但是,谷歌开发的大数据处理平台,并没有开源。一些勤奋的同学根据谷歌发表的论文,搞出了Hadoop平台,后来成为一个主流的大数据处理平台。

参考文档:

2. 大数据分析

1、可视化分析
大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。

2、数据挖掘算法
大数据分析的理论核心就是数据挖掘算法,各种数据挖掘的算法基于不同的数据类型和格式才能更加科学的呈现出数据本身具备的特点,也正是因为这些被全世界统计学家所公认的各种统计方法(可以称之为真理)才能深入数据内部,挖掘出公认的价值。另外一个方面也是因为有这些数据挖掘的算法才能更快速的处理大数据,如果一个算法得花上好几年才能得出结论,那大数据的价值也就无从说起了。

3、预测性分析能力
大数据分析最终要的应用领域之一就是预测性分析,从大数据中挖掘出特点,通过科学的建立模型,之后便可以通过模型带入新的数据,从而预测未来的数据。

4、数据质量和数据管理
大数据分析离不开数据质量和数据管理,高质量的数据和有效的数据管理,无论是在学术研究还是在商业应用领域,都能够保证分析结果的真实和有价值。

3. Hadoop简介

Apache Hadoop (/həˈduːp/) is a collection of open-source software utilities that facilitates using a network of many computers to solve problems involving massive amounts of data and computation.

Apache Hadoop是一个开源工具集合,能够通过网络利用多台计算机解决大量数据和大量计算的问题。

参考文档:

4. Hadoop架构

未完待续

5. Hadoop安装

参考文档《在Linux中安装Hadoop》

6. Hadoop常用命令

6.1. 查看集群状态

1
2
3
4
jps -l
jps -l | grep hadoop
hdfs dfsadmin -report
hdfs haadmin -getAllServiceState

6.2. 单独启动namenode

1
hdfs --daemon start namenode

6.3. 查看配置

1
2
3
4
5
cd /usr/local/hadoop/hadoop-2.10.2/etc/hadoop/
cat core-site.xml
cat hdfs-site.xml
cat log4j.properties
...

6.4. 查看日志

进入log4j.properties中配置的日志目录,查看日志。

1
tail -n 1000 xxx.log | grep xxx

6.5. 查看存储

1
2
hdfs dfs -df -h
hdfs dfs -ls /

6.6. 删除文件

1、删除文件

1
hdfs dfs -rm -r -f /path/to/directory

回收站保留时间配置项fs.trash.interval,默认配置1440分钟,在core-site.xml中配置。

2、还原回收站

1
hdfs dfs -mv /user/root/.Trash/Current/path/to/directory /path/to/

3、清理回收站

1
2
hdfs dfs -rm -r -f /user/root/.Trash/Current/path/to/directory
#hdfs dfs -expunge

4、删除文件,不经过回收站

1
hdfs dfs -rm -r -f /path/to/directory -skipTrash

注意:hdfs中删除文件后,系统磁盘删除文件非常慢。曾经删除过17T的数据,物理磁盘上删除了三天才完成。删除过程可以查看datanode的日志。

6.7. 清理损坏块

1
2
hdfs fsck /path/to/directory
hdfs fsck /path/to/directory -delete

6.8. 找到十天前的文件

1
2
3
4
5
6
7
8
now=$(date +%s)
hdfs dfs -ls /wdc/result/tmp5 | grep "^d" | while read f; do
dir_date=`echo $f | awk '{print $6}'`
difference=$(( ( $now - $(date -d "$dir_date" +%s) ) / (24 * 60 * 60 ) ))
if [ $difference -gt 10 ]; then
echo $f;
fi
done

参考文档How to find directories in HDFS which are older than N days?

  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-hadoop-start/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~