我一直在教自己在hive-1.1.0的情况下使用Hadoop(2.6.0)和相关的应用程序。我使用Hadoop for Dummies页面237上的信息运行hwi服务器,但按照那里的说明,我一直在运行一条错误消息,说明在hive-1.1.0 / lib中找不到WAR文件。
我必须配置$HIVE_HOME/config/hive-site.xml
文件以指向此WAR文件在hive-1.1.0/lib
中的位置,但是当我运行命令启动hwi服务器时,它会启动但会因为运行此命令而中断,路径中的一些行(应该来自我在hive-site.xml中的定义)是重复的,因此命令找不到WAR文件。我附上了我的hive-site.xml文件的屏幕截图以及运行命令hive --service hwi
时发生的结果。
$HIVE_HOME/config/hive-site.xml
档案的相关部分
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- Hive Execution Parameters -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/home/hadoop/Hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>hive.hwi.war.file></name>
<value>$HIVE_HOME/lib/hive-hwi.0.12.0.war</value>
<description> This is the WAR file with the jsp content for Hive Web Interface</description>
</property>
</configuration>
在这个版本的Hive上,没有WAR文件,我按照建议从hive-0.12.0复制了hive-hwi.0.12.0.war
以下结果:
[hadoop@fedora21_2 ~]$ hive --service hwi
15/04/05 15:53:02 INFO hwi.HWIServer: HWI is starting up
15/04/05 15:53:04 WARN conf.HiveConf: HiveConf of name hive.hwi.war.file> does not exist
15/04/05 15:53:04 FATAL hwi.HWIServer: HWI WAR file not found at /home/hadoop/hive-1.1.0/home/hadoop/hive-1.1.0/lib/hive-hwi-0.12.0.war
[hadoop@fedora21_2 ~]$
看起来当我运行命令加载HWI服务时,命令以某种方式破坏了hive-site.xml中发布的WAR文件的路径。不知道我在这里缺少什么。
答案 0 :(得分:0)
从以下位置更改此属性:
<property>
<name>hive.hwi.war.file</name>
<value>{$HIVE_HOME}/lib/hive-hwi-[version].war</value>
</property>
为:
<property>
<name>hive.hwi.war.file</name>
<value>/lib/hive-hwi-[version].war</value>
</property>
您遇到了问题,因为最终执行路径变为{$ HIVE_HOME} / {$ HIVE_HOME} / lib / hive-hwi- [version] .war
这是因为您在阅读配置文件时已经在{$ HIVE_HOME}目录。
因此,如果从配置中删除{$ HIVE_HOME},则会获得{$ HIVE_HOME} / lib / hive-hwi- [version] .war这是正确的路径。
在您的情况下,[版本] = 0.12.0
答案 1 :(得分:0)
在配置单元中创建一个文件夹
// Azure app service will send the x-ms-client-principal-id when authenticated
app.Use(async (context, next) =>
{
// Create a user on current thread from provided header
if (context.Request.Headers.ContainsKey("X-MS-CLIENT-PRINCIPAL-ID"))
{
// Read headers from Azure
var azureAppServicePrincipalIdHeader = context.Request.Headers["X-MS-CLIENT-PRINCIPAL-ID"][0];
var azureAppServicePrincipalNameHeader = context.Request.Headers["X-MS-CLIENT-PRINCIPAL-NAME"][0];
// Create claims id
var claims = new Claim[] {
new System.Security.Claims.Claim("http://schemas.microsoft.com/identity/claims/objectidentifier", azureAppServicePrincipalIdHeader),
new System.Security.Claims.Claim("name", azureAppServicePrincipalNameHeader)
};
// Set user in current context as claims principal
var identity = new GenericIdentity(azureAppServicePrincipalIdHeader);
identity.AddClaims(claims);
// Set current thread user to identity
context.User = new GenericPrincipal(identity, null);
};
await next.Invoke();
});
并在其中粘贴lib的所有文件,然后运行命令
home/hadoop/hive-1.1.0/lib
可以解决时间错误。