《OD大数据实战》Hive环境搭建
一、搭建hadoop环境
二、Hive环境搭建
1. 准备安装文件
下载地址:
http://archive.cloudera.com/cdh5/cdh/5/
2. 解压
tar -zxvf hive-0.13.1-cdh5.3.6.tar.gz -C /opt/modules/cdh/
3. 修改配置
cd /opt/modules/cdh/hive-0.13.1-cdh5.3.6/conf mv hive-env.sh.template hive-env.sh mv hive-default.xml.template hive-site.xml mv hive-exec-log4j.properties.template hive-exec-log4j.properties mv hive-log4j.properties.template hive-log4j.properties
1)修改hive-env.sh
#增加一行 export JAVA_HOME=/opt/modules/jdk1.7.0_67 HADOOP_HOME=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6 export HIVE_CONF_DIR=/opt/modules/cdh/hive-0.13.1-cdh5.3.6/conf
2)修改hive-log4j.properties
hive.log.dir=/opt/modules/cdh/hive-0.13.1-cdh5.3.6/logs
3)修改hive-exec-log4j.properties
hive.log.dir=/opt/modules/cdh/hive-0.13.1-cdh5.3.6/logs
4)修改hive-site.xml
<property> <name>hive.lazysimple.extended_boolean_literal</name> <value>false</value> <description> LazySiimpleSerde uses this properties to determine if it treats 'T', 't', 'F', 'f', '1', and '0' as extened, legal boolean literal, in addition to 'TRUE' and 'FALSE'. The default is false, which means only 'TRUE' and 'FALSE' are treated as legal boolean literal. </description> </property> <property> <name>hive.mapjoin.optimized.hashtable</name> <value>true</value> <description>Whether Hive should use memory-optimized hash table for MapJoin. Only works on Tez, because memory-optimized hashtable cannot be serialized.</description> </property>
4. 验证hive环境结果
bin/hive dfs -ls /;
三、mysql环境搭建
1. 目标是安装mysql 5.1.17
2. 在官网下载yum源
http://dev.mysql.com/downloads/repo/yum/
http://repo.mysql.com//mysql57-community-release-el6-8.noarch.rpm
3. 安装yum源到/etc/yum.repos.d/目录
sudo rpm -Uvh mysql57-community-release-el6-8.noarch.rpm
cd /etc/yum.repos.d/
4. 修改yum源配置
修改文件:mysql-community.repo 和mysql-community-resource.repo
5.6 enable = 1
5.7 enable = 0
5. 安装mysql
sudo yum -y install mysql-community-server
6. mysql安全性设置
sudo mysql_secure_installation
grant all privileges on *.* to 'root'@'%' identified by 'beifeng' with grant option
7. 验证mysql安装结果
进入命令行: mysql -uroot -p
四、本地mysql作为metastore模式
1. copy mysql驱动到${HIVE_HOME}/lib中
cp mysql-connector-java-5.1.27-bin.jar /opt/modules/cdh/hive-0.13.1-cdh5.3.6/lib/
2. 修改hive-site.xml
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/cdh_hive_local_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>beifeng</value> <description>password to use against metastore database</description> </property>
3. 运行bin/hive命令
4. 查看mysql数据库,发现多了一个cdh_hive_local_hive数据库
五、远程mysql作为metastore模式
1. copy mysql驱动到${HIVE_HOME}/lib中
cp mysql-connector-java-5.1.27-bin.jar /opt/modules/cdh/hive-0.13.1-cdh5.3.6/lib/
2. 启动metastore服务器
nohup hive --service metastore > /home/beifeng/hive_metastore.run.log 2>&1 &
系统日志输出级别: 2 错误,1正常
查看进程信息: ps -ef | grep HiveMetaStore
关闭Hive
kill -9 processId
kill -9 `ps -ef | grep HiveMetaStore | awk '{print $2'} | head -n 1`
3. 修改hive-site.xml
<property> <name>hive.metastore.uris</name> <value>thrift://beifeng-hadoop-02:9083</value> <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/cdh_hive_remote_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>beifeng</value> <description>password to use against metastore database</description> </property>
4. 运行bin/hive命令
5. 查看mysql数据库,发现多了一个cdh_hive_local_hive数据库
六、JDBC连接hive
1. 修改hive-site.xml
<property> <name>hive.server2.thrift.port</name> <value>10000</value> <description>Port number of HiveServer2 Thrift interface. Can be overridden by setting $HIVE_SERVER2_THRIFT_PORT</description> </property> <property> <name>hive.server2.thrift.bind.host</name> <value>0.0.0.0</value> <description>Bind host on which to run the HiveServer2 Thrift interface. Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST</description> </property>
2. 启动hiveserver2服务器
nohup hive --service hiveserver2 > /home/beifeng/hiveserver2.run.log 2>&1 & ps -ef | grep HiveServer2 netstat -tlnup | grep 10000
3. 进入beeline客户端
beeline
4. 连接hive
beeline> !connect jdbc:hive2://beifeng-hadoop-02:10000 scan complete in 5ms Connecting to jdbc:hive2://beifeng-hadoop-02:10000 Enter username for jdbc:hive2://beifeng-hadoop-02:10000: beifeng Enter password for jdbc:hive2://beifeng-hadoop-02:10000: *******
5. 修改配置
<property> <name>hive.server2.long.polling.timeout</name> <value>5000</value> <description>Time in milliseconds that HiveServer2 will wait, before responding to asynchronous calls that use long polling</description> </property>
![]() |
作者:沙漏哟 出处:计算机的未来在于连接 本文版权归作者和博客园共有,欢迎转载,请留下原文链接 微信随缘扩列,聊创业聊产品,偶尔搞搞技术 |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· MQ 如何保证数据一致性?
· 《HelloGitHub》第 108 期