2.1.1、内嵌 Derby 版本
1、 上传安装包 apache-hive-2.3.3-bin.tar.gz
2、 解压安装包 tar -zxvf apache-hive-2.3.3-bin.tar.gz -C /home/hadoop/apps/
3、 进入到 bin 目录,运行 hive 脚本:[hadoop@hadoop02 bin]$ ./hive
注意: 1、这时候一般会报错:Terminal initialization failed; falling back to unsupported,是因为 hadoop($HADOOP_HOME/share/hadoop/yarn/lib)集群的 jline-0.9.94.jar 包版本过低, 替换成$HIVE_HOME/lib 中的 jline-2.12.jar 包即可。记住:所有 hdfs 节点都得替换 $HADOOP_HOME/share/hadoop/yarn/lib/jline-0.9.4.jar 替换成 jline-2.12.jar
2、修改 log4j.properties(如果有关于日志报错,请照此修改)
cp hive-log4j.properties.template hive-log4j.properties 将 EventCounter 修改成 org.apache.hadoop.log.metrics.EventCounter #log4j.appender.EventCounter=org.apache.hadoop.hive.shims.HiveEventCounter log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
如果报错就按照此方式解决,没有报错就不用管,在使用新的 hadoop-2.7.5 版本中已经不 存在这个问题。所以不用关注。
2.1.2、外置 MySQL 版本
1、 准备好 MySQL(请参考以下文档,或者自行安装 MySQL,或者一个可用的 MySQL)
2、 上传安装包 apache-hive-2.3.3-bin.tar.gz
3、 解压安装包 tar -zxvf apache-hive-2.3.3-bin.tar.gz -c ~/apps/
4、 修改配置文件 [hadoop@hadoop02 conf]# touch hive-site.xml
[hadoop@hadoop02 conf]# vi hive-site.xml
在这个新创建的配置文件中加入如下截图中的内容即可:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop02:3306/hivedb?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
<!-- 如果 mysql 和 hive 在同一个服务器节点,那么请更改 hadoop02 为 localhost --> </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>root</value>
<description>password to use against metastore database</description>
</property>
</configuration>
可选配置,该配置信息用来指定 Hive 数据仓库的数据存储在 HDFS 上的目录 <property> <name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>hive default warehouse, if nessecory, change it</description>
</property>
5、 一定要记得加入 MySQL 驱动包(mysql-connector-java-5.1.40-bin.jar)该 jar 包放置在 hive 的根路径下的 lib 目录
6、 安装完成,配置环境变量
vi ~/.bashrc 添加以下两行内容:
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.3-bin
export PATH=$PATH:$HIVE_HOME/bin
保存退出。 最后不要忘记:[hadoop@hadoop02 bin]$ source ~/.bashrc
7、 验证 Hive 安装
[hadoop@hadoop02 bin]$ hive --help
8、 初始化元数据库
注意:当使用的 hive 是 2.x 之前的版本,不做初始化也是 OK 的,当 hive 第一次启动的 时候会自动进行初始化,只不过会不会生成足够多的元数据库中的表。在使用过程中会 慢慢生成。但最后进行初始化。如果使用的 2.x 版本的 Hive,那么就必须手动初始化元 数据库。
使用命令: [hadoop@hadoop02 bin]$ schematool -dbType mysql -initSchema
9、 启动 Hive 客户端
[hadoop@hadoop02 bin]$ hive --service cli
或者 [hadoop@hadoop02 bin]$ hive
10、退出 Hive hive> quit; 或者 hive> exit;
2.1.3、Linux RPM 方式安装 MySQL
(记得使用 root 账户进行操作,若使用普通用户,那么请修改相应文件夹权限)
(如果已经有可以使用的 MySQL,不管安装在哪里,只要能远程连接上,都是可以的)
1、 检查以前是否装过 MySQL rpm -qa|grep -i mysql
结果:
2、 发现有的话就都卸载
3、 删除老版本 mysql 的开发头文件和库
rm -rf /usr/lib/mysql 数据库目录
rm -rf /usr/include/mysql
rm -f /etc/my.cnf
rm -rf /var/lib/mysql
注意:卸载后/var/lib/mysql 中的数据及/etc/my.cnf 不会删除,确定没用后就手工删除
4、 准备安装包 MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar, 上传,解压 命令:tar -zxvf MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar
5、 开始安装
6、 安装 server rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm
开头:
结尾:
如上图所提示,即安装 server 成功
7、 安装客户端
rpm -ivh MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm
8、 登陆 MYSQL(登录之前千万记得一定要启动 mysql 服务)
启动命令:
[hadoop@hadoop01 ~]$ service mysql start
然后登陆,初始密码在 /root/.mysql_secret 这个文件里
9、 修改密码
set PASSWORD=PASSWORD('root');
10、退出登陆验证,看是否改密码成功
11、增加远程登陆权限,执行以下两个命令:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
命令释义:grant 权限 1,权限 2,…权限 n on 数据库名称.表名称 to 用户名@用户地址 identified by '密码';
PS:1,权限 2,…权限 n 代表 select,insert,update,delete,create,drop,index,alter,grant, references,reload,shutdown,process,file 等 14 个权限。 当权限 1,权限 2,…权限 n 被 all privileges 或者 all 代替,表示赋予用户全部权限。 当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。 用户地址可以是 localhost,也可以是 ip 地址、机器名字、域名。也可以用’%’地址连接。
12、至此 MySQL 安装成功
13、更改数据库的默认编码为 UTF-8
2.2、Hive 使用方式,即三种连接方式
2.2.1、CLI
进入到 bin 目录下,直接输入命令:
[hadoop@hadoop02 ~]$ hive
启动成功的话如上图所示,接下来便可以做 hive 相关操作
补充: 1、上面的 hive 命令相当于在启动的时候执行:hive --service cli
2、使用 hive --help,可以查看 hive 命令可以启动那些服务 3、通过 hive --service serviceName --help 可以查看某个具体命令的使用方式
2.2.2、HiveServer2/beeline
在现在使用的最新的 hive-2.3.2 版本中:都需要对 hadoop 集群做如下改变,否则无法使用
第一:修改 hadoop 集群的 hdfs-site.xml 配置文件:加入一条配置信息,表示启用 webhdfs
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
第二:修改 hadoop 集群的 core-site.xml 配置文件:加入两条配置信息:表示设置 hadoop 的代理用户
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property> <property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
配置解析: hadoop.proxyuser.hadoop.hosts 配置成*的意义,表示任意节点使用 hadoop 集群的代理用户 hadoop 都能访问 hdfs 集群,hadoop.proxyuser.hadoop.groups 表示代理用户的组所属
以上操作做好了之后,请继续做如下两步:
第一步:先启动 hiveserver2 服务
启动方式,(假如是在 hadoop02 上):
启动为前台:hiveserver2
启动为后台: nohup hiveserver2 1>/home/hadoop/hiveserver.log 2>/home/hadoop/hiveserver.err &
或者:nohup hiveserver2 1>/dev/null 2>/dev/null & 或者:nohup hiveserver2 >/dev/null 2>&1 &
以上 3 个命令是等价的,第一个表示记录日志,第二个和第三个表示不记录日志
命令中的 1 和 2 的意义分别是:
1:表示标准日志输出
2:表示错误日志输出 如果我没有配置日志的输出路径,日志会生成在当前工作目录,默认的日志名称叫做: nohup.xxx
PS:nohup 命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束, 那么可以使用 nohup 命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。 nohup 就是不挂起的意思(no hang up)。 该命令的一般形式为:nohup command &
第二步:然后启动 beeline 客户端去连接:
执行命令: beeline -u jdbc:hive2://hadoop02:10000 -n hadoop
-u : 指定元数据库的链接信息
-n : 指定用户名和密码
另外还有一种方式也可以去连接:先执行 beeline 然后按图所示输入:!connect jdbc:hive2://hadoop02:10000 按回车,然后输入用户名,这个 用户名就是安装 hadoop 集群的用户名
接下来便可以做 hive 操作
2.2.3、Web UI
1、 下载对应版本的 src 包:apache-hive-2.3.2-src.tar.gz
2、 上传,解压 tar -zxvf apache-hive-2.3.2-src.tar.gz
3、 然后进入目录${HIVE_SRC_HOME}/hwi/web,执行打包命令: jar -cvf hive-hwi-2.3.2.war * 在当前目录会生成一个 hive-hwi-2.3.2.war
4、 得到 hive-hwi-2.3.2.war 文件,复制到 hive 下的 lib 目录中 cp hive-hwi-2.3.2.war ${HIVE_HOME}/lib/
5、 修改配置文件 hive-site.xml <property> <name>hive.hwi.listen.host</name> <value>0.0.0.0</value> <description>监听的地址</description> </property> <property> <name>hive.hwi.listen.port</name> <value>9999</value> <description>监听的端口号</description> </property> <property> <name>hive.hwi.war.file</name> <value>lib/hive-hwi-2.3.2.war</value> <description>war 包所在的地址</description> </property>
6、 复制所需 jar 包
1、cp ${JAVA_HOME}/lib/tools.jar ${HIVE_HOME}/lib
2、再寻找三个 jar 包,都放入${HIVE_HOME}/lib 目录: commons-el-1.0.jar jasper-compiler-5.5.23.jar jasper-runtime-5.5.23.jar 不然启动 hwi 服务的时候会报错。
7、 安装 ant
1、 上传 ant 包:apache-ant-1.9.4-bin.tar.gz
2、 解压
tar -zxvf apache-ant-1.9.4-bin.tar.gz -C ~/apps/
3、 配置环境变量
vi /etc/profile
在最后增加两行:
export ANT_HOME=/home/hadoop/apps/apache-ant-1.9.4
export PATH=$PATH:$ANT_HOME/bin
配置完环境变量别忘记执行:source /etc/profile
4、 验证是否安装成功
8、 上面的步骤都配置完,基本就大功告成了。进入${HIVE_HOME}/bin 目录: ${HIVE_HOME}/bin/hive --service hwi 或者让在后台运行: nohup bin/hive --service hwi > /dev/null 2> /dev/null &
9、 前面配置了端口号为 9999,所以这里直接在浏览器中输入: hadoop02:9999/hwi
10、至此大功告成