我刚刚开始使用Apache Hive,我正在使用我的本地Ubuntu盒子12.04,Hive 0.10.0和Hadoop 1.1.2.
按照Apache网站上的官方" 入门 "指南,我现在停留在Hadoop命令中,使用指南中的命令创建hive Metastore:
$ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
Run Code Online (Sandbox Code Playgroud)
错误是 mkdir: failed to create /user/hive/warehouse
Hive是否需要在特定模式下使用hadoop?我知道我不需要为我的Hadoop安装做太多其他更新JAVA_HOME,因此它处于独立模式.我确信Hadoop本身正在工作,因为我运行了hadoop安装附带的PI示例.
此外,另一个要创建的命令/tmp显示该/tmp目录已存在,因此它没有重新创建,并/bin/hadoop fs -ls列出了当前目录.
那么,我该如何解决呢?
我试图弄清楚如何使用URL重写和应用程序请求路由(ARR)来重写同一服务器上的不同应用程序池.
在简化版本中,这就是我所拥有的:REST服务API使用2个虚拟目录Service.A和B实现,因此虚拟目录是访问资源A和B的URL的一部分
获取[https://] api.mycompany.com/Service.A/A
获取[https://] api.mycompany.com/Service.B/B
我想要实现的是为没有虚拟目录名的api提供一个外部URL,显然不需要进行代码重构(合并解决方案文件和构建)
获取[https://] api.mycompany.com/A
获取[https://] api.mycompany.com/B
我实现了一个url重写规则来匹配路径中的/ A并用/Service.A/A替换,在默认网站级别的web.config中使用这样的代码,这很好.
<rewrite>
<rule name="AddServicePrefix" enabled="true">
<match url="^A[/]?.*" />
<action type="Rewrite" url="/Service.A/{R:0}" />
</rule>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
问题是,当我为Service.A(从默认网站的应用程序池)分配不同的应用程序池时,这将立即失败并出现403错误,但这是我们要求运行应用程序/虚拟目录的要求在不同的应用程序池下,以最小化任何池出现故障或回收时的影响.
我做了一些研究.下面的上一篇文章基本上说"如果你想将请求重新路由到另一个应用程序池,你必须跳一跳,无论是跳过winsock还是命名管道还是其他什么"没有太多细节.我也通过ARR指南,但无法弄清楚如何在这种情况下使用ARR.
http://forums.iis.net/t/1151510.aspx?Rewrite+across+application+pools+
有帮助吗?建议和评论我是否朝着正确的方向前进?
谢谢!
哦,忘记提及环境:目前在开发环境中,Windows 7上的IIS 7.5,Url Rewrite 2.0和ARR 3.0,由Web Platform Installer安装.