python-Hbase
2023-05-06 16:16:31 5 举报
AI智能生成
简易搭建与问题记录
作者其他创作
大纲/内容
redhat
系统
150GB
硬盘
10GB
内存
4
处理器
Hadoop0:192.168.56.108Hadoop1:192.168.56.109Hadoop2:192.168.56.110
ip
虚拟机概览
/opt/module/hadoop-3.3
hadoop3.3
/opt/module/jdk1.8
jdk1.8.0-201
1.软件版本
三台一致,source生效
192.168.56.108 hadoop0192.168.56.109 hadoop1192.168.56.110 hadoop2
vim /etc/hosts
# export JAVA_HOME=/opt/module/jdk1.8# export JAVA_CLASSPATH=.:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools/jar# export PATH=$PATH:$JAVA_HOME/bin# export HADOOP_HOME=/opt/module/hadoop-3.3# export PATH=$PATH:$HADOOP_HOME/bin# export PATH=$PATH:$HADOOP_HOME/sbin# export SQOOP_SERVER_EXTRA_LIB=$SQOOP_HOME/extLib# export HADOOP_COMMON_HOME=/opt/module/hadoop-3.3/share/hadoop/common# export HADOOP_HDFS_HOME=/opt/module/hadoop-3.3/share/hadoop/hdfs# export HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3/share/hadoop/mapreduce# export HADOOP_YARN_HOME=/opt/module/hadoop-3.3/share/hadoop/yarn
vim /etc/profile
2.系统变量配置
service iptables status
service iptables stop
chkconfig iptables off
-- 关闭SELINUX# vim /etc/selinux/config-- 注释掉#SELINUX=enforcing#SELINUXTYPE=targeted-- 添加SELINUX=disabled
1.防火墙关闭
二、免密码登录本机下面以配置hadoop-master本机无密码登录为例进行讲解,用户需参照下面步骤完成h-salve1~3三台子节点机器的本机无密码登录;1)生产秘钥ssh-keygen -t rsa2)将公钥追加到”authorized_keys”文件cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys3)赋予权限chmod 600 .ssh/authorized_keys4)验证本机能无密码访问ssh hadoop-master最后,依次配置h-salve1~3无密码访问二、hadoop-master本机无密码登录hadoop-slave1、hadoop-slave2、hadoop-slave3,以hadoop-master无密码登录hadoop-slave1为例进行讲解:1)登录hadoop-slave1 ,复制hadoop-master服务器的公钥”id_rsa.pub”到hadoop-slave1服务器的”root”目录下。scp root@hadoop-master:/root/.ssh/id_rsa.pub /root/2)将hadoop-master的公钥(id_rsa.pub)追加到hadoop-slave1的authorized_keys中cat id_rsa.pub >> .ssh/authorized_keysrm -rf id_rsa.pub3)在 hadoop-master上面测试ssh hadoop-slave1三、配置hadoop-slave1~hadoop-slave3本机无密码登录hadoop-master下面以hadoop-slave1无密码登录hadoop-master为例进行讲解,用户需参照下面步骤完成hadoop-slave2~hadoop-slave3无密码登录hadoop-master。1)登录hadoop-master,复制hadoop-slave1服务器的公钥”id_rsa.pub”到hadoop-master服务器的”/root/”目录下。scp root@hadoop-slave1:/root/.ssh/id_rsa.pub /root/2)将hadoop-slave1的公钥(id_rsa.pub)追加到hadoop-master的authorized_keys中。cat id_rsa.pub >> .ssh/authorized_keysrm -rf id_rsa.pub //删除id_rsa.pub3)在 hadoop-slave1上面测试ssh hadoop-master依次配置 hadoop-slave2、hadoop-slave3
2.SSH免密登陆
3.ssh免密登陆
1、hadoop-master上 解压缩安装包及创建基本目录#下载 wget http://apache.claz.org/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz#解压 tar -xzvf hadoop-2.7.3.tar.gz -C /usr/local #重命名 mv hadoop-2.7.3 hadoop
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop0:9888</value> <description>WEB端口地址</description> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/module/hadoop-3.3/tmp</value> <description>tmp文件地址</description> </property> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> <description>设置所有IP均可访问</description> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> <description>设置所有用户均可访问</description> </property></configuration>
2. ./hadoop/etc/hadoop/core-site.xml
<configuration><property> <name>dfs.replication</name> <value>2</value></property><property> <name>dfs.namenode.name.dir</name> <value>file:/opt/module/hadoop-3.3/tmp/namenode</value> <description>命名空间和事务在本地文件系统永久存储的路径</description></property><property> <name>dfs.datanode.data.dir</name> <value>file:/opt/module/hadoop-3.3/tmp/datanode</value> <description>DataNode在本地文件系统中存放块的路径</description></property> <property> <name>dfs.namenode.http-address</name> <value>hadoop0:9870</value> <description>NameNode地址</description> </property><property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop1:9868</value> <description>secondaryNameNode地址</description></property></configuration>
3. ./hadoop/etc/hadoop/hdfs-site.xml
cp ./hadoop/etc/hadoop/mapred-site.xml.template ./hadoop/etc/hadoop/mapred-site.xml vim ./hadoop/etc/hadoop/mapred-site.xml
<configuration><property> <name>mapreduce.framework.name</name> <value>yarn</value> <description>MapReduce引擎</description></property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop0:19888</value> <description>任务管理器WEB端口</description></property></configuration>
4. ./mapred-site.xml
<configuration><!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value></property><property> <name>yarn.resourcemanager.hostname</name> <value>hadoop2</value> <description>yarn主节点指定</description></property><property> <name>yarn.application.classpath</name> <value>/opt/module/hadoop-3.3/etc/hadoop:/opt/module/hadoop-3.3/share/hadoop/common/lib/*:/opt/module/hadoop-3.3/share/hadoop/common/*:/opt/module/hadoop-3.3/share/hadoop/hdfs:/opt/module/hadoop-3.3/share/hadoop/hdfs/lib/*:/opt/module/hadoop-3.3/share/hadoop/hdfs/*:/opt/module/hadoop-3.3/share/hadoop/mapreduce/*:/opt/module/hadoop-3.3/share/hadoop/yarn:/opt/module/hadoop-3.3/share/hadoop/yarn/lib/*:/opt/module/hadoop-3.3/share/hadoop/yarn/*</value></property></configuration>
5. . /yarn-site.xml
hadoop0hadoop1hadoop2
workers
3.3只有workers
6.masters与slaves
配置hadoop-slave的hadoop环境下面以配置hadoop-slave1的hadoop为例进行演示,用户需参照以下步骤完成其他hadoop-slave2~3服务器的配置。1)复制hadoop到hadoop-slave1节点scp -r /usr/local/hadoop hadoop-slave1:/usr/local/登录hadoop-slave1服务器,删除slaves内容rm -rf /usr/local/hadoop/etc/hadoop/slaves2)配置环境变量vi /etc/profile## 内容export HADOOP_HOME=/usr/local/hadoopexport PATH=$PATH:$HADOOP_HOME/bin使得hadoop命令在当前终端立即生效;source /etc/profile依次配置其它slave服务
3.Hadoop部署
1、格式化HDFS文件系统进入master的~/hadoop目录,执行以下操作bin/hadoop namenode -format格式化namenode,第一次启动服务前执行的操作,以后不需要执行。
2、然后启动hadoop:sbin/start-dfs.shsbin/start-yarn.sh
3、使用jps命令查看运行情况#master 执行 jps查看运行情况25928 SecondaryNameNode25742 NameNode26387 Jps26078 ResourceManager#slave 执行 jps查看运行情况24002 NodeManager23899 DataNode24179 Jps
4、命令查看Hadoop集群的状态通过简单的jps命令虽然可以查看HDFS文件管理系统、MapReduce服务是否启动成功,但是无法查看到Hadoop整个集群的运行状态。我们可以通过hadoop dfsadmin -report进行查看。用该命令可以快速定位出哪些节点挂掉了,HDFS的容量以及使用了多少,以及每个节点的硬盘使用情况。hadoop dfsadmin -report
5、hadoop 重启sbin/stop-all.shsbin/start-all.sh
集群启动与初始化
HDFS
修改环境变量:执行命令:vi /etc/profileexport JAVA_HOME=/usr/local/software/jdk1.8.0_66export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport HADOOP_HOME=/usr/local/software/hadoop_2.7.1export HBASE_HOME=/usr/local/software/hbase_1.2.2export HIVE_HOME=/usr/local/software/apache-hive-2.3.0-binexport PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin:$PATH执行命令:source /etc/profile 刷新环境变量————————————————版权声明:本文为CSDN博主「_否极泰来_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/yuan_xw/article/details/78197917
环境变量
hive-site.xml
conf
HIVE
cp zoo_sample.cfg zoo.cfg
zoo.cfg
在官网下载包的时候下载的是源码包,没有进行编译过的,所以需要手动进行编译,也可以直接下载官方编译好的(编译好的tar包会带有bin的标识),索性重新下载个编译好的,解压后启动成功
zookeeper启动失败:Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeer
文件权限问题
这个错误是因为 server.1的端口号后面有空格的缘故。
server.#要与myid一一对应
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Address unresolved: hadoop0:2889
java.net.BindException: Address already in use
别的服务器未开启服务,当然连不上
三台全部启动,status正常
修改zoo.cfg本机ip纠正为0.0.0.0
systemctl stop firewalldsystemctl disable firewalldsystemctl status firewalld
关闭防火墙
Cannot open channel to 2 at election address hadoop2/192.168.56.110:2889java.net.ConnectException: Connection refused (Connection refused)
问题记录
Zookeeper
安装hbase首先在hadoop-master安装配置好之后,在复制到从节点wget http://mirror.bit.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz#解压tar -xzvf hbase-1.3.1-bin.tar.gz -C /usr/local/#重命名 mv hbase-1.3.1 hbase
#内容export HBASE_HOME=/opt/module/hbase-2.4.17export PATH=$HBASE_HOME/bin:$PATH#使立即生效source /etc/profile
vim /etc/profile
ulimit -n 10240
修改系统变量ulimit
环境变量配置
#内容export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64export HBASE_CLASSPATH=/usr/local/hbase/conf# 此配置信息,设置由hbase自己管理zookeeper,不需要单独的zookeeper。export HBASE_MANAGES_ZK=trueexport HBASE_HOME=/usr/local/hbaseexport HADOOP_HOME=/usr/local/hadoop#Hbase日志目录export HBASE_LOG_DIR=/usr/local/hbase/logs
hbase-env.sh
1.hadoop端口
zookeeper端口
hbase-site.xml
regionservers
/hbase/conf
配置文件
复制hbase到从节点中scp -r /opt/module/hbase-2.4.17 hadoop1:/opt/module/hbase-2.4.17scp -r /opt/module/hbase-2.4.17 hadoop2:/opt/module/hbase-2.4.17
启动hbase启动仅在master节点上执行即可~/hbase/bin/start-hbase.sh
SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.3/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/opt/module/hbase-2.4.17/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [org.slf4j.impl.Reload4jLoggerFactory]SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.3/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/opt/module/hbase-2.4.17/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [org.slf4j.impl.Reload4jLoggerFactory]
master中的信息[hadoop@master ~]$ jps6225 Jps2897 SecondaryNameNode # hadoop进程2710 NameNode # hadoop master进程3035 ResourceManager # hadoop进程5471 HMaster # hbase master进程2543 HQuorumPeer # zookeeper进程
子主题
salve中的信息[hadoop@slave1 ~]$ jps4689 Jps2533 HQuorumPeer # zookeeper进程2589 DataNode # hadoop slave进程4143 HRegionServer # hbase slave进程
如果安装了独立的zookeeper启动顺序: hadoop-> zookeeper-> hbase停止顺序:hbase-> zookeeper-> hadoop使用自带的zookeeper启动顺序: hadoop-> hbase停止顺序:hbase-> hadoop
备份hbase的jar包到安全目录!
使用Hadoop的jar包替换hbase的jar包
slf4j包替换
hbase-site.xml配置
还是slf4j不兼容导致
3210 Jps[root@hadoop0 hbase-2.4.17]# ssh hadoop1Last login: Thu May 4 09:20:38 2023 from hadoop0[root@hadoop1 ~]# jps1680 SecondaryNameNode1846 HQuorumPeer2088 Jps1609 DataNode[root@hadoop1 ~]# exitlogoutConnection to hadoop1 closed.[root@hadoop0 hbase-2.4.17]# ./bin/hbase shellLoadError: load error: irb/completion -- java.lang.NoSuchMethodError: jline.console.completer.CandidateListCompletionHandler.setPrintSpaceAfterFullCompletion(Z)V require at org/jruby/RubyKernel.java:974 require at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:54 <main> at classpath:/jar-bootstrap.rb:42
以上报错说:Master正在初始化出现以上错误的原因可能有以下:1、集群中的节点时间不同步,可以在启动的集群中使用命令行:date,查看各个节点的时间是否同步,如果不同步,可以参考这篇博客进行集群离线状态时间同步的修改https://blog.csdn.net/m0_46413065/article/details/1163780042、如果以上方式仍然没有效果,可能报错的原因二是:HDFS中和Zookeeper中的HBase没有删除,所以这里需要将其进行删除,具体的命令如下:注意:删除Zookeeper中的 /hbase 目录,需要保证zookeeper已经开启,否则无法连接上。————————————————版权声明:本文为CSDN博主「weixin_43648549」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_43648549/article/details/123615758
使用方法二创建表格成功
org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
HBASE-shell拉起
集群启动
安装ntp集群中每台机器都需要安装ntp。3.1查看已经安装版本指令查看指令:yum list installed | grep ntp3.2安装ntp指令安装指令:yum -y install ntp4.配置ntp服务端
修改机器本地时间为标准时区时间。
vim /etc/ntp.conf
systemctl enable ntpd.service
service ntpd start
查看当前节点同步的时间服务器查看当前节点时间同步的时间服务器。查看指令:ntpq -p
查看ntp端口查看ntp启动后发布的端口,默认端口:123。查看指令:netstat -anp | grep ntp
ntp 集群时间对齐
http://192.168.56.108:60010/master-status
WEB端口
安装thrift下载thrift:wget http://mirror.bit.edu.cn/apache/thrift/0.10.0/thrift-0.10.0.tar.gztar zvxf thrift-0.10.0.tar.gzcd thrift-0.10.0/./configuresudo make && make install注:如果报g++: error: /usr/lib64/libboost_unit_test_framework.a: No such file or directory这样的错误则执行以下操作yum install boost-devel-static
代表你没有安装C编译器
执行 yum -y install gcc-c++命令进行安装,安装完后,输入gcc -v检查是否安装成功,出现下图所示代表安装c编译器成功。
no acceptable C compiler found in $PATH
jps查看
thrift服务 ./bin/hbase-daemon.sh start thrift
HbaseMaster节点安装thrift服务
pip install thrift
yum install gcc
command ‘gcc‘ failed: No such file or directory
pip install happybase
pip install hbase-python
python客户机安装相关package
pip install protobuf
pip install protobuf==3.20.1
修改connection传输协议,使用TCompactProtocol
TTransportException: TSocket read 0 bytes
截图示例
脚本示例
thrift
Python远程接口
Hbase
Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux内核版本不低于3.10。查看Linux版本的命令这里推荐两种:lsb_release -a或cat /etc/redhat-release。lsb_release -a查看效果:显然,当前Linux系统为CentOS7。再查一下内核版本是否不低于3.10。查看内核版本有三种方式: cat /proc/version uname -a uname -r三种形式都可以查看到内容版本,比如:
系统版本和内核版本校验
国内 daocloud一键安装命令:curl -sSL https://get.daocloud.io/docker | sh
官方的一键安装方式:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
简易安装
sudo systemctl start docker
安装完成Docker之后,这里汇总列一下常见的Docker操作命令: 搜索仓库镜像:docker search 镜像名 拉取镜像:docker pull 镜像名 查看正在运行的容器:docker ps 查看所有容器:docker ps -a 删除容器:docker rm container_id 查看镜像:docker images 删除镜像:docker rmi image_id 启动(停止的)容器:docker start 容器ID 停止容器:docker stop 容器ID 重启容器:docker restart 容器ID 启动(新)容器:docker run -it ubuntu /bin/bash 进入容器:docker attach 容器ID或docker exec -it 容器ID /bin/bash,推荐使用后者。更多的命令可以通过docker help命令来查看。
https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html
docker pull jupyter/base-notebook:latest 拉取镜像
jupyter/tensorflow-notebook
docker run --rm -p 8888:8888 jupyter/base-notebook:latest 运行镜像
3. 这样虽然能访问,但是我想将notebooks的根目录映射到本地。但是从上面的启动日志来看,默认的根目录在/home/jovyan,这个目录包含很多隐藏文件,映射时有些文件会报错,所以我们需要修改jupyter notebook的工作目录。4. 修改设置参数的命令格式:docker run -p 8888:8888 jupyter/base-notebook start-notebook.sh --NotebookApp.password='sha1:74ba40f8a388:c913541b7ee99d15d5ed31d4226bf7838f83a50e'就是在后面跟start-notebook.sh 然后在加上参数和值。参数列表请看:https://jupyter-notebook.readthedocs.io/en/stable/config.html————————————————版权声明:本文为CSDN博主「Qwertyuiop2016」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/Qwertyuiop2016/article/details/120439121
NotebookApp.password:notebook访问密码NotebookApp.allow_password_change:是否允许远程修改密码NotebookApp.allow_remote_access:这个不知道是啥意思,反正我每次都加了NotebookApp.open_browser:是否打开浏览器,这个在容器里默认就是False,所以可以不加NotebookApp.notebook_dir:notebook工作目录————————————————版权声明:本文为CSDN博主「Qwertyuiop2016」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/Qwertyuiop2016/article/details/120439121
JupyterNotebook
Docker
https://repo.anaconda.com/archive/
$ sh Anaconda3-2022.05-Linux-x86_64.sh
source /dellfsqd2/ST_LBI/USER/myname/app/conda/anaconda3/bin/activate$ conda init
$ conda create --name snowflakes
conda
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中科技大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutlinux.org/豆瓣:http://pypi.douban.com/simple/中科大:https://pypi.mirrors.ustc.edu.cn/simple/
PIP
Hadoop
收藏
0 条评论
回复 删除
下一页