10大数据-hive 环境搭建

1、将apache-hive-1.2.1-bin.tar.gz上传到以下目录

(这个目录可以自定义,我惯用这个)
/opt/modules/app

2、解压到当前目录,并且重命名为hive

tar -xzvf apache-hive-1.2.1-bin.tar.gz

3、配置环境变量

进入环境变量配置文件:

vi /etc/profile

追加以下内容:

export HIVE_HOME=/opt/modules/app/hive
export PATH=$PATH:$HIVE_HOME/bin

修改完环境变量,使用以下语句,使该环境变量生效:

resource /etc/profile

测试环境变量看是否配置成功:

echo $HIVE_HOME

image.png

运行结果

扫描二维码关注公众号,回复: 4888008 查看本文章

4、配置hive参数

所需配置文件所在目录:/opt/modules/app/hive/conf

1、拷贝 hive-default.xml ,hive-env.sh 模板

cp hive-default.xml.template  hive-default.xml  

cp hive-env.sh.template   hive-env.sh  

2、创建hive-site.xml

touch hive-site.xml  

3、配置hive-env.sh

在hive-env.sh文档中追加以下内容:

export JAVA_HOME=/opt/modules/jdk1.8
export HIVE_HOME=/opt/modules/app/hive
export HADOOP_HOME=/opt/modules/app/hadoop

4、配置hive-site.xml

配置该文件,需要首先在hive 下创建tmp目录
然后将以下内容填写到hive-site.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration> 
<property>
   <name>javax.jdo.option.ConnectionURL</name>
   <value>jdbc:mysql://localhost:3306/hive?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>
</property>

<property>
   <name>javax.jdo.option.ConnectionUserName</name>
   <value>root</value>
</property>

<property>
   <name>javax.jdo.option.ConnectionPassword</name>
   <value>root</value>
</property>

<property>      
        <name>hive.querylog.location</name>     
        <value>/opt/modules/hive/tmp</value>   
</property>    

<property>      
        <name>hive.exec.local.scratchdir</name>     
        <value>/opt/modules/hive/tmp</value>   
</property>   

<property>   
        <name>hive.downloaded.resources.dir</name>     
        <value>/opt/modules/hive/tmp</value>   
</property>

<property>
        <name>datanucleus.schema.autoCreateAll</name>
        <value>true</value>
</property>
### beeline连接hive的thrift服务,用户名密码设置
<property>
    <name>hive.server2.thrift.client.user</name>
    <value>root</value>
    <description>Username to use against thrift client</description>
  </property>
  <property>
    <name>hive.server2.thrift.client.password</name>
    <value>root</value>
    <description>Password to use against thrift client</description>
  </property>
</configuration>

5、上传mysql驱动jar

下载mysql驱动文件mysql-connector-java-5.1.7-bin.jar,并上传到到/opt/modules/app/hive/lib目录下。

6、初始化hive

命令:schematool -initSchema -dbType mysql
最后显示schemaTool completed,没有报错就成功了。

7、启动hive

输入命令:hive

注意:在启动hive之前确保hadoop是启动的

常见问题

1.Permission denied: user=dr.who, access=READ_EXECUTE, inode="/tmp":root:supergroup:drwx------

修改一下权限

[root@hadoop01 bin]# ./hdfs dfs -chmod -R 777 /tmp

2.hive启动beeline连接报错: User: xxx is not allowed to impersonate anonymous (state=08S01,code=0)

解决方式:在hadoop的配置文件core-site.xml增加如下配置,重启hdfs,其中“xxx”是连接beeline的用户,将“xxx”替换成自己的用户名即可

<property>
    <name>hadoop.proxyuser.xxx.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.xxx.groups</name>
    <value>*</value>
</property>

“*”表示可通过超级代理“xxx”操作hadoop的用户、用户组和主机

如果在hive之前安装了spark,可能出现以下错误:

初次启动hive,解决 ls: cannot access /home/hadoop/spark-2.2.0-bin-hadoop2.6/lib/spark-assembly-.jar: No such file or directory问题
spark升级到spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-
.jar已经不存在,所以hive没有办法找到这个JAR包。

解决方法

打开hive的安装目录下的bin目录,找到hive文件

cd $HIVE_HOME/bin
vi hive

找到下图中的位置

将鼠标定位的位置,更改成下图


 

猜你喜欢

转载自blog.csdn.net/zhang__rong/article/details/86250390