下载 Hadoop

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.2.3/hadoop-3.2.3.tar.gz --no-check-certificate

配置环境变量

首先修改当前用户的配置文件,添加 Hadoop 环境变量。修改 ~/.bashrc


Hadoop 解压后即可使用。通过在任意路径下,使用 hadoop version 查看 Hadoop 版本,来判断是否配置成功

启动 与 停止

启动 namenode、datanode、resourcemanager

hdfs --daemon start namenode
hdfs --daemon start datanode
yarn --daemon start nodemanager
yarn --daemon start resourcemanager

停止 namenode、datanode、resourcemanager

hdfs --daemon stop namenode
hdfs --daemon stop datanode
yarn --daemon stop nodemanager
yarn --daemon stop resourcemanager

启动 namenode 时,可能会报错:ERROR: Cannot set priority of namenode process 9303

通过日志,可以查看到问题:tail -n 20 hadoop-3.2.3/logs/hadoop-root-namenode-starrocks1.log
tail -n <行数> 表示查看最后几行

查看到问题原因是 Invalid URI for NameNode address (check fs.defaultFS): file:/// has no authority

在hadoop的官网可以找到 fs.defaultFScore-site.xml 配置文件中的属性
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/core-default.xml
使用命令修改 core-site.xml 修改配置 vim hadoop-3.2.3/etc/hadoop/core-site.xml

<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>

使用 jps 发现 namenode 并未重启,再次查看日志 tail -n 20 hadoop-3.2.3/logs/hadoop-root-namenode-starrocks1.log
报错: Directory /tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.

centos在每次关机后,都会自动清理 tmp 目录下的文件,这就意味着之前记录的 name 等信息有可能会丢失。这时候再想修复,就只能使用 bin/hadoop namenode -format格式化整个名字节点的数据。因此,这里在启动的时候,就提示你应该将 hadoop.tmp.dir 设置到一个不会更变的目录

使用命令修改 core-site.xml 修改配置 vim hadoop-3.2.3/etc/hadoop/core-site.xml

<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property><property><name>hadoop.tmp.dir</name><value>/root/hadoop-3.2.3/tmp/</value></property>
</configuration>

由于报错:Directory /root/hadoop-3.2.3/tmp/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible
需要创建目录 mkdir -p /root/hadoop-3.2.3/tmp/dfs/namemkdir -p 表示递归创建目录

如果报错NameNode is not formatted,就需要格式化名字节点 hadoop-3.2.3/bin/hdfs namenode -format

WEB 管理页

  • hdfs健康信息 http://localhost:9870
  • hadoop集群信息 http://127.0.0.1:8088/

如果访问不了,首先用 jps 查看4个相关进程是否存在。 其次检查防火墙是否关闭,关闭命令 systemctl stop firewalld


It looks like you are making an HTTP request to a Hadoop IPC port. This is not the correct port for the web interface on this daemon.

如果出现这段英文,这说明你的配置包括进程启动都没问题,你只是访问了进程中的非web端口

Hadoop单机配置(非分布式)

Hadoop 默认模式为非分布式模式(本地模式),无需任何配置即可运行。通过以下命令,可以执行hadoop 自带的 demo。

这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统,一般仅用于本地MR程序的调试

使用如下命令可以查看可用demo

cd ${HADOOP}
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar


可以看到 hadoop 自带了很多 example

An example program must be given as the first argument.
Valid program names are:

  • aggregatewordcount: An Aggregate based map/reduce program that counts the words in the input files.
  • aggregatewordhist: An Aggregate based map/reduce program that computes the histogram of the words in the input files.
  • bbp: A map/reduce program that uses Bailey-Borwein-Plouffe to compute exact digits of Pi.
  • dbcount: An example job that count the pageview counts from a database.
  • distbbp: A map/reduce program that uses a BBP-type formula to compute exact bits of Pi.
  • grep: A map/reduce program that counts the matches of a regex in the input.
  • join: A job that effects a join over sorted, equally partitioned datasets
  • multifilewc: A job that counts words from several files.
  • pentomino: A map/reduce tile laying program to find solutions to pentomino problems.
  • pi: A map/reduce program that estimates Pi using a quasi-Monte Carlo method.
  • randomtextwriter: A map/reduce program that writes 10GB of random textual data per node.
  • randomwriter: A map/reduce program that writes 10GB of random data per node.
  • secondarysort: An example defining a secondary sort to the reduce.
  • sort: A map/reduce program that sorts the data written by the random writer.
  • sudoku: A sudoku solver.
  • teragen: Generate data for the terasort
  • terasort: Run the terasort
  • teravalidate: Checking results of terasort
  • wordcount: A map/reduce program that counts the words in the input files.
  • wordmean: A map/reduce program that counts the average length of the words in the input files.
  • wordmedian: A map/reduce program that counts the median length of the words in the input files.
  • wordstandarddeviation: A map/reduce program that counts the standard deviation of the length of the words in the input files.

