本文已参与「新人创作礼」活动,一起开启掘金创作之路。
- 测试
修改任意机器时间 date
常用端口号说明
| 端口名称 | Hadoop2.x | Hadoop3.x |
| NameNode内部通信端口 | 8020 / 9000 | 8020 / 9000/9820 |
| NameNode HTTP UI | 50070 | 9870 |
| MapReduce查看执行任务端口 | 8088 | 8088 |
| 历史服务器通信端口 | 19888 | 19888 |
常用的配置文件
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中)
常见问题
- 启动 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
- 安装了java,却没有jps命令,报错: jps: command not found
解决方法: 服务器安装的 java 环境是 jre,不是 jdk,而 jre 是没有 jps 的。
- DataNode和NameNode进程同时只能工作一个。
NameNode 在 format 初始化后会生成 clusterID(集群ID)DataNode 在启动后也会生成和 NameNode 一样的 ClusterID再次格式化 NameNode,生成新的 ClusterId,与未删除 DataNode的 clusterID不一致解决办法:在格式化之前,先删除 DataNode 里面的信息(默认在/tmp下,若在配置文件中指定了在data下,则先停止进程,再删除data目录后再format ,然后再启动,最好也把logs目录一并删除),注意删除所有节点的 data 和 logs
- jps发现进程已经没有,但是重新启动集群,提示进程已经开启
原因是在Linux的根目录下/tmp目录中存在启动的进程临时文件,将集群相关进程删除掉,再重新启动集群。
- 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
- Scala代码中运行SparkSql时,报错连接被拒绝
为hive没有以元数据的方式启动hive --service metastore &在Scala代码中加入:.config("dfs.client.use.datanode.hostname", "true") //解决拒绝连接的报错