Hive 部署与其他

按照hadoop权威指南中文版第二版中,374页的内容,
部署hive。

部署模式 remote metastore。

1,配置好mysql。
2,按照mysql的url、数据库名称,用户名、密码,配置hive的javax.jdo.*参数。
3,启动matestore服务。hive --service metastore
默认端口用的是9083,也可以通过METASTORE_PORT环境变量指定。
(nohup ./bin/hive --service metastore >> metastoreServer.log 2>&1 &)


4,配置hive的client参数,hive.metastore.local为false,以及hive.metastore.uris为对应服务的uri。

配置参数的格式详见:https://cwiki.apache.org/Hive/adminmanual-metastoreadmin.html


5,开启hive server,这样就可以通过JDBC访问hive了。
开启代码如下:nohup ./bin/hive --service hiveserver >> hiveserver.log 2>&1 &
默认的JDBC端口是10000,可以通过环境变量指定端口export HIVE_PORT=xxxxx。
在hive-env.sh里面添加即可


注意:
1,hive --service metastore用哪个用户(linux)启动,所用通过该metastore的hive操作对应到hdfs文件系统中,都是通过该用户进行的。所以,对hdfs的权限需要注意下。
2,hive-default.xml中居然漏掉了hive.metastore.uris这个参数,自己加到hive-site.xml里面吧。



---------------
我要修改一个列的名称,原始列名为_c1
然后我执行:ALTER TABLE userPostCount1 CHANGE _c1 aaa INT;
会报错:FAILED: Parse Error: line 1:34 mismatched input '_c1' expecting Identifier near 'CHANGE' in rename column name

网上找到的解决方案:ALTER TABLE userPostCount1 CHANGE `_c1` aaa INT;
然后就ok了,貌似是下划线开头为特殊字符或者什么的。

注意,在 _c1 两边的符号不是单引号,而是shift加上大键盘数字1前面的那个键。

你可能感兴趣的:(hive)