hadoop的安装总结(二)--hive的安装

        在上一篇《hadoop的安装总结(一)--hadoop集群基础安装》环境基础上,增加一台mysql主机,作为hive的元数据的存储数据库,配置如下:

四、hadoop集群上安装hive(安装hive只需要在一台机器上安装就可以)

1. 拷贝hive到其中一台机器上

[hadoop@hdp-01 ~]$ ll

总用量 90676

-rw-rw-r--. 1 hadoop hadoop 92834839 9月  21 23:52 apache-hive-1.2.1-bin.tar.gz

drwxrwxr-x. 3 hadoop hadoop     4096 1月   5 20:04 apps

drwxrwxr-x. 3 hadoop hadoop     4096 1月   5 21:39 hdpdata

-rw-rw-r--. 1 hadoop hadoop     4101 1月   6 11:22 wc.jar

 

2. 解压hiveapps/目录

[hadoop@hdp-01 ~]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C apps/

进入 apps/后,将apache-hive-1.2.1-bin改名为hive

[hadoop@hdp-01 apps]$ mv apache-hive-1.2.1-bin/ hive/

 

3. 进入hive的安装目录

[hadoop@hdp-01 hive]$ ll

总用量 476

drwxrwxr-x. 3 hadoop hadoop   4096 1月   6 23:02 bin

drwxrwxr-x. 2 hadoop hadoop   4096 1月   6 23:02 conf

drwxrwxr-x. 4 hadoop hadoop   4096 1月   6 23:02 examples

drwxrwxr-x. 7 hadoop hadoop   4096 1月   6 23:02 hcatalog

drwxrwxr-x. 4 hadoop hadoop   4096 1月   6 23:02 lib

-rw-rw-r--. 1 hadoop hadoop  24754 4月  30 2015 LICENSE

-rw-rw-r--. 1 hadoop hadoop    397 6月  19 2015 NOTICE

-rw-rw-r--. 1 hadoop hadoop   4366 6月  19 2015 README.txt

-rw-rw-r--. 1 hadoop hadoop 421129 6月  19 2015 RELEASE_NOTES.txt

drwxrwxr-x. 3 hadoop hadoop   4096 1月   6 23:02 scripts

 

修改配置文件 进入conf/

[hadoop@hdp-01 hive]$ cd conf

[hadoop@hdp-01 conf]$ ll

总用量 188

-rw-rw-r--. 1 hadoop hadoop   1139 4月  30 2015 beeline-log4j.properties.template

-rw-rw-r--. 1 hadoop hadoop 168431 6月  19 2015 hive-default.xml.template

-rw-rw-r--. 1 hadoop hadoop   2378 4月  30 2015 hive-env.sh.template

-rw-rw-r--. 1 hadoop hadoop   2662 4月  30 2015 hive-exec-log4j.properties.template

-rw-rw-r--. 1 hadoop hadoop   3050 4月  30 2015 hive-log4j.properties.template

-rw-rw-r--. 1 hadoop hadoop   1593 4月  30 2015 ivysettings.xml

现在就可以直接启动hive了,但是hive默认使用的是单机版的数据库,我们需要另外提供一台mysql数据库(192.168.33.5

4. 配置元数据库信息,新增一个xml配置文件

[hadoop@hdp-01 conf]$ vi hive-site.xml

在这个配置文件中编辑

<configuration>

  <property>

     <name>javax.jdo.option.ConnectionURL</name>

     <value>jdbc:mysql://192.168.33.5: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>

     <description>Driver class name for a JDBC metastore</description>

  </property>

 

  <property>

     <name>javax.jdo.option.ConnectionUserName</name>

     <value>root</value>

     <description>username to use against metastore database</description>

  </property>

 

  <property>

     <name>javax.jdo.option.ConnectionPassword</name>

     <value>123456</value>

     <description>password to use against metastore database</description>

  </property>

</configuration>

 

5. 进入到hive目录下的lib目录,将mysql的驱动包拷贝过去

sftp> cd /home/hadoop/apps/hive/lib

sftp> lcd D:/大数据资料/6.hive/

sftp> put mysql-connector-java-5.1.34.jar

Uploading mysql-connector-java-5.1.34.jar to /home/hadoop/apps/hive/lib/mysql-connector-java-5.1.34.jar

  100% 937KB    937KB/s 00:00:00     

D:/大数据资料/6.hive/mysql-connector-java-5.1.34.jar: 960372 bytes transferred in 0 seconds (937 KB/s)

 

6. 安装hivemysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下

如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)

mysql -uroot -p

#(执行下面的语句  *.*:所有库下的所有表   %:任何IP地址或主机都可以连接)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

FLUSH PRIVILEGES;

Hive连接mysql数据库的时候,数据库不要使用utf-8的编码,应该使用latin1的编码,下面是配置mysql的字符编码的过程

vi /etc/my.cnf

 

编辑内容

[client]

default-character-set=latin1

 

[mysql]

no-auto-rehash

default-character-set=latin1

 

[mysqld]

datadir=/data/mysql

socket=/var/lib/mysql/mysql.sock

character-set-server=latin1

 

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

7. Jline包版本不一致的问题,需要拷贝hivelib目录中jline.2.12.jarjar包替换掉hadoop中的

/home/hadoop/apps/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar

先删除hadoopjline

[hadoop@hdp-01 lib]$ rm /home/hadoop/apps/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar

再拷贝hivelib目录中jline.2.12.jarjar包拷贝到hadoop中的

/home/hadoop/apps/hadoop-2.6.4/share/hadoop/yarn/lib目录下

[hadoop@hdp-01 ~] cp /home/hadoop/apps/hive/lib/jline-2.12.jar

 /home/hadoop/apps/hadoop-2.6.4/share/hadoop/yarn/lib

 

 

8. 启动hive

  第一种方式:在hive的安装目录下运行 bin/hive

第二种方式:

1. 先将hive启动为服务: bin/hiveserver2

2. 启动符合thrift协议的客户端(另外一台机器或者重开一个bash):

beeline> !connect jdbc:hive2://hdp-01:10000

Connecting to jdbc:hive2://hdp-01:10000

Enter username for jdbc:hive2://hdp-01:10000: hadoop

Enter password for jdbc:hive2://hdp-01:10000:

Connected to: Apache Hive (version 1.2.1)

Driver: Hive JDBC (version 1.2.1)

Transaction isolation: TRANSACTION_REPEATABLE_READ

hdp-01hiveserver2所启动的那台主机名,端口默认是10000

由于没有配置hive的用户名和密码(没有意义),所以输入用户的时候,就是启动hive的用户hadoop密码是空就OK

        总结心得:hive依赖于一台mysql作为元数据存储,但是mysql与hive结合,不知为什么要求mysql的编码集必须为latin1,如果是uft-8的编码集,在hive中drop表等一些update的语句是没有响应的(阻塞),因此,不能忽略mysql的编码集。下一篇将分享hadoop的HA集群的安装文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值