大数据学习整理篇(十四)Phoenix 5.0.0+HBase2.0测试环境Docker镜像,支持二级索引,优化查询性能(下)

首先感谢iteblog,在他的基础上将之前Hbase2.0.6改成了Hbase2.0.0版本,这样,就可以正常使用Phoenix的二级索引功能,具体操作如下:

这样做解决了哪些问题,主要解决Inconsisten namespace mappping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not hava phoenix.schema....繁琐的配置和删除操作功能,具体报如下错误,以及最常用的解决方法:https://www.jianshu.com/p/adfad432ba70

1.将https://gitee.com/astra_zhao/hbase-docker的Dockerfile进行修改,主要修改

ENV HBASE_VERSION 2.0.6改成

ENV HBASE_VERSION 2.0.0

2.修改hbase-site.xml,加入下面的内容

<property>
    <name>phoenix.query.timeoutMs</name>
    <value>1200000</value>
  </property>
  <property>
    <name>phoenix.query.keepAliveMs</name>
    <value>1200000</value>
  </property>
  <property>
    <name>hbase.rpc.timeout</name>
    <value>1200000</value>
  </property>
  <property>
    <name>hbase.regionserver.lease.period</name>
    <value>1200000</value>
  </property>
  <property>
    <name>hbase.client.operation.timeout</name>
    <value>1200000</value>
  </property>
  <property>
    <name>hbase.client.scanner.caching</name>
    <value>1000</value>
  </property>
  <property>
    <name>hbase.client.scanner.timeout.period</name>
    <value>1200000</value>
  </property>

3.修改replace-hostname

将for file ...done注释掉

declare -a files=(
	'/opt/hbase/conf/hbase-site.xml'
)

#for file in "${files[@]}"; do
#	if [ -f "${file}.bak" ]; then
#		cp "${file}.bak" "${file}"
#	else
#		cp "${file}" "${file}.bak"
#	fi
#
#	sed -i "s/hbase-docker/${HOSTNAME}/g" "${file}"
#done

3.编译成自己本地的镜像

#>docker build -t iteblog/hbase-docker:1.0 .

4.编译hbase-phoenix-docker,https://gitee.com/astra_zhao/hbase-phoenix-docker,修改Dockerfile

ENV BUILD_REPO=http://archive.apache.org/dist/phoenix

改成

ENV BUILD_REPO=https://mirrors.bfsu.edu.cn/apache/phoenix

5.编译成自己本地镜像

docker build -t iteblog/hbase-phoenix-docker .

6.最后运行镜像

docker run -it -p 8765:8765 -p 2181:2181 -p 60000:60000 -p 60010:60010 -p 60020:60020 -p 60030:60030 iteblog/hbase-phoenix-docker &

7.运行后,进入容器修改/opt/hbase/conf/hbase-site.xml

将hbase-docker改成容器ID(docker ps -a查看容器ID)

    <property>
     <name>hbase.zookeeper.quorum</name>
     <value>容器ID</value>
    </property>

    <property>
      <name>hbase.master.info.bindAddress</name>
      <value>容器ID</value>
    </property>

    <property>
      <name>hbase.regionserver.info.bindAddress</name>
      <value>容器ID</value>
    </property>

8使用docker stop id,docker start id即完成镜像启动

猜你喜欢

转载自blog.csdn.net/penker_zhao/article/details/110878443