Hive部署
前几天部署了个hive,感觉挺简单,稍微记录下。
环境:Hadoop,hbase都已经装过了,只需要装个mysql就可以装hive了
mysql和hive不是必须要装到hadoop master或datanode节点的
只要在你部署的那台机器上有hadoop并且这个hadoop的配置能够正确的指向hadoop的master的地址
mysql:
可以下载个rpm包装上去就可以了,然后可以通过MySQL-Front连上去创建
一个数据库,并创建一个给hive用的账号密码。
需要注意的是将新创建数据库的权限赋给hive用于的时候
grant all on *.* to hive账号@主机登录地址 Identified by 'hive用户的密码';
主机登录地址设置为localhost那么,你只能在本机可以登录,否则在外部链接过去,是登录不上的
hive:
下载个包解压后,在hive/bin/hive-config.sh中
指定JAVA_HOME,HADOOP_HOME,HIVE_HOME就可以了
然后在将conf目录中的几个template后缀的文件cp一下,如cp 文件名.template 文件名
在hive-site.xml中需要修改几个值,如下:
1.其中localhost就是你数据库的位置,如果之前设置的登陆地址不是指一个指定的地址
那么这里也需要指定,否则会连接不上,端口mysql默认的是3306,hivedb就是在mysql中
创建的数据库
2.另外的hive在hdfs上的元数据存储位置,可以默认不用改
- <property>
- <name>hive.exec.scratchdir</name>
- <value>/你想要存放的目录/hive-${user.name}</value>
- <description>Scratch space for Hive jobs</description>
- </property>
- <property>
- <name>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value>
- <description>JDBC connect string for a JDBC metastore</description>
- </property>
- <property>
- <name>javax.jdo.option.ConnectionDriverName</name>
- <value>com.mysql.jdbc.Driver</value>
- <description>Driver class name for a JDBC metastore</description>
- </property>
- <property>
- <name>javax.jdo.option.ConnectionUserName</name>
- <value>mysql中创建的hive用户的用户名</value>
- <description>username to use against metastore database</description>
- </property>
- <property>
- <name>javax.jdo.option.ConnectionPassword</name>
- <value>mysql中创建的hive用户的密码</value>
- <description>password to use against metastore database</description>
- </property>
在hive-log4j配置文件中:
1.将log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
改成log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
否则会有警告提示
2.将hive.log.dir=改成你要存储的log目录
将hive.log.file=改成你想要的名字
然后就可以启动了,启动的时候,会有提示querylog的存放地址,默认是在/tmp/用户名/**.log
你可以在启动的时候指定querylog存放地址
hive/bin/hive -hiveconf hive.querylog.location=/你要存放querylog的目录
如果觉得比较麻烦,那么可以做成alias这样就可以少写一些
启动后你可以试试创建一个表,然后show tables看看