Hadoop基础操作(学习笔记二)

本笔记按照以下四步进行:

1、查看hadoop集群的基本信息

http://master:50070/HDFS监控服务
http://master:8088/cluster/nodes集群的计算资源信息
http://master:50070/nn_browsedfscontent.jsp访问HDFS文件系统的根目录
http://master:8088/cluster/apps查询当前任务的信息
http://master:19888日志监控界面

2、把数据文件email_log.txt 上传到HDFS(提取码:qdb2)

这一步分为部分:

  1. 将本机文件上传到master节点虚拟机

  1. 在master终端输入命令上传到HDFS

输入命令:

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个副本,分别存储在不同的数据节点上。

 

3、运行MapReduce任务,统计用户登录的次数

在集群服务器的本地目录 “ $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会发现第一列是用户名,第二列是用户的登录次数

4、多个MapReduce任务的查询与管理

我们在运行另外一个任务计算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] <path>]

其中<path>是指定创建目录的路径,-p可以创建多级目录。

3、文件上传:

hdfs dfs [-copyFromLocal [-f] [-p] [-l] <localsrc>...<dst>]

 

将文件从本地文件系统复制到HDFS文件系统,主要参数<localsrc>为本地文件路径,<dst>为复制的目标路径
hdfs dfs [-moveFromLocal <localsrc>...<dst>]
将文件从本地文件系统复制到HDFS文件系统,主要参数<localsrc>为本地文件路径,<dst>为复制的目标路径将文件
hdfs dfs [-put [-f] [-p] [-l] <localsrc>...<dst>]
将文件从本地系统上传到HDFS文件系统,主要参数<localsrc>为本地文件路径,<dst>为上传的目标路径 

4、文件下载:

hdfs dfs [-copyToLocal [-p] [-ignoreCrc] [-crc] <src>...<localdst>]
将文件从HDFS文件系统复制到本地文件系统,主要参数<src>为HDFS文件系统路径,<localdst>为本地文件系统路径
hdfs dfs [-get [-p] [-ignoreCrc] [-crc] <src>...<localdst>]
获取HDFS文件系统上指定路径的文件到本地文件系统,主要参数<src>为HDFS文件系统路径,<localdst>为本地文件系统路径

5、删除文件或目录:

hdfs dfs [-rm [-f] [-r|R] [-skipTrash] <src>...]
删除HDFS上的文件,主要参数-r用于递归删除,<src>指定删除文件的路径
hdfs dfs [-rmdir [--ignore-fail-on-non-empty] <dir>...]
如果删除的是一个目录,则可以用该方法,主要参数<dir>指定目录路径

6、提交MapReduce任务给集群运行:

hadoop jar <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文件系统的路径,指示输出数据路径

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值