在hadoop集群上编写mapreduce程序_Hadoop集群安装系列------伪分布式安装(根据官方文档编写)...

在hadoop集群上编写mapreduce程序_Hadoop集群安装系列------伪分布式安装(根据官方文档编写)..._第1张图片

1. 预备

简单理解hdfs的原理

hdfs的作用

2. 开始搭建

2.1 设置配置信息

修改hadoop-env.sh文件

将hadoop-env.sh文件中的 # The java implementation to use. 下 修改成:

export JAVA_HOME=${JAVA_HOME}

export JAVA_HOME=/root/bigdata/jdk

修改core-site.xml文件

#etc/hadoop/core-site.xml

  
  
      fs.defaultFS
      hdfs://localhost:9000
  
  
      hadoop.tmp.dir
      /root/bigdata/tmp
  
  

修改hdfs-site.xml文件

#etc/hadoop/hdfs-site.xml

  
  
  
          dfs.replication
          1
  
  
  
          dfs.blocksize
          128m
  
  
  
          dfs.http.address
          master:50070
  
  
  
          dfs.secondary.http.address
          master:50090
  
  
  
          dfs.namenode.name.dir
          file:///root/hadoopdata/dfs/name
  
  
  
          dfs.datanode.data.dir
          file:///root/hadoopdata/dfs/data
  
  
  
          fs.checkpoint.dir
          file:///root/hadoopdata/checkpoint/dfs/cname
  
  
  
          fs.checkpoint.edits.dir
          file:///root/hadoopdata/checkpoint/dfs/cname
  
  
  
          dfs.permissions
          true
  
  

2.2 格式化文件系统(安装Hadoop后只需执行一次格式化)

注意:配置的name.dir data.dir的路径不需要手动创建,而是由namenode的初始化程序去自动生成。

*初始化namenode: hdfs namenode -format

bin/hdfs namenode -format

2.3 开启NameNode进程和DataNode进程

sbin/start-dfs.sh

注意:如果机器换了IP,需要重启hdfs系统.否则无法访问namenode和datanode

2.4 检查Hadoop进程

#jps

在hadoop集群上编写mapreduce程序_Hadoop集群安装系列------伪分布式安装(根据官方文档编写)..._第2张图片

通过浏览页面查看NameNode和Datanode

http://10.211.55.7:50070/

在hadoop集群上编写mapreduce程序_Hadoop集群安装系列------伪分布式安装(根据官方文档编写)..._第3张图片

简单解释: Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。

Compiled:编译 hadoop是有jenkins集成的

Cluster ID:集群id

Block Pool ID:单个datanode节点的block池的id,每个datanode节点的都要一样

2.5 创建运行MapReduce job所需的HDFS目录

#bin/hdfs dfs -mkdir /user

2.6 拷贝输入文件到分布式文件系统(上传)

注意:将数据导入hdfs方法 hdfs dfs -put 本地路径 hdfs路径(写绝对路径)

# bin/hdfs dfs -put etc/hadoop input

  注意:1.hdfs dfs -put /usr/local/hadoop-2.7.1/etc/hadoop/*.xml  /wordcount/input/
  将数据导入到伪分布式的hdfs中报错:put: Specified block size is less than configured minimum value (dfs.namenode.fs-limits.min-block-size): 1280 < 1048576
  ​
  原因:首先hdfs中默认是以块为单位进行数据存储的.我们在设置块的大小是hadoop2.0之前默认是64M,之后是128M.
  (注意如果不加单位的话,默认单位是字节).当前我们设置的分块大小的最小值为1280字节时(如:
  dfs.blocksize1280
  ),小于规定的最小值,所以提示错误.默认单位是字节

//运行一些提供的示例:

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep /input /output 'dfs[a-z.]+'

2.7 检查输出文件(下载)

从分布式文件系统拷贝输出文件到本地文件系统并检查它们

# in/hdfs dfs -get /hadoopdata/output /root/output

# cat output/*

2.8 在分布式系统上查看输出文件的内容

# bin/hdfs dfs -cat output/*

2.9 当你完成操作后,使用下列命令关闭进程

#sbin/stop-dfs.sh

你可能感兴趣的:(在hadoop集群上编写mapreduce程序_Hadoop集群安装系列------伪分布式安装(根据官方文档编写)...)