概述
关于Hadoop就不介绍了,之前的文章已经提到。
HBase是一种NoSQL数据库,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。
而HBase运行环境依赖Hadoop。
安装Hadoop(3.1.1)
- 安装JDK1.7+
- 修改主机名为localhost:
sudo scutil --set HostName localhost
- 配置ssh
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
此步骤的目的是:保证命令 >ssh localhost 可以免密码正常登陆
- 安装Hadoop
> brew install hadoop
安装完之后,会提示安装的位置:/usr/local/Cellar/hadoop
如果遇到 brew link hadoop 报错(/usr/local/sbin/写错误),可能是此目录不存在或者是权限不足 - 配置运行环境
(此步需要在hadoop的安装目录下找到配置文件)
- core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:///usr/local/Cellar/hadoop/3.1.1/libexec/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
- hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/Cellar/hadoop/3.1.1/libexec/tmp/dfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>file:///usr/local/Cellar/hadoop/3.1.1/libexec/tmp/dfs/data</value>
</property>
</configuration>
- mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- hadoop-env.sh
将文件中的关于JAVA_HOME的环境变量打开并赋值
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home
- 修改环境变量
在 ~/.bash_profile 文件中写入:
export HADOOP_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec
export PATH=$PATH:${HADOOP_HOME}/bin
在终端执行命令,使环境变量生效
> source ~/.bash_profile
- 格式化HDFS
> cd /usr/local/Cellar/hadoop/3.1.1/bin
> ./hdfs namenode -format
- 运行启动Hadoop
> cd /usr/local/Cellar/hadoop/3.1.1/sbin
> ./start-dfs.sh
- 查看Hadoop启动情况
执行以下命令
> jps
输出:
* DataNode
* NameNode
* SecondaryNameNode
其中 * 号是进程号,此处忽略
以上完成了Hadoop环境搭建.
安装HBase(1.2.6.1)
- 安装HBase
> brew install hbase
安装完成提示位置:/usr/local/Cellar/hbase/ - 配置运行环境
(此步需要在hbase的安装目录下找到配置文件)
- hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///usr/local/var/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/var/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.dns.interface</name>
<value>lo0</value>
</property>
<property>
<name>hbase.regionserver.dns.interface</name>
<value>lo0</value>
</property>
<property>
<name>hbase.master.dns.interface</name>
<value>lo0</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
-
regionservers
查看是否有localhost,如果没有则添加 -
修改环境变量
在 ~/.bash_profile 文件中写入:
# for HBase
export HBASE_CLASSPATH=/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop
export HBASE_MANAGES_ZK=true
export HBASE_HOME=/usr/local/Cellar/hbase/1.2.6.1/libexec
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_REGIONSERVERS=${HBASE_HOME}/conf/regionservers
export HBASE_HOME=/usr/local/Cellar/hbase/1.2.6.1/libexec
export PATH=$PATH:${HBASE_HOME}/bin
在终端执行命令,使环境变量生效
> source ~/.bash_profile
- 运行启动HBase
> cd /usr/local/Cellar/hbase/1.2.6.1/bin
> ./start-hbase.sh
- 查看Hadoop启动情况
执行以下命令
> jps
输出:
* HRegionServer
* HMaster
* HQuorumPeer
* DataNode
* Jps
* NameNode
* SecondaryNameNode
其中 * 号是进程号,此处忽略
HBase 操作
- 启动数据库
> hbase shell
输出:
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6.1, rUnknown, Sun Jun 3 23:19:26 CDT 2018
- 数据操作
> create 'student','Sname','Ssex','Sage','Sdept','course'
> put 'student', '95001','Sname', 'Uwei'
> put 'student', '95001','Ssex', 'Male'
> put 'student', '95001','course:math', '80'
> scan 'student'
参考文章: