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节点虚拟机

Hadoop基础操作(学习笔记二)_第1张图片

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

输入命令:

hdfs dfs -put /home/email_log.txt /user/test/example

此时在本机浏览器输入http://master:50070/nn_browsedfscontent.jsp,就可以发现,email_log.txt文件就已经上传到HDFS上了。

Hadoop基础操作(学习笔记二)_第2张图片

然后你会发现,此时的文件已经被分成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,它是一个标识文件,表示任务已经完成。另一个是任务执行完成后的产生结果的文件。 

Hadoop基础操作(学习笔记二)_第3张图片

 打开part-r-00000会发现第一列是用户名,第二列是用户的登录次数

Hadoop基础操作(学习笔记二)_第4张图片

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 ” 

Hadoop基础操作(学习笔记二)_第5张图片

 图中是对任务的监控界面,此时会发现刚才我们执行的两个任务都在。然后如果想中断其中一个任务,可以点击任务,进去点击,就会中断当前任务。

 

常用的一些命令

1、查询HDFS信息:

hdfs dfsadmin -report [-live] [-dead] [-decommissioning]

-report :输出文件系统的基本信息及相关数据统计

-report -live:输出文件系统中在线节点的基本信息及相关的数据统计

-report -dead:输出文件系统中失效节点的基本信息及相关数据统计

-report -decommissioning:输出文件系统中听停用节点的基本信息及相关数据统计

2、创建新目录:

hdfs dfs -mkdir [[-p] ]

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

3、文件上传:

hdfs dfs [-copyFromLocal [-f] [-p] [-l] ...]

 

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

4、文件下载:

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

5、删除文件或目录:

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

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

你可能感兴趣的:(学习笔记,hadoop,大数据)