设为首页收藏本站

小牛社区-大数据学习交流社区|大数据免费学习资源

 找回密码
 立即注册!

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 118|回复: 0

爱尚实训解读hadoop的安装总结(二)——hive的安装

[复制链接]

162

主题

0

帖子

8

积分

吃土小白

Rank: 1

积分
8
发表于 2018-2-3 02:58:03 | 显示全部楼层 |阅读模式
在上一篇《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. 解压hive到apps/目录
[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
在这个配置文件中编辑


javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.33.5:3306/hive?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore


javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore


javax.jdo.option.ConnectionUserName
root
username to use against metastore database


javax.jdo.option.ConnectionPassword
123456
password to use against metastore database


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. 安装hive和mysq完成后,将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包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的
/home/hadoop/apps/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
先删除hadoop的jline
[hadoop@hdp-01 lib]$ rm /home/hadoop/apps/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
再拷贝hive的lib目录中jline.2.12.jar的jar包拷贝到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-01是hiveserver2所启动的那台主机名,端口默认是10000)
由于没有配置hive的用户名和密码(没有意义),所以输入用户的时候,就是启动hive的用户hadoop密码是空就OK
总结心得:hive依赖于一台mysql作为元数据存储,但是mysql与hive结合,不知为什么要求mysql的编码集必须为latin1,如果是uft-8的编码集,在hive中drop表等一些update的语句是没有响应的(阻塞),因此,不能忽略mysql的编码集。下一篇将分享hadoop的HA集群的安装文档

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册!

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册!

本版积分规则

快速回复 返回顶部 返回列表