jdk,hadoop,hbase,mysql已安装
下载并解压
/datas/apps/hive-2.1.1
修改环境变量
sudo vi /etc/profile
export HIVE_HOME=/datas/apps/hive-2.1.1
export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH
刷新环境
source /etc/profile
修改Hive的配置文件
复制文件
cd /datas/apps/hive-2.1.1/conf/
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
hive-env.sh
vi hive-env.sh
export HADOOP_HOME={Hadoop安装路径}
export HIVE_CONF_DIR=/datas/apps/hive-2.1.1/conf
在hdfs上创建文件夹
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir -p /user/hive/tmp
hadoop fs -mkdir -p /user/hive/log
hadoop fs -chmod -R 777 /user/hive/warehouse
hadoop fs -chmod -R 777 /user/hive/tmp
hadoop fs -chmod -R 777 /user/hive/log
hive-site.xml
将 hive-site.xml 文件中以下几个配置项的值设置成上一步中创建的几个路径
<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
</property>
#MySQL 数据库连接信息
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
#把{system:java.io.tmpdir} 改成 /datas/apps/hive-2.1.1/tmp
#把{system:user.name} 改成 {user.name}
创建tmp文件
mkdir /datas/apps/hive-2.1.1/tmp
配置jdbc驱动包
将mysql-connector-java-5.1.40.jar拷贝到$HIVE_HOME/lib下
初始化hive
从 Hive 2.1 版本开始, 我们需要先运行 schematool 命令来执行初始化操作。
schematool -dbType mysql -initSchema
如果是升级到2.1.1的,可能会出现
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version
意思是没有找到 metastore(用的是mysql,升级之前还是好好的)
原因:
之前用的hive-1.2.1,mysql连接metastore使用的user用户为hive,可能元数据删除不干净或者有某些配置文件无法删除掉
解决:
使用另一个user
mysql> create user 'hive1'@'%' identified by 'hive1';
mysql> grant all on *.* to 'hive1'@localhost identified by 'hive1';
mysql> flush privileges;
修改hive-site.xml的连接用户名和密码为刚创建的hive1即可
再次初始化schematool -dbType mysql -initSchema
检测hive 是否成功 直接在命令行输入hive即可
参考:
http://blog.csdn.net/u013310025/article/details/70306421