Windows环境安装Hadoop与一些简单的操作测试

时间:2024-03-20 08:57:26

转载:https://mathpretty.com/9655.html

 

Hadoop简介

我就挑一些重点来讲:

Hadoop的框架最核心的设计就是:HDFSMapReduce。 HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

Hadoop 项目主要包含了以下四个模块:

  • Hadoop 通用模块(Hadoop Common): 为其他 Hadoop 模块提供支持的公共实用程序。
  • Hadoop 分布式文件系统(HDFS, Hadoop Distributed File System):提供对应用程序数据的高吞吐量访问的分布式文件系统(承载框架的数据存储需求)。
  • Hadoop YARN: 任务调度和集群资源管理框架。
  • Hadoop MapReduce: 基于 YARN 的大规模数据集并行计算框架(满足框架计算需求)。

如同 Facebook 在 Hadoop 的基础上衍生了 Hive 数据仓库一样,社区中还有大量与之相关的开源项目,下面列出了一些近期比较活跃的项目:

  • HBase:一个可伸缩的、支持大表的结构化数据存储的分布式数据库。
  • Hive:提供数据汇总和临时查询的数据仓库基础框架。
  • Pig:用于并行计算的高级数据流语言和执行框架。
  • ZooKeeper:适用于分布式应用的高性能协调服务。
  • Spark:一个快速通用的 Hadoop 数据计算引擎,具有简单和富有表达力的编程模型,支持数据 ETL(提取、转换和加载)、机器学习、流处理和图形计算等方面的应用。

Hadoop的部署

关于在win上部署Hadoop,可以参考下面这一篇文章:

我下面简单叙述一下:

安装依赖环境

首先我们需要安装Java环境,并配好Java的环境变量:

注意这里环境变量路径的设置,由于不能出现空格,故写成下面的样子:

环境变量可以用特殊的字符PROGRA~1代替从而达到替换空格方便使用的目的

Windows环境安装Hadoop与一些简单的操作测试

Hadoop文件下载与解压

我们在官网下载Hadoop并进行解压;

同时我们需要下载一个winutils,之后会有用到,下载地址:winutils下载

下载完是下面这个样子的,我们在下载Hadoop的时候也注意下,下载的版本最好在winutils中也有;

Windows环境安装Hadoop与一些简单的操作测试

修改配置文件

接下来要修改 ./etc/hadoop下的一些配置文件

首先是core-site.xml

  1. <configuration>
  2.     <property>
  3.        <name>fs.default.name</name>
  4.        <value>hdfs://localhost:9000</value>
  5.    </property>
  6. </configuration>

接着是修改hdfs-site.xml

  1. <configuration>
  2.     <!-- 这个参数设置为1,因为是单机版hadoop -->
  3.     <property>
  4.         <name>dfs.replication</name>
  5.         <value>1</value>
  6.     </property>
  7.     <property>
  8.      <name>dfs.permissions</name>
  9.      <value>false</value>
  10.   </property>
  11.   <property>
  12.     <name>dfs.webhdfs.enabled</name>
  13.     <value>true</value>
  14.   </property>
  15.    <property>
  16.        <name>dfs.namenode.name.dir</name>
  17.        <value>/D:/hadoop/data/namenode</value>
  18.    </property>
  19.    <property>
  20.         <name>fs.checkpoint.dir</name>
  21.         <value>/D:/hadoop/data/snn</value>
  22.     </property>
  23.     <property>
  24.         <name>fs.checkpoint.edits.dir</name>
  25.         <value>/D:/hadoop/data/snn</value>
  26.     </property>
  27.        <property>
  28.        <name>dfs.datanode.data.dir</name>
  29.        <value>/D:/hadoop/data/datanode</value>
  30.    </property>
  31. </configuration>

接着修改yarn-site.xml

  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3.     <property>
  4.         <name>yarn.nodemanager.aux-services</name>
  5.         <value>mapreduce_shuffle</value>
  6.    </property>
  7.    <property>
  8.         <name>yarn.log-aggregation-enable</name>
  9.         <value>true</value>
  10.     </property>
  11.     <!--日志保留时间,单位秒-->
  12.     <property>
  13.         <name>yarn.log-aggregation.retain-seconds</name>
  14.         <value>86400</value>
  15.     </property>
  16. </configuration>

接着修改mapred-site.xml

在这里初始情况下文件名为mapred-site.xml.template,这时是不会启动 YARN的;

这是因为YARN 主要是为集群提供更好的资源管理与任务调度,然而这在单机上体现不出价值,反而会使程序跑得稍慢些。

  1. <configuration>
  2.   <property>
  3.         <name>mapreduce.framework.name</name>
  4.         <value>yarn</value>
  5.   </property>
  6. </configuration>

最后修改hadoop-env.sh

加上下面这个:

  1. export JAVA_HOME=${JAVA_HOME}

 Hadoop的启动

初始化HDFS

首先我们要对HDFS进行初始化,输出一下的命令:

hdfs namenode -format

启动Hadoop

我们需要进入hadoop/sbin目录,在终端执行下面两个文件:

  • start-dfs.cmd
  • start-yarn.cmd

此时Hadoop就算是启动完成了;

我们可以在浏览器中输入以下网址进行查看:http://localhost:50070

Note(注意!!):2.x的版本中文件管理的端口是50070,在3.0.0中替换为了9870端口;

Hadoop测试

在启动之后,我们就可以进行一些HDFS的基本操作了,我就演示一个(就是只截图一个,其余的把命令列在下面,方便查找和参考)

导入文件

hadoop fs -put D:/a.txt /hadoop_learn
  • 也可以两个文件一起上传
hadoop fs -put D:/a.txt D:/b.txt /hadoop_learn/

删除文件(夹)

hadoop fs -rm -r /hadoop_learn

文件与文件夹操作

文件操作

  • 使用 -ls 列出指定目录中的文件
hadoop fs -ls /hadoop_learn

Windows环境安装Hadoop与一些简单的操作测试

  • 使用 -cat 查看某个文件的内容
hadoop fs -cat /hadoop_learn/a.txt

同时使用 file://开头可以访问本地的文件(不要忘记再加一个/),否则任何写到此的路径都会被识别为HDFS上的路径;

hadoop fs -cat file:///D:/b.txt
  • 可以同时查看多个文件
hadoop fs -cat /hadoop_learn/a.txt file:///D:/b.txt
  • 使用 -cp 进行文件的复制
hadoop fs -cp /hadoop_learn/a.txt /aa.txt
  • 使用 -mv 进行文件的移动
hadoop fs -mv /aa.txt /hadoop_learn/
  • 使用 -appendToFile 进行文件的追加
hadoop fs -appendToFile D:/c.txt /hadoop_learn/aa.txt
  • 使用 -tail 查看文件末尾,查看是否添加成功
hadoop fs -tail /hadoop_learn/aa.txt
  • 使用 -rm -r 删除文件(文件夹)
hadoop fs -rm /hadoop_learn/aa.txt

目录操作

  • 使用 -mkdir 进行目录的创建
hadoop fs -mkdir /hadoop_learn
  • 使用 -mkdir -p 时, 若父目录不存在,会被自动创建;
hadoop fs -mkdir -p /hadoop_learn/test/test
  • 使用 -du 查看每个目录占用多少空间
hadoop fs -du /hadoop_learn/

导出文件

  • 使用 -get 参数将其导出到Linux本地目录
hadoop fs -get /hadoop_learn/aa.txt D:/