文件名称 | 版本号 | 作者 | 备注 | |
---|---|---|---|---|
实操_HBase学习_持续更新。。。 | v0.0.1 | 飞豺 | 8416837 | hbase1.3.5| Ubuntu18 |
词语 | 释义 |
---|---|
稀疏矩阵 | 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵 |
稠密矩阵 | 与上述相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵 |
稠密度 | 定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度 |
使用python打印一个稀疏矩阵看看↓
from scipy import sparse
row = [2,2,3,2]
col = [3,4,2,3]
c = sparse.coo_matrix((data,(row,col)),shape=(5,6))
print(c.toarray()) # 打印一个稀疏矩阵
非0的元素好比是数据,空Cell不占空间。
这种结构方便存储互联网等数据,在统计分析时,载入数据后,可以将空值按一定规则补全。类稀疏矩阵形态的HBase表结构模拟图↓
每一行中,列的组成都是灵活的,行与行之间并不需要遵循相同的列定义。如第一行有三个字段,第二行却可以有五个或两个字段。没有字段的部分就是0,因此与上文的稀疏矩阵结构相呼应了。
图数据:两个节点之间的连接称为边,节点称为顶点,顶点的边数叫度数。
HBase集群中的RegionServers可以按逻辑划分为多个Groups,一个表可以与一个指定的Group绑定,可以将RegionServer Group理解成将一个大的集群划分成了多个逻辑子集群,借此可以实现多租户间的隔离
如ha情境下,如果存在主Master和备Master,由Zookeeper裁定主备。
sudo wget http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.3.5/hbase-1.3.5-bin.tar.gz # 下载tar包
sudo tar xvzf hbase-1.3.5-bin.tar.gz -C /home/app/
cd /home/app/hbase-1.3.5/
sudo vim conf/hbase-env.sh # 配置java
echo ${JAVA_HOME} # 查看java_home,复制过去
export HBASE_MANAGES_ZK=true # 自己管理ZK
# cd hbase根目录
sudo vim conf/hbase-site.xml # ubuntu环境 => sudo gedit conf/hbase-site.xml
粘贴下述文件
<configuration>
<property>
<name>hbase.rootdirname>
<value>file:///home/testuser/hbasevalue>
property>
<property>
<name>hbase.zookeeper.property.dataDirname>
<value>/home/testuser/zookeepervalue>
property>
configuration>
以HDFS为底层存储的配置以及页面截图↓
<property>
<name>hbase.rootdirname>
<value>hdfs://localhost:54310/hbasevalue>
property>
# cd hbase根目录 或者给命令配置环境变量
sh bin/start-hbase.sh
bin/start-hbase.sh: 51: [: false: unexpected operator
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:9NDPr4DH3jwecYKReeFtLrB6JnDVK8I8rGb6J5QOvf4.
Are you sure you want to continue connecting (yes/no)?
Are you sure you want to continue connecting (yes/no)? yes
localhost: Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
localhost: ssh_dispatch_run_fatal: Connection to 127.0.0.1 port 22: Broken pipe
mkdir: cannot create directory ‘/home/app/hbase-1.3.5/bin/../logs’: Permission denied
starting master, logging to /home/app/hbase-1.3.5/bin/../logs/hbase-abuntucc-master-ubuntu.out
/home/app/hbase-1.3.5/bin/hbase-daemon.sh: line 189: /home/app/hbase-1.3.5/bin/../logs/hbase-abuntucc-master-ubuntu.out: No such file or directory
↑没有权限创建日志目录。
# 解决Broken pipe ↓
ssh -o ServerAliveInterval=60 [email protected]
使用母机Windows远程连接该ubuntu服务器试试。
下载远程软件FinalShell
=> 点击下载
连接成功↓
远程后,结果一样。
51: [: false: unexpected operator
# 解决
sudo chown -R abuntucc hbase-1.3.5/
sudo passwd root # root密码设置
sudo chown -R abuntucc testuser/
sudo chmod 777 -R testuser/
Could not start ZK at requested port of 2181. ZK was started at port: 2182. Aborting as clients (e.g. shell) will not be able to find this ZK quorum.
↑找不到ZK
conf/hbase-site.xml
增加↓ <property>
<name>hbase.cluster.distributedname>
<value>truevalue>
property>
进程 | 所属节点 |
---|---|
HMaster | master |
HQuorumPeer | slave |
HRegionServer | slave |
解决每次启动脚本都需要输入当前系统密码↓
sudo visudo
# 在%sudo ALL=(ALL:ALL) ALL下面添加一行
yourusername ALL=(ALL) NOPASSWD: ALL
sudo vim /etc/profile
# 添加↓
export HBASE_HOME=/home/app/hbase-1.3.5
export PATH=${HBASE_HOME}/bin:${JAVA_HOME}/bin:$PATH
source /etc/profile
hbase shell # 输入后,过一会儿出现光标,然后贴入建表命令
create 'student','Sname','Ssex','Sage','Sdept','course' # 建表
describe 'student' # 查看描述
create 'teacher',{NAME=>'username',VERSIONS=>5} # 创建表示指定保存的版本数
list # 列出所有表
列出全部表,当前只有student和teacher
添加数据,表名后的第一个参数是rowKey
put 'student','920003','Sname','9527';
put 'student','920003','Ssex','Male';
put 'student','920003','Sdept','IS';
put 'student','920005','Sname','祝枝山';
put 'student','920005','course:math','95';
put 'student','920005','course:agriculture','98'
# shell需逐条添加每个单元格,不便利.用分号间隔可以一次执行多条shell命令
# 脚本
exit # 退出
待续。。。