1.安装hive 2.1.1
#解压:
tar -zxvf apache-hive-2.1.1-bin.tar.gz
#把解压后的文件移到目录
/usr/local/下:
mv apache-hive-2.1.1-bin /usr/local/apache-hive-2.1.1
#配置hive环境变量
vim /etc/profile
--------------------------------------------------
HIVE_HOME=/usr/local/apache-hive-2.1.1
HIVE_CONF_DIR=$HIVE_HOME/conf
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH HADOOP_HOME HIVE_HOME HIVE_CONF_DIR
-------------------------------------------------
#使配置文件的修改生效
source /etc/profile
2.配置hive
2.1.配置hive-site.xml
#进入目录
cd $HIVE_CONF_DIR
#拷贝hive-default.xml.template并重命名为hive-site.xml
cp hive-default.xml.template hive-site.xml
#编辑hive-site.xml
vim hive-site.xml
2.1.1 使用hadoop新建hdfs目录
因为在hive-site.xml中有这样的配置:
<name>
hive.metastore.warehouse.dir
</name>
<value>
/user/hive/warehouse
</value>
<name>
hive.exec.scratchdir
</name>
<value>
/tmp/hive
</value>
所以要在Hadoop集群新建/user/hive/warehouse目录,执行命令
cd $HADOOP_HOME
#进入Hadoop主目录
bin/hadoop fs -mkdir -p /user/hive/warehouse
#创建目录
bin/hadoop fs -chmod -R 777 /user/hive/warehouse
#新建的目录赋予读写权限
bin/hadoop fs -mkdir -p /tmp/hive/
#新建/tmp/hive/目录
bin/hadoop fs -chmod -R 777 /tmp/hive
#目录赋予读写权限
#用以下命令检查目录是否创建成功
bin/hadoop fs -ls /user/hive
bin/hadoop fs -ls /tmp/hive
2.1.2.修改hive-site.xml中的临时目录
将hive-site.xml文件中的${system:java.io.tmpdir}替换为hive的临时目录,例如我替换为/usr/local/apache-hive-2.1.1/tmp/,该目录如果不存在则要自己手工创建,并且赋予读写权限。
cd $HIVE_HOME
mkdir tmp
chmod -R 777 tmp/
例如原来:
<property>
<name>hive.downloaded.resources.dir
</name><value>${system:java.io.tmpdir}/${hive.session.id}_resources
</value>
<description>
Temporary local directory for added resources in the remote file system.
</description>
</property>
替换为:
<property>
<name>
hive.downloaded.resources.dir
</name>
<!--value>${system:java.io.tmpdir}/${hive.session.id}_resources</value-->
<value>
/user/local/apache-hive-2.1.1/tmp/${hive.session.id}_resources
</value>
<description>
Temporary local directory for added resources in the remote file system.
</description>
</property>
2.1.3.将配置文件中${system:user.name}都替换为root
例如原来:
<property>
<name>
hive.server2.logging.operation.log.location
</name><value>${system:java.io.tmpdir}/${system:user.name}/operation_logs
</value>
<description>
Top level directory where operation logs are stored if logging functionality is enabled
</description>
</property>
替换为:
<property>
<name>
hive.server2.logging.operation.log.location
</name>
<value>
/user/local/apache-hive-2.1.1/tmp/root/operation_logs
</value>
<description>
Top level directory where operation logs are stored if logging functionality is enabled
</description>
</property>
说明: 以上给出的只是配置文件中截取了几处以作举例,你在替换时候要认真仔细的全部替换掉。
2.1.4.修改hive-site.xml数据库相关的配置
2.1.4.1.javax.jdo.option.ConnectionDriverName,将该name对应的value修改为MySQL驱动类路径:
<property
<name>javax.jdo.option.ConnectionDriverName
</name
<value>com.mysql.jdbc.Driver
</value>
</property>
2.1.4.2.javax.jdo.option.ConnectionURL,将该name对应的value修改为MySQL的地址:
<name>
javax.jdo.option.ConnectionURL
</name>
<value>
jdbc:mysql://192.168.56.101:3306/hive?createDatabaseIfNotExist=true
</value>
2.1.4.3.javax.jdo.option.ConnectionUserName,将对应的value修改为MySQL数据库登录名:
<name>javax.jdo.option.ConnectionUserName
</name>
<value>root
</value>
2.1.4.4.javax.jdo.option.ConnectionPassword,将对应的value修改为MySQL数据库的登录密码:
<name>javax.jdo.option.ConnectionPassword
</name><value>*******
</value>
2.1.4.5.将MySQL驱动包上载到Hive的lib目录下
cp /home/dtadmin/spark_cluster/mysql
-connector-java-5.1.36.jar
$HIVE_HOME/lib
/
2.2.新建hive-env.sh文件并进行修改
cd $HIVE_CONF_DIR
cp hive-env.sh.template hive-env.sh #基于模板创建
hive-env.sh
vim hive-env.sh #编辑配置文件并加入以下配置:
-------------------------------------------------
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export HIVE_CONF_DIR=/usr/local/apache-hive-2.1.1/conf
export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-2.1.1/lib
--------------------------------------------------
3.启动和测试
3.1.对MySQL数据库初始化
先将mysql的驱动包放到hive/lib下
#进入到hive的bin目录
cd $HIVE_HOME/bin
#对数据库进行初始化
schematool -initSchema -dbType mysql
执行成功后查看相对应的mysql数据库会生成相应的表。
./hive 可以进入hive的命令 行并执行命令。