本笔记按照以下四步进行:
http://master:50070/ | HDFS监控服务 |
http://master:8088/cluster/nodes | 集群的计算资源信息 |
http://master:50070/nn_browsedfscontent.jsp | 访问HDFS文件系统的根目录 |
http://master:8088/cluster/apps | 查询当前任务的信息 |
http://master:19888 | 日志监控界面 |
这一步分为两部分:
输入命令:
hdfs dfs -put /home/email_log.txt /user/test/example
此时在本机浏览器输入http://master:50070/nn_browsedfscontent.jsp,就可以发现,email_log.txt文件就已经上传到HDFS上了。
然后你会发现,此时的文件已经被分成2个文件块存储,这是因为在hadoop2.x版本,默认设置的HDFS文件块大小为128MB。并且这个文件还有3个副本,分别存储在不同的数据节点上。
在集群服务器的本地目录 “ $HADOOP_HOME/share/hadoop/mapreduce/ ”里会发现示例程序包 hadoop-mapreduce-examples-2.6.5.jar。这里封装了一些常用的测试模块。如下表:
模块名称 | 内容 |
multifilewc | 统计多个文件中单词的数量 |
pi | 应用quasi-Monte-Carlo算法来估算圆周率Π的值 |
randomtextwriter | 对每个数据节点随机生成一个10G的文本文件 |
wordcount | 对输入文件的单词进行词频数统计 |
wordmean | 计算输入文件单词的平均长度 |
wordmedian | 计算输入文件中单词长度的中位数 |
wordstandarddeviation | 激素按输入文件单词长度的标准差 |
然后我们可以使用wordcount模块来对文件email_log.txt中的数据进行登录次数的统计。
命令如下:
hadoop jar /usr/local/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /user/test/example/email_log.txt /user/root/output
结果会在/user/root/output目录下产生两个文件:一个是_SUCCESS,它是一个标识文件,表示任务已经完成。另一个是任务执行完成后的产生结果的文件。
打开part-r-00000会发现第一列是用户名,第二列是用户的登录次数
我们在运行另外一个任务计算pi值:
hadoop jar /usr/local/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar pi 10 100
pi后边有两个参数,分别代表Map数量和每个Map的测算次数,参数越大,计算的结果精确度越高。
此时打开 “ http://master:8088/cluster/apps ”
图中是对任务的监控界面,此时会发现刚才我们执行的两个任务都在。然后如果想中断其中一个任务,可以点击任务,进去点击,就会中断当前任务。
1、查询HDFS信息:
hdfs dfsadmin -report [-live] [-dead] [-decommissioning]
-report :输出文件系统的基本信息及相关数据统计
-report -live:输出文件系统中在线节点的基本信息及相关的数据统计
-report -dead:输出文件系统中失效节点的基本信息及相关数据统计
-report -decommissioning:输出文件系统中听停用节点的基本信息及相关数据统计
2、创建新目录:
hdfs dfs -mkdir [[-p] ]
其中
3、文件上传:
|
将文件从本地文件系统复制到HDFS文件系统,主要参数 |
|
将文件从本地文件系统复制到HDFS文件系统,主要参数 |
|
将文件从本地系统上传到HDFS文件系统,主要参数 |
4、文件下载:
|
将文件从HDFS文件系统复制到本地文件系统,主要参数 |
|
获取HDFS文件系统上指定路径的文件到本地文件系统,主要参数 |
5、删除文件或目录:
|
删除HDFS上的文件,主要参数-r用于递归删除, |
|
如果删除的是一个目录,则可以用该方法,主要参数 |
6、提交MapReduce任务给集群运行:
hadoop jar [mainClass] args
例子:
hadoop jar /usr/local/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /user/test/example/email_log.txt /user/root/output
hadoop:$HADOOP_HOME/bin下的shell脚本名
jar:hadoop脚本需要的command参数
hadoop-mapreduce-examples-2.x.jar:要执行的jar包在本地文件系统中的完整路径,参递给RunJar类
WordCount:main方法所在的类,参递给RunJar类
/user/test/example/email_log.txt:传递给WordCount类,作为DFS文件系统的路径,指示输入数据来源
/user/root/output:传递给WordCount类,作为DFS文件系统的路径,指示输出数据路径