Hadoop(六)

114 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

  1. 测试

修改任意机器时间 dates"202191111:11:11"1分钟后查看机器是否与时间服务器同步date -s "2021-9-11 11:11:11" 1分钟后查看机器是否与时间服务器同步 date

常用端口号说明

端口名称Hadoop2.xHadoop3.x
NameNode内部通信端口8020 / 90008020 / 9000/9820
NameNode HTTP UI500709870
MapReduce查看执行任务端口80888088
历史服务器通信端口1988819888

常用的配置文件

Hadoop2.X :core-site.xml 、hdfs-site.xml、yarn-site.xml、mapred-site.xml、slaves

Hadoop3.X:core-site.xml 、hdfs-site.xml、yarn-site.xml、mapred-site.xml、workers

其他命令

逐个启动

$ bash sbin/hadoop-daemon.sh start datanode (hadoop2.X中)

$ hdfs --daemon start/stop namenode/datanode/secondarynamenode (hadoop3.X中)

启动/停止yarn

$ yarn --daemon start/stop resourcemanager/nodemanager (hadoop3.X中)

常见问题

  1. 启动 hdf,报错:hadoop102: Error: JAVA_HOME is not set and could not be found.

解决方法:修改 /usr/local/hadoop-2.7.7/etc/hadoop/hadoop-env.sh 中的 JAVA_HOME,改为 /usr/local/java 即可!再次运行:bash sbin/stop-dfs.sh

  1. 安装了java,却没有jps命令,报错: jps: command not found

解决方法: 服务器安装的 java 环境是 jre,不是 jdk,而 jre 是没有 jps 的。

  1. DataNode和NameNode进程同时只能工作一个。

NameNode 在 format 初始化后会生成 clusterID(集群ID)DataNode 在启动后也会生成和 NameNode 一样的 ClusterID再次格式化 NameNode,生成新的 ClusterId,与未删除 DataNode的 clusterID不一致解决办法:在格式化之前,先删除 DataNode 里面的信息(默认在/tmp下,若在配置文件中指定了在data下,则先停止进程,再删除data目录后再format ,然后再启动,最好也把logs目录一并删除),注意删除所有节点的 data 和 logs

  1. jps发现进程已经没有,但是重新启动集群,提示进程已经开启

原因是在Linux的根目录下/tmp目录中存在启动的进程临时文件,将集群相关进程删除掉,再重新启动集群。

  1. scala代码中运行sparksql时,报错

could only be replicated to 0 nodes instead of minReplication (=1). There are 3 datanode(s) running and 3 node(s) are excluded in this operation

  1. Scala代码中运行SparkSql时,报错连接被拒绝

为hive没有以元数据的方式启动hive --service metastore &在Scala代码中加入:.config("dfs.client.use.datanode.hostname", "true") //解决拒绝连接的报错