Hive安装配置,
参考贴:https://blog.csdn.net/just4you/article/details/79981202
http://dblab.xmu.edu.cn/blog/hive-in-practice/#more-509
https://www.cnblogs.com/K-artorias/p/7141479.html
参考书:Hadoop大数据处理技术基础与实践 p196-217
本次实验步骤较多,容易出错,且各个帖子之间,帖子与书出入都较大,容易混淆,请参照本文提示,并对照书与参考贴进行实验。以下操作均在root用户下进行,如果在hadoop用户下运行,过程中可能会出现权限不够的问题,请按照帖子进行赋权
一.安装mysql
1.采用指令安装(这里是ubuntu指令,其他系统参照书P196安装)
(1)sudo apt-get install mysql-server
(2)sudo apt-get install mysql-client
(3)sudo apt-get install libmysqlclient-dev
如果出现 :无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
按照https://blog.csdn.net/microfhu/article/details/7669010
强制解锁解决。
安装过程会让你给数据库root用户输入密码,不要忽略。然后通过如下命令检查是否安装成功:
sudo netstat -tap | grep mysql
登录验证:
mysql -u root -p
输入密码,就可以登录到mysql了,可以执行show databases;
查看数据库。(指令以 ; 作为结束,记得打上 ; 再回车执行指令)
2. 创建数据库
可参照书p196创建数据库hiveDB,或按照各个参考贴创建数据库hive或者其他。只要与后面配置文件对应即可,这里记住自己的选择。
至于创建用户(p196),可以选择创建新用户并赋权限(如果用新用户,一定要赋权限)。或者直接使用root用户与密码,省略创建新用户的过程,只要与后面配置文件对应即可,记住自己的选择,配置文件时需要填写这个。
二. 下载安装hive
1. 官网下载
http://mirror.bit.edu.cn/apache/hive/
这里我选择的是1.2.2版本,新旧版本有少许不同,如果安装其他版本,请再与对应版本参考贴对照安装。
解压安装到 /usr/local (或者你喜欢的位置,但要记住安装路径,后面会多次使用)
tar -xvf apache-hive-1.2.2-bin.tar
并重命名为hive,便于以后操作。
2.设置环境变量
设置 /etc/profile 文件(或者~/.bashrc文件)
添加路径,添加完毕后 source文件,使之生效。
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
3.复制/hive/conf下文件hive-env.sh.template (模板文件,用来参照修改的)并重命名为hive-env.sh ,添加如下内容:
(以下是我的路径,请将路径改为自己的。这里是比较全的版本,按照书上只添加hadoop路径似乎也不会出错)
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export HADOOP_HOME=/home/hadoop/hadoop2.4
export HIVE_HOME=/usr/local/hive
export HIVE_CONF_DIR=/usr/local/hive/conf
4./hive/conf下新建文件 hive-site.xml 添加如下内容。
(hive-site.xml也有相应的template文件,但是里面内容太多,修改起来太麻烦,容易出错,所以不再复制修改,直接创建文件重写内容)
(以下是我的文件内容,并不是最全的版本,可以参照参考贴和书自己删减或者增添内容)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.exec.scratchdir</name>
<value>hdfs://node:9000/user/hive/tmp</value>
(这里node是主机名,大家按照/etc/hosts中自己的主机名修改)
</property> (这里的文件夹下一步再创建,这里先写上)
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://node:9000/user/hive/warehouse</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>hdfs://node:9000/user/hive/log</value>
</property>
<property>
<name>javax.jdo.option.Multithreaded</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
(这里的网址为/etc/hosts里面的网址,写主机名可能会出错,所以直接写网址,端口号为mysql默认端口号3306,不用修改)
(这里的hive就是mysql创建的数据库,如果是按照书上创建的hiveDB,这里就写hiveDB)
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
(这里的root和下面的password是上面步骤登录mysql使用的,如果之前选择创建使用新用户,这里就写新用户的名字和密码)
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>yf303</value>
</property>
</configuration>
5.在hdfs上创建上面使用的文件夹并赋予最高权限777
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod -R 777 /user/hive/warehouse
hadoop fs -chmod 777 /user/hive/tmp
hdfs dfs -chmod -R 777 /user/hive/tmp
hdfs dfs -chmod -R 777 /user/hive/log
6.查找mysql-connector-java-x.y.z-bin.jar 包(安装mysql后mysql的安装目录里就会有,在计算机里查找就行),复制放到/usr/local/hive/lib目录下。(也可以自行下载)
7.更新jline.jar(好像有的版本不做这步也可以)
在早期Hadoop版本中 jline.jar的版本是0.9+ 使用这个版本会报错,所以要替换成新版本的Jar包;
新的jline.jar包下载地址: http://maven.outofmemory.cn/jline/jline/2.12.1/
(就在hive/lib下面,直接这里复制就可以,可以不下载)
进入路径cd ~/hadoop-2.6.1(即自己hadoop安装路径)
/share/hadoop/yarn/lib
删除jlin-0.9.94.jar
替换成新的版本 jline-2.12.1.jar
全部完成后,先打开hadoop,再输入hive,成功进入shell界面后就算成功。
如果不成功,参照下面帖子,或者复制error信息自行查询。
常见错误:https://www.jianshu.com/p/d9cb284f842d
https://blog.csdn.net/wanghaiyuan1993/article/details/46272553
https://blog.csdn.net/u014432433/article/details/51226582
三.Hive shell操作
成功进入Hive shell后,参照书进行操作,之前安装配置成功,这里会比较顺利,不再赘述。