我的编程空间,编程开发者的网络收藏夹
学习永远不晚

最新hadoop安装教程及hadoop的命令使用(亲测可用)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

最新hadoop安装教程及hadoop的命令使用(亲测可用)

01 引言

最近安装hadoop-2.7.7 版本的时候遇到了很多坑,本文来详细讲解如何安装和解决遇到的问题。

02 hadoop 安装

2.1 下载与安装

Step1: 下载

百度网盘下载

链接: https://pan.baidu.com/s/1ydPDP3xL0iL6sKYxdiq2ew 提取码: nnpf 

Step2: 上传并解压

 cd /data
 tar -zxvf hadoop-2.7.7.tar.gz

2.2 hadoop配置

Step1: 修改hadoop安装目录/etc/hadoop下的hadoop-env.sh的文件内容

[root@server11 hadoop]# vi hadoop-env.sh

# 指定JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/TencentKona-8.0.1-242

Step2: 修改hadoop安装目录/etc/hadoop下的core-site.xml的文件内容

[root@server19 hadoop]# vi core-site.xml

<configuration>
    <!-- 指定HDFS老大(namenode)的通信地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://服务器的真实ip:9002</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/tmp</value>
    </property>
</configuration>

注:这里fs.defaultFSvalue最好是写本机的静态IP。当然写本机主机名,再配置hosts是最好的,如果用localhost,然后在windowsjava操作hdfs的时候,会连接不上主机。

Step3: 修改hadoop安装目录/etc/hadoop下的hdfs-site.xml的文件内容

<configuration>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/data/hadoop/hadoop/hdfs/nn</value>
        </property>
        <property>
                <name>fs.checkpoint.dir</name>
                <value>/data/hadoop/hdfs/snn</value>
        </property>
        <property>
                <name>fs.checkpoint.edits.dir</name>
                <value>/data/hadoop/hdfs/snn</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/data/hadoop/hdfs/dn</value>
        </property>

        <property>
            <name>dfs.name.dir</name>
            <value>/data/hadoop/name</value>
        </property>
        <property>
            <name>dfs.data.dir</name>
            <value>/data/hadoop/node</value>
        </property>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.http.address</name>
            <value>服务器的真实ip:9000</value>
        </property>
        <property>
             <name>ipc.maximum.data.length</name>
             <value>134217728</value>
        </property>
</configuration>

