You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Google Cloud Shell中正常使用Hadoop命令?

在Cloud Shell中使用Hadoop命令操作Dataproc集群的解决方案

我来帮你解决这个问题!Cloud Shell默认确实没有预装Hadoop CLI工具,不过有几种方法能让你在Cloud Shell里顺利操作Dataproc集群的Hadoop服务,下面给你详细说明:

方法一:在Cloud Shell中安装并配置Hadoop CLI工具

这种方法适合需要频繁使用Hadoop命令的场景,步骤如下:

  1. 确认Dataproc集群的Hadoop版本
    先获取你创建的Dataproc集群对应的Hadoop版本,避免版本不兼容:

    gcloud dataproc clusters describe YOUR_CLUSTER_NAME --region YOUR_REGION | grep HadoopVersion
    

    替换YOUR_CLUSTER_NAMEYOUR_REGION为你的集群名称和所在区域(比如us-central1)。

  2. 下载对应版本的Hadoop二进制包
    到Apache Hadoop归档站下载匹配版本的压缩包,比如如果版本是3.2.3,执行:

    wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.3/hadoop-3.2.3.tar.gz
    
  3. 解压并设置环境变量

    • 解压下载的包:
      tar -xzf hadoop-3.2.3.tar.gz
      
    • 临时配置环境变量(重启Cloud Shell后会失效):
      export HADOOP_HOME=$PWD/hadoop-3.2.3
      export PATH=$HADOOP_HOME/bin:$PATH
      
    • 如果想永久生效,把上述两行添加到~/.bashrc文件末尾,然后执行:
      source ~/.bashrc
      
  4. 配置Hadoop连接到Dataproc集群
    需要修改Hadoop的配置文件,让它指向Dataproc集群的NameNode:

    • 先获取集群的NameNode地址:
      gcloud dataproc clusters describe YOUR_CLUSTER_NAME --region YOUR_REGION --format="value(configuration.hadoopConfig.fs.defaultFS)"
      
    • 编辑Hadoop的core-site.xml文件:
      nano $HADOOP_HOME/etc/hadoop/core-site.xml
      
    • <configuration>标签内添加以下配置(替换成你获取到的NameNode地址):
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://YOUR_CLUSTER_MASTER_HOSTNAME:8020</value>
      </property>
      
    • 保存退出(按Ctrl+O,回车,再按Ctrl+X)。
  5. 测试命令
    现在执行Hadoop命令试试,比如:

    hadoop fs -ls /
    

    应该能正常返回集群HDFS根目录的内容了。

方法二:无需安装CLI,直接通过gcloud或SSH操作

如果只是偶尔执行Hadoop命令,这种方法更简便:

方式1:用gcloud提交Hadoop任务

直接通过gcloud dataproc jobs submit命令执行Hadoop操作,比如:

gcloud dataproc jobs submit hadoop --region YOUR_REGION --cluster YOUR_CLUSTER_NAME --command "fs -ls /"

这个命令会把Hadoop命令提交到集群执行,并返回结果。

方式2:SSH到Dataproc主节点执行命令

Dataproc主节点默认预装了所有Hadoop工具,你可以直接SSH进去操作:

gcloud compute ssh YOUR_CLUSTER_NAME-m --region YOUR_REGION

登录成功后,就能直接使用hadoop fs -ls等命令了,操作完输入exit即可回到Cloud Shell。


内容的提问来源于stack exchange,提问作者Cezary Pokropek

火山引擎 最新活动