java - 在 Google Compute Engine 上成功安装 Oryx?

标签 java hadoop google-compute-engine oryx

我正在尝试在 Google Compute Engine 上启动并运行 Oryx。我创建了一个新实例并通过以下方式安装了 Oryx:

git clone https://github.com/cloudera/oryx.git
cd oryx
mvn -DskipTests install

并将此安装保存为 Google Compute Engine 上的图像(“oryx-image”)。

查找 Oryx 和 Google 文件系统的问题 (Hadoop 2.4.1 and Google Cloud Storage connector for Hadoop) 我一直在使用 hdfs://作为默认文件系统。

发现在 Google Compute Engine 上启动的默认 Hadoop 包存在问题(例如,没有 默认 Oryx 配置所需的 Snappy 库),我还尝试创建自己的 Hadoop 2.4.1包含 Snappy 的 tarball 遵循这些说明:How to enable Snappy/Snappy Codec over hadoop cluster for Google Compute Engine (旁注:此处描述的 jdk 版本是否足以满足 oryx 的需求?)。然后我使用我保存的安装了 oryx 的图像(“oryx-image”):

./bdutil --bucket <some-bucket> --image oryx-image -n $number \
    --env_var_files hadoop2_env.sh --default_fs hdfs

和我保存的 Hadoop 压缩包:

# File: hadoop2_env.sh
HADOOP_TARBALL_URI="gs://<some-bucket>/hadoop-2.4.1.tar.gz"

在 Google Compute Engine 上部署 Hadoop 2.4.1(带 Snappy)集群(默认文件系统 = hdfs://)。仍然没有运气。

我可以在 GCE 上成功运行测试 Hadoop 作业,在 GCE 上测试 Snappy 实现(参见 second link ),并从主节点本地在 GCE 上测试 Oryx 作业:

# File: oryx.conf
model.local-data = true
model.local-computation = true  

唯一的问题是让 Oryx 在 Google Compute Engine 上成功运行,数据位于 hdfs://或 gs://中。

我发现了很多关于环境变量变化等的不同指令,我不知道哪些是必要的,哪些可能会导致更多的问题。我想知道是否有关于在 GCE 上安装/运行 oryx 的文档。也许有人已经完成了相同的过程并且可以提供说明和/或至少确认安装成功?

在 GCE 上使用 Snappy 安装 Hadoop 2.4.1 的说明(在 second link 中找到)非常棒。我希望找到有关使 oryx 从头开始​​在 GCE 上运行所需的所有步骤的详细信息。

谢谢!

最佳答案

我不知道这是否是一个直接的答案,但我可以在这里评论几点。我认为这里的很多问题都是在 GCE 上安装和运行标准的 Hadoop。

我从未在 GCE 上运行过它,但这与它是在裸机上运行还是在 GCE 或 EC2 上运行无关紧要。它只是使用 Hadoop。是的,它确实采用了 Hadoop 和 HDFS。 (我认为硬编码 hdfs://可以删除,当然;我不知道这是否可以让它与非 HDFS 文件系统一起工作。)所以如果 GCE 默认有一个不同的文件系统,是的,你最好的选择就是使用HDFS。

我想我认为 Snappy 是 Hadoop 安装的必需部分。如果您手动安装 Hadoop,是的,我认为您必须执行更多步骤。这就是为什么我会推荐一个(免费、开源)发行版来为您解决这个问题。

它还应该为您设置诸如 HADOOP_CONF_DIR 之类的东西,嗯,我也倾向于将其视为一般 Hadoop 设置的必需部分,至少在客户端是这样。

任何版本的 Java 6 或更高版本都可以。

是否可以尝试发行版?痛苦可能会少得多。很抱歉,我在这里没有进一步的说明,但它似乎是一个 GCE<->Hadoop 问题,而不是 Hadoop<->Oryx。如果应用程序可以改变方式以使其更好地适应 GCE,我可以做到。

关于java - 在 Google Compute Engine 上成功安装 Oryx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26430087/

相关文章:

java - 通过 org.w3c.dom API 公开 JAXB 注解的对象

java - 如何使用 Objectify 在 Google Cloud Platform 中的多个实体上使用事务?

hadoop - 使用LoadIncrementalHFiles和子目录进行批量加载

python - 如何使用 python/listing docker images 获取 GCR 访问 token

java - 将 Tab 字符粘贴到 TextField 时破坏 JavaFX

java - 自定义对象上的 Eclipse 对象信息框

来自 Cloudera Manager 的电子邮件警报

hadoop - flume命令卡住,无法创建序列生成器

google-cloud-platform - 在 GCP 中停止连接本地 SSD 的 VM 实例

monitoring - 如何在 Google Compute Engine 中监控永久性磁盘上的可用空间?