*Step4: 修改hadoop安装目录/etc/hadoop下的yarn-site.xml的文件内容

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.application.classpath</name>
    <value>
        /data/hadoop-2.7.7/etc/*,
        /data/hadoop-2.7.7/etc/hadoop/*,
        /data/hadoop-2.7.7/lib/*,
        /data/hadoop-2.7.7/share/hadoop/common/*,
        /data/hadoop-2.7.7/share/hadoop/common/lib/*,
        /data/hadoop-2.7.7/share/hadoop/mapreduce/*,
        /data/hadoop-2.7.7/share/hadoop/mapreduce/lib/*,
        /data/hadoop-2.7.7/share/hadoop/hdfs/*,
        /data/hadoop-2.7.7/share/hadoop/hdfs/lib/*,
        /data/hadoop-2.7.7/share/hadoop/yarn/*,
        /data/hadoop-2.7.7/share/hadoop/yarn/lib/*
    </value>
</property>

</configuration>

2.3 免登陆配置

线上环境已配置,无需配置

#到 root 目录下:
cd /root
#执行生成密钥命令:
ssh-keygen -t rsa
#然后三个回车
#然后复制公钥追加到第一台节点的公钥文件中:
ssh-copy-id -i /root/.ssh/id_rsa.pub root@master01
#选择 yes
#输入登录第一台节点的密码(操作完成该节点公钥复制到第一台节点中)

2.4 配置环境变量

vi /etc/profile

### 配置内容如下:
export JAVA_HOME=/usr/lib/jvm/TencentKona-8.0.1-242
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/data/hadoop-2.7.7
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CLASSPATH=`hadoop classpath`
export HADOOP_CONF_DIR=/data/hadoop-2.7.7/etc/hadoop

### 生效配置
source /etc/profile

注意:配置HADOOP_CLASSPATH!

2.5 配置域名

可能会配置到,根据提示错误配置就好了

vi /etc/hosts

127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4
127.0.0.1 VM-xx-centos gp-master

::1 VM-xx-centos VM-xxx-centos
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

服务器的真实ip VM-xxx-centos localhost.localdomain gp-master 

2.6 启动

进入hadoop安装目录/sbin,执行start-all.sh文件:

./start-all.sh

使用jps命令验证是否已经启动成功(这些都启动了才算成功:ResourceManager、DataNode、SecondaryNameNode、NodeManager、TaskManagerRunner、YarnTaskExecutorRunner、NameNode):

jps

浏览器打开:http://服务器地址:50070/,可以看到hadoop环境搭建好了:

03 相关命令

3.1 yarn相关命令

## 正在运行的任务
yarn application -list

## kill掉yarn正在运行的任务
yarn application -kill application_1654588814418_0003

## 查找yarn已经完成的任务列表
yarn application -appStates finished -list

## 查找yarn所有任务列表
yarn application -appStates ALL -list

## 查看容器日志
curl http://127.0.0.1:8042/node/containerlogs/container_1654588814418_0003_01_000001/root/jobmanager.out/?start=0

## 查看yarn内存使用情况
curl http://127.0.0.1:8042/cluster

3.2 hdfs相关命令

# 因为在 HDFS 上没有为当前用户创建主目录,所以要先创建目录
$ hadoop fs -mkdir -p /user/root
# 目录只能一级级创建 ,不能一下子创建2个
$ hadoop fs -mkdir ./flink 
# 上传
$ hadoop fs -put /资源路径/相关资源 ./flink 
# 下载
$ hadoop fs -get ./flink 
# 查看
$ hadoop fs -ls ./flink 

# 删除整个文件夹
$ hadoop fs -rm -rf flink
# 此处为逐级删除
$ hadoop fs -rm  ./flink/资源
# 备注:上面的 `./bin/hadoop fs`等同于`./bin/hdfs dfs`

04 一次填完所有的坑

1. 程序访问hdfs失败,提示“Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message”

解决方案:使用命令hdfs getconf -confKey fs.default.name获取正确的端口号并配置到程序

2. 首次安装hadoop,使用hdfs命令时,会提示“‘.’: No such file or directory”

解决方案: 因为在 hdfs 上没有为当前用户创建主目录,所以要先创建目录$ hadoop fs -mkdir -p /user/root

3. 首次安装hadoop,使用hdfs命令时,可能会提示“‘There are 0 datanode(s) running and no node(s) are excluded in this operation.”

解决方案:可能是格式化两次hadoop,导致没有datanode。首先stop-all.sh停掉所有的服务,然后找到hadoop指定的data目录(线上是:/data/hadoop)删除,接着从新执行一下 hadoop namenode -format,最后使用start-all.sh 重启一下hadoop

4. 使用hdfs命令,提示“Caused by: org.apache.hadoop.ipc.RemoteException: Cannot create directory”

解决方案:是因为安全模式没有自动关闭,使用命令关闭“hdfs dfsadmin -safemode leave”,然后删除出错的block块,命令:“hdfs fsck / -delete”。

5. 启动hadoop时,可能会提示second node connection refuesd,即访问被拒绝

解决方案: 修改hadoop安装目录/etc/hadoop下的hdfs-site.xml的文件内容

<property>
	<name>dfs.http.address</name>
	<value>11.41.140.96:9002</value>
</property>
<property>
	<name>dfs.secondary.http.address</name>
	<value>11.41.140.96:9002</value>
</property>

6.部署的时候可能会失败,提示 Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message,指的是端口号配置错了,查询端口号的命令:

解决方案:修改查询端口号并修改

hdfs getconf -confKey fs.default.name

7.hadoop的日志在哪个目录:

在:/data/hadoop-2.7.7/logs 05 Yarn相关配置

本文顺带讲下yarn相关的配置(在/etc/hadoop/yarn-site.xml配置),可以直接跳过。

配置描述
yarn.nodemanager.resource.memory-mb表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。
yarn.nodemanager.vmem-pmem-ratio任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1。
yarn.nodemanager.pmem-check-enabled是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
yarn.nodemanager.vmem-check-enabled是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
yarn.scheduler.minimum-allocation-mb单个任务可申请的最少物理内存量,默认是1024(MB),如果一个任务申请的物理内存量少于该值,则该对应的值改为这个数。
yarn.scheduler.maximum-allocation-mb 单个任务可申请的最多物理内存量,默认是8192(MB)。

06 文末

本文主要讲解了如何安装hadoop、使用hadoop的命令及遇到的问题解决,希望能帮助到大家,谢谢大家的阅读,本文完!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

最新hadoop安装教程及hadoop的命令使用(亲测可用)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python使用SeleniumWebDriver的入门介绍及安装教程(最新推荐)

这篇文章主要介绍了Python使用SeleniumWebDriver的入门介绍及安装教程,本文使用环境为python3.11+win1064位+firefox浏览器,所以本文使用的浏览器驱动是Firefox的geckodriver,如果你使用的是其他浏览器,那么选择自己对应的浏览器驱动程序即可,需要的朋友可以参考下
2023-05-15

Docker安装并使用Mysql的详细教程(实测可用!)

在日常的工作中经常会需要将数据存在服务器,经常用到的数据库是mysql,下面这篇文章主要给大家介绍了关于Docker安装并使用Mysql的详细教程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-28

Linux中htop的安装与其命令的使用教程

这篇文章主要讲解了“Linux中htop的安装与其命令的使用教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux中htop的安装与其命令的使用教程”吧!1. htop简介Htop是一
2023-06-12

Python安装使用命令行交互模块pexpect的基础教程

一、安装 1、安装easy_install工具wget http://peak.telecommunity.com/dist/ez_setup.pypython ez_setup.py 安装easy_install工具(这个脚本会自动去官网
2022-06-04

Linux下Python安装完成后使用pip命令的详细教程

一、很多读者python安装完成之后,想要下载相关的包,例如:numpy、pandas等Python中这些基础的包,但是,发现pip根本用不了,主要表现在一下几种情况:二、出现这种情况其实并不意外,
2022-06-04

Ubuntu系统中Git客户端的安装与基本命令的使用教程

这篇文章主要介绍“Ubuntu系统中Git客户端的安装与基本命令的使用教程”,在日常操作中,相信很多人在Ubuntu系统中Git客户端的安装与基本命令的使用教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”U
2023-06-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录