上一章讲述了大数据环境hadoop和spark的安装,接下来完成未完成的安装工作。
教程中涉及到的安装包通过关注公众账号,发送消息hadoop获取
一、HBase 安装
一个分布式运行的HBase依赖一个Zookeeper集群,所有的节点和客户端都必须能够访问Zookeeper。默认的情况下HBase会管理一个Zookeep集群,即HBase默认自带一个Zookeep集群,这个集群会随着HBase的启动而启动。而在实际的商业项目中通常自己管理一个Zookeeper集群更便于优化配置提高集群工作效率,但需要配置HBase。
1、zookeeper安装
tar -zxvf zookeeper-3.4.14.tar.gz -C /usr/local
配置zookeeper
cd /usr/local/zookeeper-3.4.14/conf/
cp zoo_sample.cfg zoo.cfg
mkdir /usr/local/zookeeper-3.4.14/zkdatas
zoo.cfg文件内容修改
#Zookeeper的数据存放目录
dataDir=/usr/local/zookeeper-3.4.14/zkdatas
clientPort=2181
# 保留多少个快照
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
master上要配置myid
echo 1 > /usr/local/zookeeper-3.4.14/zkdatas/myid
拷贝master的zookeeper到slave1 slave2上
scp -r /usr/local/zookeeper-3.4.14 hadoop@slave1:/usr/local/
scp -r /usr/local/zookeeper-3.4.14 hadoop@slave2:/usr/local/
slave上配置myid
ssh slave1
echo 2 > /usr/local/zookeeper-3.4.14/zkdatas/myid
ssh slave2
echo 3 > /usr/local/zookeeper-3.4.14/zkdatas/myid
三台机器都要配置环境变量
vim /etc/profile #添加以下内容,三台都要进行
# profile文件末尾添加如下内容
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.14
export PATH=:$ZOOKEEPER_HOME/bin:$PATH
# 环境变量生效
source /etc/profile
三台机器都启动
# zookeeper leader和follower是选举机制,没有主从的概念
hadoop@slave1:~$ /usr/local/zookeeper-3.4.14/bin/zkServer.sh start
hadoop@slave2:~$ /usr/local/zookeeper-3.4.14/bin/zkServer.sh start
hadoop@master:~$ /usr/local/zookeeper-3.4.14/bin/zkServer.sh start
# 通过status查看状态
/usr/local/zookeeper-3.4.14/bin/zkServer.sh status
2、安装HBase
解下压移动到/usr/local/目录下
tar -zxvf hbase-2.4.15-bin.tar.gz
sudo mv hbase-2.4.15 /usr/local/
修改HBase环境变量hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_333/
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop
export HBASE_PID_DIR=/usr/local/hbase-2.4.15/pids
export HBASE_MANAGES_ZK=false
集群配置文件regionservers
slave1
slave2
同步到slave1 slave2
scp -r /usr/local/hbase-2.4.15 hadoop@slave1:/usr/local/
scp -r /usr/local/hbase-2.4.15 hadoop@slave2:/usr/local/
启动、查看hbase
# master启动start-hbase.sh
/usr/local/hbase-2.4.15/bin/start-hbase.sh
# 通过jps查看、master上存在HMaster slave1和slave2上存在HRegionServer
/usr/local/hbase-2.4.15/bin$ jps :
7043 RunJar
2915 NameNode
17028 HMaster
3111 SecondaryNameNode
3576 Master
3276 ResourceManager
7293 RunJar
275178 Jps
207500 QuorumPeerMain
# 当主节点出问题,master切换、等一会发现slave1推举为master
stop master
二、hive安装
解压hive包
tar –zxvf apache-hive-2.1.0-bin.tar.gz
mv apache-hive-2.1.0-bin /usr/local/
环境变量
vi /etc/profile
# 增加如下内容
export HIVE_HOME=/usr/local/apache-hive-2.1.0-bin
export PATH=$PATH:$HIVE_HOME/bin
# 环境变量生效
source /etc/profile
安装mysql
apt-get install mysql-server
# 安装好通过默认密码登录、修改账号密码
配置hive
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
修改配置如下
<!-- mysql 驱动 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<!-- 连接 -->
<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>
<!-- mysql账号 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>Username to use against metastore database</description>
</property>
<!-- mysql密码 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hivehive</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/usr/local/apache-hive-2.1.0-bin/tmp/root</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.querylog.location</name>
<value>/usr/local/apache-hive-2.1.0-bin/tmp/root</value>
<description>Location of Hive run time structured log file</description>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/usr/local/apache-hive-2.1.0-bin/tmp/root/operation_logs</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property>
同步到slave1 slave2
scp -r /usr/local//usr/local/apache-hive-2.1.0-bin hadoop@slave1:/usr/local/
scp -r /usr/local//usr/local/apache-hive-2.1.0-bin hadoop@slave2:/usr/local/
在master上使用schematool 初始化metastore的schema:
schematool -initSchema -dbType mysql
运行hive
/usr/local/apache-hive-2.1.0-bin/bin/hive
mysql/hive字符集问题:hive中文乱码
alter database hive character set latin1;
set character_set_client=latin1;
测试使用
# 命令行执行
/usr/local/apache-hive-2.1.0-bin/bin/beeline -u jdbc:hive2://localhost:10000
# sql cli下
CREATE TABLE pokes (foo INT, bar STRING);
LOAD DATA LOCAL INPATH '/usr/local/apache-hive-2.1.0-bin/examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;
show databases;
use default;
show tables;
三、windows下odbc数据源配置
从软件包找到MapRHiveODBC64.msi并安装
配置如上图,安装好数据源后,本地就能开发调试了。
四、本地开发测试
package main
import (
"context"
"fmt"
"log"
"github.com/beltran/gohive"
)
func main() {
ctx := context.Background()
configuration := gohive.NewConnectConfiguration()
configuration.Username = "hive"
configuration.Password = "hivehive"
configuration.FetchSize = 1000
connection, errConn := gohive.Connect("10.80.31.122", 10000, "NONE", configuration)
if errConn != nil {
log.Fatal(errConn)
}
cursor := connection.Cursor()
cursor.Exec(ctx, "SELECT * FROM myTable")
if cursor.Err != nil {
log.Fatal(cursor.Err)
}
var i int32
var s string
for cursor.HasMore(ctx) {
if cursor.Err != nil {
log.Fatal(cursor.Err)
}
m := cursor.RowMap(ctx)
fmt.Println(m)
cursor.FetchOne(ctx, &i, &s)
if cursor.Err != nil {
log.Fatal(cursor.Err)
}
log.Println(i, s)
}
cursor.Close()
connection.Close()
}
测试通过,安装完成
原文始发于微信公众号(数据安全治理技术):Hbase Hive安装ODBC数据源配置
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论