Hadoop伪集群HDFS配置与MapReduce

[TOC]

架构

1 NameNode

存储文件,名称,dataNode信息等等

2 DataNode

保存文件

3 Second NameNode

后台监控监控

4 文件命令

  1. 创建一个文件夹 hdfs dfs -mkdir /myTask
  2. 创建多个文件夹 hdfs dfs -mkdir -p /myTask1/input1
  3. 上传文件 hdfs dfs -put /opt/wordcount.txt /myTask/input
  4. 查看总目录下的文件和文件夹 hdfs dfs -ls /
  5. 查看myTask下的文件和文件夹 hdfs dfs -ls /myTask
  6. 查看myTask下的wordcount.txt的内容 hdfs dfs -cat /myTask/wordcount.txt
  7. 删除总目录下的myTask2文件夹以及里面的文件和文件夹 hdfs dfs -rmr /myTask2
  8. 删除myTask下的wordcount.txt hdfs dfs -rmr /myTask/wordcount.txt
  9. 下载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对应的用户


  hadoop.http.staticuser.user
  zhangwei

  • 第二种方法,关闭权限校验

    
    
      dfs.permissions.enabled
      false
    
    

[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/*

image.png

3 集群

TODO

4 运行在 YARN 上

配置yarn-site、mapred-site.xml即可,命令一样


image.png

你可能感兴趣的:(Hadoop伪集群HDFS配置与MapReduce)