Hadoop数仓中常用端口详解:(第36天)_hadoop端口
前言
在数仓(数据仓库)开发中,不同的组件和服务会使用不同的端口号进行通信。由于数仓的实现可能依赖于多种技术和框架(如Hadoop、Hive、HBase、Spark等),因此涉及的端口号也会有所不同。以下是一些数仓开发中常用端口号及其作用的概述,以及相关的操作指令建议。
常用端口号及其作用
1. Hadoop相关
- 端口号组件/服务作用
8020NameNode RPCNameNode的远程过程调用(RPC)端口,
用于处理客户端和DataNode的请求。 - 9000NameNode HTTP(非高可用)NameNode的HTTP服务端口,
用于Web界面访问(如HDFS的Web UI)。注意,在高可用配置中,此端口可能不常用。 - 50070NameNode WebHDFSNameNode的WebHDFS端口,
通过HTTP协议提供对HDFS的访问。 - 8088YARN ResourceManagerYARN集群的ResourceManager的Web UI端口,
用于监控和管理集群中的资源和任务。 - 50010DataNode 数据传输端口
用于DataNode与NameNode之间、DataNode与客户端之间的数据读写操作。
2. HDFS相关
- 端口号组件/服务作用
- 50010DataNode 数据传输端口
用于HDFS内部的数据传输,例如DataNode与NameNode之间、DataNode与客户端之间的数据读写操作。 - 50020DataNode IPC端口
DataNode的IPC(Inter-Process Communication)端口,用于接受来自NameNode或其他DataNode的命令和状态同步请求。注意,在某些Hadoop版本中,这个端口可能与其他功能合并或更改。 - 50075DataNode Web UI端口
DataNode的Web界面端口,通常用于查看DataNode的状态和报告。然而,需要注意的是,这个端口并不总是默认开启的,且其Web界面可能不如NameNode的Web界面那样详细。
在MapReduce(MR)环境中,特别是与Hadoop生态系统结合时,有几个常用的端口号。这些端口号主要与YARN(Yet Another Resource Negotiator)框架和MapReduce作业的执行情况相关。以下是一些常用的端口号及其作用:
3. YARN相关
8032:YARN ResourceManager的IPC(Inter-Process Communication)端口。ResourceManager是YARN的核心组件,负责集群资源的分配和管理。这个端口用于ResourceManager与其他YARN组件(如NodeManager)之间的内部通信。
8088:YARN ResourceManager的Web UI端口。通过这个端口,用户可以访问ResourceManager的Web界面,查看集群的状态、运行的应用程序以及相关的统计信息等。这是查看MapReduce作业执行情况的主要端口之一。
4. MapReduce相关
虽然MapReduce作业的执行情况主要通过YARN ResourceManager的Web UI(即8088端口)来查看,但MapReduce本身并不直接提供特定的Web UI端口。然而,MapReduce作业的日志和输出通常会存储在HDFS(Hadoop Distributed File System)上,因此与HDFS相关的端口(如50070或9870,取决于Hadoop的版本)也可能用于间接地查看MapReduce作业的输出和日志。
- HDFS相关端口(间接相关)
50070(Hadoop 2.x)或9870(Hadoop 3.x):HDFS NameNode的Web UI端口。虽然这个端口主要用于HDFS的管理和监控,但用户可以通过它查看HDFS上存储的文件和目录,包括MapReduce作业的输出目录。
5. Hive相关
端口号组件/服务作用
9083Hive MetastoreHive Metastore服务的默认监听端口,用于存储和管理Hive的元数据。
10000Hive JDBCHive JDBC服务的端口,允许通过JDBC协议连接到Hive服务。
6. HBase相关
端口号组件/服务作用
60010(旧)、16010(新)HBase Master Web UIHBase Master的Web UI端口,用于监控和管理HBase集群的状态。
60030HBase RegionServer Web UIHBase RegionServer的Web UI管理端口,提供RegionServer的状态和性能信息。
7. Spark相关
端口号组件/服务作用
7077Spark MasterSpark集群中Master节点与Worker节点进行通信的端口。
8080Spark Master Web UISpark Master的Web UI端口,用于监控和管理Spark作业和集群状态。
8081Spark Worker Web UISpark Worker的Web UI端口,提供Worker节点的状态和性能信息。
4040Spark Driver Web UISpark应用程序的Driver节点的Web UI端口,用于查看应用程序的运行状态和日志。
8. 其他
端口号组件/服务作用
2181ZookeeperZookeeper客户端连接的端口,用于集群管理和协调。
9092KafkaKafka集群节点之间通信的RPC端口。
9. 操作指令
对于数仓中的操作指令,通常会依赖于具体的组件和服务。以下是一些通用的操作指令示例:
- 启动HDFS服务:
bash
sbin/start-dfs.sh - 停止HDFS服务:
bash
sbin/stop-dfs.sh - 启动YARN服务:
bash
sbin/start-yarn.sh - 停止YARN服务:
bash
sbin/stop-yarn.sh - 查看HDFS状态:
bash
hdfs dfsadmin -report - 启动Hive Metastore服务(具体命令可能因安装方式和版本而异):
bash
示例命令,具体取决于Hive的安装和配置
hive --service metastore
访问Hive JDBC(通常通过客户端或应用程序进行,而非直接通过命令行):
配置JDBC连接字符串,包括主机名、端口号(10000)和数据库名(对于Hive,通常是默认数据库或指定数据库)。
请注意,上述操作指令和端口号可能因Hadoop、Hive、HBase、Spark等组件的版本和配置而有所不同。在实际操作中,建议参考各组件的官方文档和配置文件(如hdfs-site.xml、hive-site.xml、hbase-site.xml、spark-defaults.conf等)以获取准确的信息。
此外,由于数仓技术的不断发展和更新,新的端口号和操作指令可能会被引入,而旧的则可能会被弃用。
10. 启动spark的指令
启动Spark的指令可以根据不同的使用场景和需求有所不同。以下是一些常见的启动Spark的指令及其说明:
1. 启动Spark Shell
Spark Shell是Spark提供的一个交互式编程环境,支持Scala、Python和R语言。通过Spark Shell,用户可以方便地进行数据探索和交互式数据分析。
Scala Shell:在Spark安装目录下的bin文件夹中,执行./spark-shell(Linux/Mac)或spark-shell.cmd(Windows)命令。
Python Shell:同样在bin文件夹中,执行./pyspark(Linux/Mac)或pyspark.cmd(Windows)命令。
2. 提交Spark应用程序
对于需要部署到集群上运行的Spark应用程序,通常使用spark-submit命令来提交。spark-submit命令的基本语法如下:
bash
spark-submit [options] [app-arguments]
其中,[options]是Spark应用程序的选项参数,用于配置应用程序的运行环境;是要运行的Spark应用程序的Jar包或Python文件;[app-arguments]是传递给应用程序的参数。
常用的选项参数包括:
–master:指定Spark应用程序运行的资源管理器,如local(本地模式)、spark://host:port(Standalone模式)、yarn(YARN模式)等。
–deploy-mode:指定Spark应用程序的部署模式,如client或cluster。
–class:指定要运行的主类(仅当提交Jar包时使用)。
–executor-memory:指定每个Executor的内存大小。
–num-executors:指定Executor的数量。
–driver-memory:指定Driver的内存大小。
–conf:指定一些Spark配置属性。
3. 启动Spark集群
如果你是在集群环境下运行Spark,并且希望手动启动Spark的各个组件,可以使用以下命令:
- 启动所有组件(Master和Worker节点):在Spark安装目录下的sbin文件夹中,执行./start-all.sh(Linux/Mac)或start-all.cmd(Windows)命令。
- 仅启动Master节点:执行./start-master.sh(Linux/Mac)或start-master.cmd(Windows)命令。
- 仅启动Worker节点:执行./start-worker.sh (Linux/Mac)或start-worker.cmd (Windows)命令,其中是Master节点的URL,如spark://localhost:7077。
注意事项
在执行上述命令之前,请确保已经正确安装了Spark,并且设置了相应的环境变量(如SPARK_HOME和PATH)。
根据你的Spark版本和操作系统,命令的具体名称和路径可能有所不同。请参考你的Spark安装文档或官方指南以获取准确的命令和路径信息。
如果你是在使用云服务或大数据平台(如AWS EMR、阿里云EMR等),启动Spark的指令可能会有所不同,具体请参考相应平台的文档或指南。