当前位置:   article > 正文

hadoop安装教程(一次填完所有的坑)_csdnhadoop下载安装教程

csdnhadoop下载安装教程

01 引言

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

02 hadoop 安装

2.1 下载与安装

Step1: 下载 安装包

Step2: 上传并解压

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

2.2 hadoop配置

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

  1. [root@server11 hadoop]# vi hadoop-env.sh
  2. # 指定JAVA_HOME
  3. export JAVA_HOME=/usr/lib/jvm/TencentKona-8.0.1-242

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

  1. [root@server19 hadoop]# vi core-site.xml
  2. <configuration>
  3. <!-- 指定HDFS老大(namenode)的通信地址 -->
  4. <property>
  5. <name>fs.defaultFS</name>
  6. <value>hdfs://服务器的真实ip:9002</value>
  7. </property>
  8. <!-- 指定hadoop运行时产生文件的存储路径 -->
  9. <property>
  10. <name>hadoop.tmp.dir</name>
  11. <value>/data/hadoop/tmp</value>
  12. </property>
  13. </configuration>

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

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

  1. <configuration>
  2. <property>
  3. <name>dfs.namenode.name.dir</name>
  4. <value>/data/hadoop/hadoop/hdfs/nn</value>
  5. </property>
  6. <property>
  7. <name>fs.checkpoint.dir</name>
  8. <value>/data/hadoop/hdfs/snn</value>
  9. </property>
  10. <property>
  11. <name>fs.checkpoint.edits.dir</name>
  12. <value>/data/hadoop/hdfs/snn</value>
  13. </property>
  14. <property>
  15. <name>dfs.datanode.data.dir</name>
  16. <value>/data/hadoop/hdfs/dn</value>
  17. </property>
  18. <property>
  19. <name>dfs.name.dir</name>
  20. <value>/data/hadoop/name</value>
  21. </property>
  22. <property>
  23. <name>dfs.data.dir</name>
  24. <value>/data/hadoop/node</value>
  25. </property>
  26. <property>
  27. <name>dfs.replication</name>
  28. <value>1</value>
  29. </property>
  30. <property>
  31. <name>dfs.http.address</name>
  32. <value>服务器的真实ip:9000</value>
  33. </property>
  34. <property>
  35. <name>ipc.maximum.data.length</name>
  36. <value>134217728</value>
  37. </property>
  38. </configuration>

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

  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3. <property>
  4. <name>yarn.nodemanager.vmem-check-enabled</name>
  5. <value>false</value>
  6. </property>
  7. <property>
  8. <name>yarn.nodemanager.aux-services</name>
  9. <value>mapreduce_shuffle</value>
  10. </property>
  11. <property>
  12. <name>yarn.application.classpath</name>
  13. <value>
  14. /data/hadoop-2.7.7/etc/*,
  15. /data/hadoop-2.7.7/etc/hadoop/*,
  16. /data/hadoop-2.7.7/lib/*,
  17. /data/hadoop-2.7.7/share/hadoop/common/*,
  18. /data/hadoop-2.7.7/share/hadoop/common/lib/*,
  19. /data/hadoop-2.7.7/share/hadoop/mapreduce/*,
  20. /data/hadoop-2.7.7/share/hadoop/mapreduce/lib/*,
  21. /data/hadoop-2.7.7/share/hadoop/hdfs/*,
  22. /data/hadoop-2.7.7/share/hadoop/hdfs/lib/*,
  23. /data/hadoop-2.7.7/share/hadoop/yarn/*,
  24. /data/hadoop-2.7.7/share/hadoop/yarn/lib/*
  25. </value>
  26. </property>
  27. </configuration>

2.3 免登陆配置

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

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

 2.4 配置环境变量

  1. vi /etc/profile
  2. ### 配置内容如下:
  3. export JAVA_HOME=/usr/lib/jvm/TencentKona-8.0.1-242
  4. export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  5. export HADOOP_HOME=/data/hadoop-2.7.7
  6. export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  7. export HADOOP_CLASSPATH=`hadoop classpath`
  8. export HADOOP_CONF_DIR=/data/hadoop-2.7.7/etc/hadoop
  9. ### 生效配置
  10. source /etc/profile

注意配置HADOOP_CLASSPATH!

2.5 配置域名

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

  1. vi /etc/hosts
  2. 127.0.0.1 localhost.localdomain localhost
  3. 127.0.0.1 localhost4.localdomain4 localhost4
  4. 127.0.0.1 VM-xx-centos gp-master
  5. ::1 VM-xx-centos VM-xxx-centos
  6. ::1 localhost.localdomain localhost
  7. ::1 localhost6.localdomain6 localhost6
  8. 服务器的真实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相关命令

  1. ## 正在运行的任务
  2. yarn application -list
  3. ## kill掉yarn正在运行的任务
  4. yarn application -kill application_1654588814418_0003
  5. ## 查找yarn已经完成的任务列表
  6. yarn application -appStates finished -list
  7. ## 查找yarn所有任务列表
  8. yarn application -appStates ALL -list
  9. ## 查看容器日志
  10. curl http://127.0.0.1:8042/node/containerlogs/container_1654588814418_0003_01_000001/root/jobmanager.out/?start=0
  11. ## 查看yarn内存使用情况
  12. curl http://127.0.0.1:8042/cluster

 3.2 hdfs相关命令

  1. # 因为在 HDFS 上没有为当前用户创建主目录,所以要先创建目录
  2. $ hadoop fs -mkdir -p /user/root
  3. # 目录只能一级级创建 ,不能一下子创建2个
  4. $ hadoop fs -mkdir ./flink
  5. # 上传
  6. $ hadoop fs -put /资源路径/相关资源 ./flink
  7. # 下载
  8. $ hadoop fs -get ./flink
  9. # 查看
  10. $ hadoop fs -ls ./flink
  11. # 删除整个文件夹
  12. $ hadoop fs -rm -rf flink
  13. # 此处为逐级删除
  14. $ hadoop fs -rm ./flink/资源
  15. # 备注:上面的 `./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的文件内容

  1. <property>
  2. <name>dfs.http.address</name>
  3. <value>11.41.140.96:9002</value>
  4. </property>
  5. <property>
  6. <name>dfs.secondary.http.address</name>
  7. <value>11.41.140.96:9002</value>
  8. </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)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/696644
推荐阅读
相关标签
  

闽ICP备14008679号