下面测试 grep 小程序

cd $HADOOP
mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoopmapreduce/hadoop-mapreduce-examples-3.3.0.jar grep input output '<name>hadoop.*</name>'

jar 表示使用hadoop执行一个jar脚本

查看执行结果

  • _SUCCESS 是一个空文件,标志执行成功
  • part-r-00000 保存了执行结果

Hadoop伪分布式配置

这种模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点 (NameNode, DataNode, JobTracker, TaskTracker, SecondaryNameNode)
  
请注意分布式运行中的这几个结点的区别:

  • 从分布式存储的角度来说,集群中的结点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的备份。
  • 从分布式应用的角度来说,集群中的结点由一个JobTracker和若干个TaskTracker组成,JobTracker负责任务的调度,TaskTracker负责并行执行任务。TaskTracker必须运行在DataNode上,这样便于数据的本地计算。JobTracker和NameNode则无须在同一台机器上。一个机器上,既当namenode,又当datanode,或者说 既 是jobtracker,又是tasktracker。没有所谓的在多台机器上进行真正的分布式计算,故称为"伪分布式"。开启多个进程模拟完全分布式,但是并没有真正提高程序执行的效率

如果像单机模式一样直接启动,会报错 hdfs://localhost:9000 连接不上,解决办法是启动 namenode 和 datanode

在未做任何配置的情况下,namenode是无法直接启动的,会报 Error: Cannot set priority of namenode process 57675 的错误(datanode到是可以直接启动的)


需要修改 Hadoop 的配置文件,位置在 $HADOOP/etc/hadoop/ 目录下。要操作如下3个配置文件:

  • core-site.xml(Hadoop集群的特性,作用于全部进程及客户端)
  • hdfs-site.xml(配置HDFS集群的工作属性)
  • mapred-site.xml(配置MapReduce集群的属性)

  • etc/hadoop/core-site.xml 是必须修改的。
    要添加 hadoop.tmp.dirfs.defaultFS 属性。
<configuration><property><name>hadoop.tmp.dir</name><value>/home/chen/.hadoop/tmp</value><description>a temporary directory for hadoop</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>
  • /etc/hadoop/hdfs-site.xml(非必须,可不修改,不影响运行)这里将副本数量设置为1
<configuration><property><name>dfs.replication</name><value>1</value></property>
</configuration>
  • /etc/hadoop/yarn-site.xml(非必须,可不修改,不影响运行)
<configuration>
<!-- Site specific YARN configuration properties --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property>
</configuration>

修改后启动 namenode 和 datanode。 但依旧会报错,因为 hdfs://localhost:9000/user/<用户名>/input 文件夹不存在

初次使用 hadoop 时,它的目录下并没有任何文件。也就是说初次使用ls,只有 hadoop fs -ls / 是正确的。hadoop 可以通过和 linux 一样的命令创建和操作文件或文件夹,唯一的区别就是需要加上 hadoop fs 的前缀

很多文章说,第一次使用 hadoop的时候要格式化 hdfs namenode -format(实验后发现貌似不格式化也行),另外格式化之前,必须关闭 hdfs 服务。

hdfs --daemon stop namenode
hdfs --daemon stop datanode
hdfs namenode -format

下面将外部已经创建好的文件夹包括里面的文件送入hadoop的hdfs里,使用put命令(test.txt 是一篇纯英文的新闻)

命令为 hadoop fs -put <待传入的文件> <保存路径>

下面运行测试程序 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount input.txt output,成功的话,会打印日志信息,失败则会报错。

如果成功,在 hdfs 的 output 目录下会生成一个 SUCCESS 文件,另一个文件是处理输出结果。

