[TOC]
架构
1 NameNode
存储文件,名称,dataNode信息等等
2 DataNode
保存文件
3 Second NameNode
后台监控监控
4 文件命令
- 创建一个文件夹 hdfs dfs -mkdir /myTask
- 创建多个文件夹 hdfs dfs -mkdir -p /myTask1/input1
- 上传文件 hdfs dfs -put /opt/wordcount.txt /myTask/input
- 查看总目录下的文件和文件夹 hdfs dfs -ls /
- 查看myTask下的文件和文件夹 hdfs dfs -ls /myTask
- 查看myTask下的wordcount.txt的内容 hdfs dfs -cat /myTask/wordcount.txt
- 删除总目录下的myTask2文件夹以及里面的文件和文件夹 hdfs dfs -rmr /myTask2
- 删除myTask下的wordcount.txt hdfs dfs -rmr /myTask/wordcount.txt
- 下载hdfs中myTask/input/wordcount.txt到本地opt文件夹中 hdfs dfs -get /myTask/input/wordcount.txt /opt
5 WEB UI权限问题
Permission denied: user=dr.who, access=READ_EXECUTE, inode="/tmp":hadoop:supergroup:drwx------
- 第一种方法,修改site用户为 hadoop对应的用户
<!-- 修改core-site.xml></-->
<property>
<name>hadoop.http.staticuser.user</name>
<value>zhangwei</value>
</property>
-
第二种方法,关闭权限校验
<!-- 修改hdfs-site.xml --> <property> <name>dfs.permissions.enabled</name> <value>false</value> </property>
[TOC]
例子
1 单机例子
https://hadoop.apache.org/docs/r3.3.0/hadoop-project-dist/hadoop-common/SingleCluster.html
mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar grep input output 'dfs[a-z.]+'
cat output/*
2.伪集群例子
配置了HDFS,需要把文件存储在HDFS上,所以WEB-UI没有权限
# 创建MapReduce任务需要的默认目录,默认为/user/hadoop用户名
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/hadoop
# 复制文件到HDFS文件系统[在hadoop目录下,具体看自己实际位置]
hdfs dfs -mkdir input
hdfs dfs -put etc/hadoop/*xml input
# 执行mapReduce
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar grep input output 'dfs[a-z.]+'
# 查看结果,下载到本地看或者HDFS上看
# 本地
hdfs dfs -get output output
cat output/*
# HDFS
hdfs dfs -cat output/*

3 集群
TODO
4 运行在 YARN 上
配置yarn-site、mapred-site.xml即可,命令一样

网友评论