HBase2.1.10 + Phoenix5.1.2 整合

HBase2.1.10 + Phoenix5.1.2 整合

本文适用于
HBase2.1.10 + Phoenix5.1.2
HBase2.3.6 + Phoenix5.1.2

安装步骤

清理旧版

# 清除zookeeper 信息
cd /opt/modules/zookeeper-3.5.8 &&\
  bin/zkCli.sh -server hadoop113:2181 <<< "deleteall /hbase"

# 清除HDFS 数据
cd /opt/modules/hadoop-3.1.3 &&\
  bin/hadoop fs -rm -r /hbase2_data

下载新版

# 下载HBase 2.1.10
wget https://downloads.apache.org/hbase/2.1.10/hbase-2.1.10-bin.tar.gz
# 下载Phoenix 5.1.2
wget https://dlcdn.apache.org/phoenix/phoenix-5.1.2/phoenix-hbase-2.1-5.1.2-bin.tar.gz

解压部署

# 解压HBase2
tar -xf hbase-2.1.10-bin.tar.gz -C /opt/modules
# 解压Phoenix5.1
tar -xf phoenix-hbase-2.1-5.1.2-bin.tar.gz -C /opt/modules
cd /opt/modules && mv phoenix-hbase-2.1-5.1.2-bin phoenix-2.1-5.1.2

配置整合

hbase-env.sh

cd /opt/modules/hbase-2.1.10 &&\
cat > conf/hbase-env.sh << 'EOF'
export JAVA_HOME=/usr/local/jdk1.8.0_241
# 不让HBase 管理ZooKeeper
export HBASE_MANAGES_ZK=false
## 默认是true,默认会让ZooKeeper 随HBase 一起启停,并管理类似myid 等信息
## 但大数据系统中的ZooKeeper 集群还可能管理着别的框架,所以不能让其只跟HBase 绑定在一起
## 如没在hbase-site.xml 中配置hbase.zookeeper.quorum 则HBase 会启动自带的mini_ZooKeeper
EOF

hbase-site.xml

cd /opt/modules/hbase-2.1.10 &&\
cat > conf/hbase-site.xml << 'EOF'
<configuration>
  <!-- 以下配置的目录均不需要事先创建 -->
  <!-- HBase 使用HDFS 保存数据,注意端口号和地址 -->
  <property>
    <name>hbase.rootdir</name>
    <!-- Hadoop3 配置了HA,这里须和core-site.xml 的fs.defaultFS 一致 -->    
    <value>hdfs://hadoop112:9820/hbase2_data</value>
  </property>

  <!-- 是否集群模式 -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>

  <!-- Master 的通信端口 -->
  <property>
    <name>hbase.master.port</name>
    <value>16000</value>
  </property>

  <!-- HBase Web UI 端口,默认16010 -->
  <property>
    <name>hbase.master.info.port</name>
    <value>16010</value>
  </property>

  <!-- Zookeeper 地址列表,逗号分隔 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop112,hadoop113,hadoop114</value>
  </property>

  <!-- Zookeeper 端口,默认2181 -->
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
  
  <!-- 支持索引预写日志编码 -->
  <property>
    <name>hbase.regionserver.wal.codec</name>
    <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
  </property>

  <!-- Phoenix 支持HBase 命名空间映射 -->
  <property>
    <name>phoenix.schema.isNamespaceMappingEnabled</name>
    <value>true</value>
  </property>
  <property>
    <name>phoenix.schema.mapSystemTablesToNamespace</name>
    <value>true</value>
  </property>
</configuration>
EOF

regionservers

# 告诉bin/start-hbase.sh 及bin/stop-hbase.sh 脚本Region 的节点有哪几个
# Region 相当于HDFS 的DataNode
cd /opt/modules/hbase-2.1.10 &&\
cat > conf/regionservers << 'EOF'
hadoop112
hadoop113
hadoop114
EOF

Hadoop 配置文件

cd /opt/modules/hbase-2.1.10
# 软连接,强制的,如已存在则覆盖
ln -sf /opt/modules/hadoop-3.1.3/etc/hadoop/core-site.xml conf/
ln -sf /opt/modules/hadoop-3.1.3/etc/hadoop/hdfs-site.xml conf/

整合Phoenix

# 拷贝jar 文件
cd /opt/modules/phoenix-2.1-5.1.2 &&\
  cp phoenix-pherf-5.1.2.jar \
     phoenix-server-hbase-2.3-5.1.2.jar \
     /opt/modules/hbase-2.1.10/lib/

# 软连接hbase-site.xml
cd /opt/modules/phoenix-2.1-5.1.2 &&\
  ln -sf /opt/modules/hbase-2.1.10/conf/hbase-site.xml bin/

分发集群文件

# 同步HBase2 即可,Phoenix 是客户端
cd /opt/modules && xsync.sh hbase-2.1.10

启动验证

# 1. 启动HBase2
cd /opt/modules/hbase-2.1.10 && bin/start-hbase.sh

# 2. 验证Phoenix
cd /opt/modules/phoenix-2.1-5.1.2 && bin/sqlline.py hadoop114:2181
!tables
!quit

参考资料

Phoenix 5.1.2 详细图文步骤

上一篇:前端的新“*”:JavaScript 应用打包器 Fastpack


下一篇:WebStorm不显示node_modules