我想让oryx在google计算引擎上运行。我创建了一个新示例并通过以下方式安装了oryx:
git clone https://github.com/cloudera/oryx.git
cd oryx
mvn -DskipTests install
并将此安装保存为google计算引擎上的图像(“oryx图像”)。
我发现oryx和google文件系统(hadoop2.4.1和googlecloudstorageconnectorforhadoop)存在问题,我一直使用hdfs://作为默认文件系统。
查找在google计算引擎上启动的默认hadoop包的问题(例如,没有snappy库,这是默认oryx配置所需要的),我还尝试创建自己的hadoop2.4.1 tarball,其中包含snappy,并遵循以下说明:如何通过hadoopcluster为googlecomputeengine启用snappy/snappy编解码器(旁注:这里描述的jdk版本对oryx足够吗?)。然后,我使用已安装oryx的保存图像(“oryx图像”):
./bdutil --bucket <some-bucket> --image oryx-image -n $number \
--env_var_files hadoop2_env.sh --default_fs hdfs
还有我保存的hadoop tarball:
# File: hadoop2_env.sh
HADOOP_TARBALL_URI="gs://<some-bucket>/hadoop-2.4.1.tar.gz"
在google计算引擎上部署hadoop2.4.1(带snappy)集群(默认文件系统=hdfs://)。还是不走运。
我可以在gce上成功地运行test hadoop作业,在gce上测试snappy实现(参见第二个链接),并从主节点在gce上本地测试oryx作业:
# File: oryx.conf
model.local-data = true
model.local-computation = true
唯一的问题是如何让oryx在google计算引擎上成功运行,数据格式为hdfs://或gs://。
我发现了许多关于环境变量变化等的不同说明,我不知道哪些是必要的,哪些可能会导致更多的问题。我想知道是否有关于在gce上安装/运行oryx的文档。也许有人已经经历了相同的过程,可以提供指导和/或至少确认成功安装?
在gce上安装hadoop2.4.1和snappy的说明(见第二个链接)非常棒。我希望能找到一些与所有必要的步骤,使oryx从零开始在gce工作的细节水平。
谢谢!
2条答案
按热度按时间2wnc66cl1#
我不知道这是否是一个直接的答案,但我可以在这里评论几点。我认为这里的很多问题是如何在gce上安装并运行标准hadoop。
我从来没有在gce上运行过它,但不管它是在裸机上运行,还是在gce或ec2上运行,这都没有直接关系。它只是使用hadoop。是的,它确实假设hadoop和hdfs(我认为硬编码hdfs://可以删除,当然;我不知道这是否能使它与非hdfs文件系统一起工作。)因此,如果gce默认有一个不同的文件系统,那么最好的办法就是使用hdfs。
我想我认为snappy是hadoop安装所必需的一部分。如果你是手工安装hadoop,是的,我认为你必须采取更多的步骤。这就是为什么我推荐一个(免费的,开源的)发行版来帮你解决这个问题。
它还应该设置
HADOOP_CONF_DIR
对你来说,嗯,我也倾向于认为这是hadoop设置的一个必要部分,至少在客户端是这样。任何版本的Java6或更高版本都可以。
可以试试发行版吗?可能会少很多痛苦。很抱歉,我这里没有进一步的说明,但它似乎是一个gce<->hadoop问题更多的hadoop<->oryx。如果应用程序可以改变的方式,使其更好地适应gce,我可以这样做。
6qftjkof2#
我找到了一个不那么优雅的“解决方案”来解决这个问题。googlecomputeengine提供的标准版本hadoop-2.4.1实际上有一些很好的库,只是它们不在“正确”的位置。因此,我将所有snappy库文件从它们的默认位置(/usr/lib/)复制到java库目录。显然只需要其中一行,但我还没有花时间去发现哪一行是正确的:
当然,这与其说是一个解决方案,不如说是一个变通办法。我想将snappy库目录添加到正确的路径也可以。