除了命令行查看,我们还可以使用管理网页的方式,进行查看 http://localhost:9870/explorer.html

比如我们要查看 datanode 的 /user/chen/output 目录下的文件,除了一级一级点进去,还可以直接输入 http://localhost:9870/explorer.html#/user/chen/output 进行访问

Hadoop 3.3.0 基础配置相关推荐

  1. 第六天 - 安装第二、三台CentOS - SSH免密登陆 - hadoop全分布式安装、配置、集群启动

    第六天 - 安装第二.三台CentOS - SSH免密登陆 - hadoop全分布式安装.配置.集群启动 第六天 - 安装第二.三台CentOS - SSH免密登陆 - hadoop全分布式安装.配置 ...

  2. hadoop 2.0 详细配置教程

    作者:杨鑫奇 PS:文章有部分参考资料来自网上,并经过实践后写出,有什么问题欢迎大家联系我. update: 20130518  大家可以尝试下Ambari来配置Hadoop的相关环境 快速的部署Ha ...

  3. Hadoop基础-配置历史服务器

    Hadoop基础-配置历史服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比 ...

  4. Hadoop 2.2.0安装和配置lzo

    2019独角兽企业重金招聘Python工程师标准>>> Hadoop经常用于处理大量的数据,如果期间的输出数据.中间数据能压缩存储,对系统的I/O性能会有提升.综合考虑压缩.解压速度 ...

  5. Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误

    25. 集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据 ...

  6. hadoop 2.5.0安装和配置

    安装hadoop要先做以下准备: 1.jdk,安装教程在 http://www.cnblogs.com/stardjyeah/p/4640917.html 2.ssh无密码验证,配置教程在 http: ...

  7. 0基础学RS(十)思科AAA认证基于服务器的AAA认证(TACACS+配置,RADIUS配置)

    前言 上一篇讲了本地AAA的知识和相关配置,接下来将讲解基于服务器的AAA认证.本地AAA和基于服务器的AAA到底有什么区别呢?他们分别适用于什么什么样的环境? 本地AAA 本地实现的AAA对于非常小 ...

  8. 《1》CentOS7.0+OpenStack+kvm云平台部署—基础配置

    感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如果转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  9. Spark2.2.0集群搭建部署之【基础配置篇】

    软件准备信息,详见Spark2.2.0集群搭建部署之[软件准备篇] Spark集群在生产环境中,主要部署在linux的集群中,所以需要先安装JDK,SCALA等基础配置. 由于Spark是计算框架,所 ...

最新文章

  1. 伍六七带你学算法 进阶篇-排序算法
  2. 二级域名session 共享方案
  3. 树套树 ---- 树状数组套权值线段树模板题 P2617 Dynamic Rankings 动态第K大
  4. Linux开机启动顺序
  5. Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0
  6. Pycharm启动后总是不停的updating indices...indexing
  7. Mark Down 使用实例
  8. CentOS 安装go client调用Kubernetes API
  9. c 四舍五入_王子异成苏宁易购新宠?网友:我心里的C位还是贾乃亮!
  10. 在Windows XP/2000下拒强行关机
  11. c语言int占几个字节 vc,int类型占几个字节
  12. ubuntu 13 sogou input method install
  13. 组网学习之什么是链路冗余(二)
  14. ipython安装过程_IPython安装过程 @win7 64bit
  15. 关于USGS 共享光谱库读取问题
  16. 费控产品之易快报洞察解析
  17. 2018香港银行卡开户、购汇、跨境汇款【全攻略】
  18. mysql服务器相关命令
  19. 小视频伪原创工具 苹果手机短视频去水印
  20. JUC与锁——精华篇

热门文章

  1. Paydirekt吞下Giropay,德国两大在线支付服务合并
  2. php获取整个网页内容,PHP获取网页内容方法总结
  3. pro javascript
  4. 世界上最爱吃狗肉的国家,每年吃掉400万只狗,玉林人也甘拜下风
  5. 2019 最烂密码榜单出炉,教你设置神级密码!
  6. 【Uniapp】手把手教你高德地图的接入、定位、自定义标点与信息窗体使用
  7. C++_运动会排程问题
  8. 应用测试阶段和部署方式
  9. LabVIEW怎样确定控件在显示器坐标系中的位置
  10. json Schema 数据校验工具