准备环境
服务器:
192.168.1.217
CentOS Linux release 7.8.2003
hostname: master
hostname配置
vi /etc/hosts
在最后追加服务器ip和host, 并重启网络
/etc/rc.d/init.d/network restart
软件版本:
jdk8
Hbase 2.1.3 下载地址 http://archive.apache.org/dist/hbase/2.1.3/
Hadoop 2.8.4 下载地址 http://archive.apache.org/dist/hadoop/core/hadoop-2.8.4/
安装
- 创建/home/mdata目录
- 上传hadoop和hbase文件到目录
- 解压hadoop:
tar -xvf hadoop-2.8.4.tar.gz
- 解压hbase:
tar -xvf hbase-2.1.3.tar.gz
- 在 /home/mdata创建hadoopdata文件夹
mkdir hadoopdata
- 在hadoopdata创建datanode 和namenode 2个文件夹
- 在 /home/mdata创建hbasedata文件夹
mkdir hbasedata
- 在hbasedata创建pids 和tmp 2个文件夹
配置
服务器环境变量
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
export JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
HADOOP_HOME=/home/mdata/hadoop-2.8.4
export HADOOP_HOME
export PATH=$HADOOP_HOME/bin:$PATH
HBASE_HOME=/home/hbase/hbase-2.1.3
export HBASE_HOME
export PATH=$HBASE_HOME/bin:$PATH
配置hdoop-env.sh
vim /home/mdata/hadoop-2.8.4/etc/hadoop/hdoop-env.sh
将语句 export JAVA_HOME=$JAVA_HOME
此处JAVA_HOME不会生效,必须修改为 export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
配置core-site.xml
vim /home/mdata/hadoop-2.8.4/etc/hadoop/core-site.xml
configuration 添加内容为:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.217:9000</value>
</property>
</configuration>
配置mapred-site.xml
进入文件夹 cd /home/mdata/hadoop-2.8.4/etc/hadoop
复制文件并命名 cp mapred-site.xml.template mapred-site.xml
编辑文件 vim mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置 hdfs-site.xml
vim /home/mdata/hadoop-2.8.4/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/mdata/hadoopdata/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/mdata/hadoopdata/datanode</value>
</property>
</configuration>
格式化文件系统
初次运行要格式化
cd /home/mdata/hadoop-2.8.4/bin
hadoop namenode -format
启动hadoop
进入sbin目录 cd /home/mdata/hadoop-2.8.4/sbin
启动所有服务 ./start-all.sh
也可以用那些启动那些
访问服务
http://192.168.1.217:50070
如果windows客户机已经配置了host那可以使用 http://master:50070 访问
配置hbase hbase-site.xml
进入 cd /home/mdata/hbase-2.1.3/conf
配置文件 vim hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<!-- hbase的端口 -->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!-- 超时时间 -->
<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
</property>
<!-- zookeeper 集群配置。如果是集群,则添加其它的主机地址 -->
<!--<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
-->
<property>
<name>hbase.tmp.dir</name>
<value>/home/mdata/hbasedata/tmp</value>
</property>
<!-- false是单机模式,true是分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
</configuration>
配置 hbase-env.sh
vim hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
export HADOOP_HOME=/home/data/hadoop-2.8.4
export HBASE_HOME=/home/mdata/hbase-2.1.3
export HBASE_CLASSPATH=/home/mdata/hadoop-2.8.4/etc/hadoop
export HBASE_PID_DIR=/home/mdata/hbasedata/pids
export HBASE_MANAGES_ZK=true
启动 hbase
进入hbase的bin目录运行启动 start-hbase.sh
查看安装运行情况
jps
命令测试
进入hbase shell: hbase shell
执行 help
查看ddl中的create命令。我们来创建数据
create 'tb_08', {NAME => 'xixihaha'}
自己多创建几个表玩玩,试验下删除等操作命令
以上证明hbase已经运行起来了,我们来写个java测试代码试验。
pom.xml
<dependencies>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
public class HelloHbase {
public static void main(String[] args) throws IOException {
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "192.168.1.217");
Connection conn = ConnectionFactory.createConnection(config);
//HBaseAdmin hBaseAdmin = new HBaseAdmin(config);
Admin hBaseAdmin = conn.getAdmin();
HTableDescriptor tableDescriptor = new HTableDescriptor("tb_hello4");
tableDescriptor.addFamily(new HColumnDescriptor("column1"));
hBaseAdmin.createTable(tableDescriptor);
hBaseAdmin.close();
System.out.println("ok");
}
}
运行成功