新手向:ubuntu 18.04 虚拟机伪分布式安装笔记(hadoop 2.9.2 + hbase 2.2.6)

本文创建于 2020-11-07

在此感谢网上所有大佬的踩坑经验分享

2020-11-08 更新,解决每次重启机器都需要重新应用环境变量的问题。

另外经大佬告知,所有的用户权限都有问题,全部需要用 hadoop 用户进行更改而不是用root用户,不然会出现权限问题,所以所有内容再次进行更新,并将默认使用语言改为英文

2020-11-09 重新测试教程,将系统安装为了英文,简化了一些步骤,将几乎所有 gedit 改为 vim,因为 gedit 的启动速度太低

2020-11-11实测更新到 hadoop 安装完成,解决主机无法访问8088端口的问题。更新hbase 2.2.6安装教程

软件环境:

win10 2004 专业版

ubuntu 18.04.5

vm workstation 16

jdk 1.8.0_202

hadoop 2.9.2

hbase 2.2.6

系统安装

安装前配置

创建新的虚拟机——自定义——下一步——稍后安装操作系统,下一步——点击 linux,版本选择 Ubuntu 64位——虚拟机名称改为 master,然后选择镜像文件保存的位置下一步——cpu 数量不改,更改内核数量为 2下一步——内存改为 1660MB,下一步——网络类型不用改,下一步——控制器类型不用改,下一步——磁盘类型不用改,下一步——选择磁盘不用改,下一步——磁盘大小不用改,点击将虚拟磁盘存储为单个文件下一步——指定磁盘文件不用改,下一步——点击自定义硬件,点击 DVD 那项,右侧点击使用ios映像文件选择Ubuntu系统镜像文件,然后点击下边的关闭——点击完成

开始安装

点击开启此虚拟机

欢迎界面——默认英文,点击右侧install ubuntu——

键盘布局不用改,点continue——

点击右上角的网络图标,点击 wired connected,点击turn off 关掉网络连接,然后点击minimal installation,下边的不用勾选,点击 continue——

安装类型不用改,点击install now,弹窗点击continue——

地区直接改成 Shanghai,点 continue——

name 输入 hadoop,下边的不用改,密码自己设个简单的,我设置成了 1,然后点 continue——

等待安装完成,然后点击Restart Now

重启之后还是打不开,会提示一行英文,意思是卸载系统镜像之后按 enter:

就需要找到 vm 菜单栏的虚拟机——然后点击最后一项设置——点击dvd,将右边的启动时连接取消勾选,然后点击下方的确定——然后回到ubuntu界面按回车,即可自动重启

然后用你之前设置的密码登录进系统

然后会有ubuntu系统特性的提示,一直点next即可

准备步骤

一个无用的小设置(设置从不锁屏,这步做不做都行)

点击右上角的 关机图标 打开下拉菜单,然后点击 第一个圆形按钮 setting,即设置——点击 power——将空白屏幕后边的时间改为 Never——然后关掉窗口即可

安装 vmtools(如果系统没有图形界面,则不需要安装)

安装的好处:

可以自动调整分辨率适应窗口大小

可以直接从主机拖拽文件到虚拟机里

可以从主机复制文字直接粘贴到虚拟机里

图形安装方式

ubuntu 虚拟机开机状态下

首先在 vm workstation 菜单栏找到 虚拟机——安装 VMware tools

然后桌面会显示一个 dvd 的图标,双击打开

将里面 tar.gz 后缀的那个文件拖到桌面

然后在刚刚拖到桌面的那个文件点右键——点extract here

双击打开刚刚提取到桌面的那个新文件夹——进去找到**.pl后缀**的文件

然后右键空白处,点击open terminal

将 .pl 后缀的文件拖拽到终端的窗口中,删掉开头和结尾的单引号,然后在命令最前面增加 sudo 回车,比如

sudo /home/hadoop/Desktop/VMwareTools-10.3.21-14772444/vmware-tools-distrib/vmware-install.pl

然后第一个提示输入 y 再回车,之后一路默认回车即可

安装完成后桌面的文件就都可以删掉了

最后重启一下即可

此时可以测试一下虚拟机里的内容是否能成功复制到win10里,win10 里的内容是否可以复制粘贴到虚拟机里

ps:ubuntu里不能用快捷键进行复制粘贴,只能通过鼠标右键

copy:复制

paste:粘贴

修改镜像源

先检查是否联网,如果提示 failed to fownload repository infotmation,可能是因为没有打开网络,点击右上角的 关机图标 打开下拉菜单,点击wired connected,点击 connect 打开网络连接即可,

右键空白处,点击open terminal

输入命令更改镜像源

sudo gedit /etc/apt/sources.list

将里面内容全部删掉,然后将以下内容复制粘贴过去

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

输入命令刷新镜像源

sudo apt-get update 

如果提示有新版本的ubuntu可用,就选择不升级,然后确定不升级

如果提示 software update,就可以更新,更新完成后会提示重启系统,重启即可

(此处以下所有内容需要更新完镜像源之后再进行操作)

安装vim

右键空白处,点击open terminal

输入命令安装

sudo apt install vim

所有提示一路回车即可

几个常用的按键:

刚打开文件时:

点击 i 进入编辑模式,然后才可以正常输入

输入完毕时,需要先按 Esc,输入英文下的:,然后输入对应命令才能退出

q:无修改退出

wq:修改并退出的意思,

!wq:强制修改并退出的意思,

!q:就是不保存修改强制退出的意思

安装 jdk

也可以用1.8的其他版本,只要记得到时候把对应的路径改一下即可

然后去官网下载 jdk(版本为1.8.0_202)下载网址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html

找到 jdk-8u202-linux-x64.tar.gz,点击下载

在弹窗勾选 I reviewed and accept bulabula,然后点击 download

然后会提示需要登陆 oracle,可以用下面的账号进行登录

账号:908344069@qq.com

密码:Java2019

点击登录后就会继续下载

如果是从win10下载的,下载完后可以把安装包直接拖拽到虚拟机的桌面上

如果是从虚拟机里下载的,就找到下载目录,然后拖拽到桌面上即可

PS:此处以下的所有命令都可以通过右键复制粘贴到虚拟机里了

输入以下命令新建 JDK 安装位置:

sudo mkdir /usr/java  

输入命令移动 jdk 到Java 目录下,如果你系统是英文模式就把桌面改为Desktop

sudo mv /home/hadoop/Desktop/jdk-8u202-linux-x64.tar.gz /usr/java

切换到 java 目录

cd /usr/java 

把压缩包解压安装

sudo tar zxvf jdk-8u202-linux-x64.tar.gz  

输入命令打开文件配置环境变量

sudo vim ~/.bashrc   

i进行编辑,然后在末尾加上以下内容(可以复制粘贴)

export JAVA_HOME=/usr/java/jdk1.8.0_202 
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin

然后按Esc退出编辑,然后输入:wq保存并退出

然后在终端里输入以下命令,使环境变量生效

source ~/.bashrc 

查看java安装版本

java –version 

如果环境变量配置的没有问题,就会显示 什么什么 1.8.0_202

如果有问题,请返回之前的步骤检查环境变量的输入有没有问题

配置master的网络

修改vmware虚拟网络编辑器

找到 vm workstation 菜单栏的编辑——虚拟网络编辑器——vmnet8

点击右下角更改设置,然后会弹窗提示是否允许应用对设备进行更改,点,然后会重新打开虚拟网络编辑器窗口,重新点击 vmnet8

取消勾选使用本地DHCP服务将IP地址分配给虚拟机,然后点击 NAT设置,把网关 ip 记下来,比如我的就是 192.168.40.2

记下来以后关掉这个窗口,然后在 虚拟网络编辑器 窗口点击确定即可

VMware网络适配器设置

找到 win10 右下角的网络连接图标右键——打开网络和 internet 设置——新打开的窗口右侧往下滑,找到更改适配器选项——右键点击 vmnet8(这里如果 vmware 开头的网络连接显示禁用的话就先把两个右键点击启用)——属性——双击 internet 协议版本 4——点击使用下面的ip地址,然后输入 192.168.40.1,就是把刚才你记下来的那个 ip 的最后一个数,改成 1,其他项不用填,全部点击确定关掉即可

如果你之前记下来的网关ip是 192.168.131.2

你就填 192.168.131.1

设置Ubuntu虚拟机网络适配器

然后找到 vm workstation 菜单栏——虚拟机——设置——网络适配器——右边的网络连接改为自定义,然后在下拉菜单里选 vmnet8(NAT模式)——确定

ubuntu内网络配置文件设置

右键 ubuntu 桌面,点击 open terminal 打开终端
输入命令修改网络配置文件

sudo vim /etc/netplan/01-network-manager-all.yaml

这里注意,如果你打开的文件里什么都没有,请查看路径输入的对不对

替换配置文件内容为

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:                      # 网卡名,以ubuntu操作系统的网卡名称为准
      dhcp4: no                 # ipv4关闭dhcp,用static模式
      dhcp6: no                 # ip6关闭dhcp
      addresses:
        - 192.168.40.123/24     #本机IP
      gateway4: 192.168.40.2    #vmware网关IP
      nameservers:               #DNS服务器
        addresses: [114.114.114.114, 8.8.8.8, 1.1.1.1]

输入时,注意层级关系,注意对齐缩进,可以直接复制粘贴以防打错

需要把本机ip的前九位换成和你网关ip一样的前九位

比如我之前记下来的 网关ip 是 192.168.40.2,我就可以改成 192.168.40.123/24,后面的/24是端口号,不能省略,然后gateway4填写你自己的网关ip

注意所有对齐缩进的时候都不能使用tab,只能用空格,然后注意字母别打错,#号后面的是注释,不需要打进去

然后点击Esc退出编辑模式,然后输入:wq保存并关掉,在终端里输入命令刷新网络配置

sudo netplan apply

这时候虚拟机已经可以正常联网,如果连不上网,重新检查配置文件内容输入的对不对,ip有没有改成你自己的等等,注意每次修改完了都要再输入命令刷新一遍网络配置

克隆出slave1和slave2

先将虚拟机关机,然后找到vm 菜单栏——虚拟机——管理——点击克隆

然后点下一步

在左侧边栏右键点击master——克隆源默认即可,点下一步——克隆方法默认为创建链接克隆即可,点下一步——更改虚拟机名称为 slave1,然后点完成——点关闭

然后回到master页面,再按照以上步骤创建一个slave2,即虚拟机名称改为slave2

创建完成后把 slave1 和 slave2 都开机,用户名和密码都和 master 一样

更改slave1的网络配置文件(slave2也要做一遍)

右键 slave1 的桌面,打开终端,

输入命令修改网络配置文件

sudo vim /etc/netplan/01-network-manager-all.yaml

打开之后只需要把本机ip那行的最后三位数改一下即可

比如我slave1改为了192.168.40.124/24,

slave2 改为了192.168.40.125/24,

addresses:
    - 192.168.40.124/24        #本机IP

改完以后,esc退出编辑,:wq保存并退出

执行命令编译网络配置

sudo netplan apply

然后在 slave2 上也把以上步骤再做一遍

然后更改主机名称(master、slave1、slave2都要进行更改,此时三个虚拟机可以同时处于运行状态,然后挨个进行操作)

sudo vim /etc/hostname

在master上就改为master,在slave1上就改成slave1,改完保存并退出

然后输入命令更改 127.0.1.1对应名称,并在最后添加集群各机器的ip和名字,ip为之前设置的三个本机ip

sudo vim /etc/hosts

在打开的文件的最后一行新增以下内容(这里的ip要和你设置的ip一一对应)

192.168.40.123 master
192.168.40.124 slave1
192.168.40.125 slave2

注意以上这三行三个机子都要改,而且要保证master、slave1、slave2的都一模一样

最后,将master,slave1和slave2都重启使其生效

配置 SSH 免密钥登陆

重启完成后,先在三个虚拟机的桌面右键打开终端

在master slave1 slave2上安装ssh并生成密钥

输入命令进行安装,一路回车即可

sudo apt-get install openssh-server 

启动服务(经测试好像默认安装完成就启动了,如果没有启动的话就输入命令启动一下)

sudo /etc/init.d/ssh restart

查看是否成功运行

ps -e | grep ssh

如果运行成功会有ssh-agent和sshd两个进程

然后在 master 输入命令生成SSH公钥,一路回车即可

ssh-keygen -t rsa

切换到ssh目录下

cd ./.ssh

让 master 节点可以无密码 SSH 本机,在 master 节点上执行

cat ./id_rsa.pub >> ./authorized_keys

完成后可执行 ssh master验证一下(提示输入 yes,)

连接成功后再输入命令 exit 切换回原来的账户即可

在 master 节点上输入命令将公匙分别传输到 slave1和slave2节点,过程中需要输入 slave 节点的密码,传输100%以后就是传过去了:

scp ~/.ssh/id_rsa.pub hadoop@slave1:/home/hadoop/ #传输给slave1
scp ~/.ssh/id_rsa.pub hadoop@slave2:/home/hadoop/ #传输给slave2

连接

接着在 slave1节点上,输入命令创建ssh文件目录,若已存在则忽略

mkdir ~/.ssh

输入命令把公钥加入授权

cat /home/hadoop/id_rsa.pub >> ~/.ssh/authorized_keys

输入命令删掉原本的公钥

rm /home/hadoop/id_rsa.pub

对 slave2 重复以上操作。

在master节点输入命令检验是否能成功登陆,登录成功的话输入 exit 退出登录

ssh slave1
exit
ssh slave2
exit

配置时钟同步

在master上安装ntp

安装NTP软件,一路默认即可

sudo apt install ntp

确认安装版本

sntp --version

打开镜像源列表进行编辑

sudo vim /etc/apt/sources.list

在最后一行增加这个语句,编辑完成后保存并退出

deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

更新镜像源

sudo apt update

更新完成以后输入以下命令安装软件,一路回车即可

sudo apt install sysv-rc-conf

安装完成后复制文件

sudo cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig

然后将当前目录切换至/usr/sbin/下,

cd /usr/sbin/

设置权限

sudo chmod 755 chkconfig

安装完成后启动NTP

sudo chkconfig ntpd on     		

启动完成后配置服务器,打开 ntp 参数文件,按i进入编辑模式

sudo vim /etc/ntp.conf

在 pool 0 1 2 3 的四行代码的前面打上#号注释掉
然后在 pool 0 上面一行加上

server cn.pool.ntp.org iburst

即最后形式为

server cn.pool.ntp.org iburst
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst

然后esc退出编辑,:wq保存关掉

输入命令重启NTP服务

sudo service ntp restart     

查看NTP服务,

systemctl status ntp

CTRL+C 退出查看

搜索资料了解到,ubuntu 16.04 lts的版本开始,ntpd就不再被单独支持了,而是被并入到了ntp里,所以将重启和查看命令改为ntp即可,具体解释:https://askubuntu.com/questions/1009729/unable-to-start-ntpd-service

在 slave1 上安装chrony(slave2步骤相同)

安装chrony

sudo apt install chrony

编辑配置文件

sudo vim /etc/chrony/chrony.conf

将配置文件中的4个pool注释掉,然后在pool的上一行添加

server master iburst

即最后形式为:

server master iburst
#pool ntp.ubuntu.com        iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2

esc:wq保存并退出

更新配置后需要重启 Chrony 服务

sudo service chronyd restart

打开镜像源列表进行编辑

sudo vim /etc/apt/sources.list

在最后一行增加这个语句

deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

更新镜像源

sudo apt update

更新完成以后输入以下命令安装软件,一路回车即可

sudo apt install sysv-rc-conf

安装完成后复制文件

sudo cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig

然后将当前目录切换至/usr/sbin/下,

cd /usr/sbin/

设置权限

sudo chmod 755 chkconfig

然后运行chronyd

sudo chkconfig chronyd on

显示当前时间源的信息

chronyc sources

如果正常,就会显示master,然后后面会显示状态和延时秒数

至此linux集群安装完成

安装 hadoop2.9.2

下载 hadoop

http://hadoop.apache.org/releases.html

找到版本 2.9.2,点击后边的 binary 进行下载

如果是从master虚拟机里面下载的,就打开文件,点击下载,然后将文件拖拽到桌面

如果是从win10下载的,就找到文件,然后拖拽到master节点的桌面

配置hadoop

master下

切换目录到桌面

cd /home/hadoop/Desktop

然后输入命令解压hadoop:

tar -xzvf hadoop-2.9.2.tar.gz

将hadoop-2.9.2移动到/usr/目录:

sudo mv hadoop-2.9.2/  /usr/

然后开始配置参数文件:(依旧是只在master上进行操作)

先将目录切换到参数文件目录下

cd /usr/hadoop-2.9.2/etc/hadoop/
配置hadoop-env.sh

打开配置文件

sudo vim hadoop-env.sh

i进入编辑模式

将export JAVA_HOME=${JAVA_HOME}
改为
export JAVA_HOME=/usr/java/jdk1.8.0_202

esc,:wq保存并退出

配置 mapred-env.sh

先输入命令打开这个配置文件

sudo vim mapred-env.sh

然后找到# export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 这一行,然后在这一行的下面增加以下代码

export JAVA_HOME=/usr/java/jdk1.8.0_202

然后保存退出vim

配置 yarn-env.sh

输入命令打开这个配置文件

sudo vim yarn-env.sh

然后找到export YARN_CONF_DIR什么的,然后在下一行增加以下代码,来修改 java 路径

export JAVA_HOME=/usr/java/jdk1.8.0_202

保存,关掉

配置core-site.xml文件:

打开文件

sudo vim core-site.xml

然后

将
<configuration>
</configuration>
修改为如下代码:
<configuration>
		<!--set master name-->
        <property>
                <name>fs.default.name</name>
                <value>hdfs://master:9000</value>
                <description>指定HDFS的默认名称</description>
        </property>
        <!--set master location-->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
                <description>HDFS的url</description>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/hadoop-2.9.2/hdfs/tmp</value>
                <description>节点上本地的hadoop临时文件夹</description>
        </property>
</configuration>

保存关掉

配置hdfs-site.xml文件:

输入命令打开文件

sudo vim hdfs-site.xml

然后

将
<configuration>
</configuration>
修改为如下代码:
<configuration>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/hadoop-2.9.2/hdfs/tmp/dfs/name</value>
                <description>namenode上存储hdfs名字空间元数据</description>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/hadoop-2.9.2/hdfs/tmp/dfs/date</value>
                <description>datanode上数据块的物理存储位置</description>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
                <description>副本个数,默认是3,应小于datanode机器数量</description>
        </property>
</configuration>

保存关掉

配置yarn-site.xml文件:

打开文件

sudo vim yarn-site.xml

然后

将
<configuration>
<!-- Site specific YARN configuration properties -->
</configuration>
修改为如下代码:
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
                <description>指定resourcemanager所在的hostname</description>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
                <description>nodemanager上运行的附属服务,需配置成mapreduce_shuffle,才可运行</description>
        </property>
</configuration>
配置mapreduce

先输入命令拷贝并重命名文件:

cp mapred-site.xml.template mapred-site.xml

修改文件:

sudo vim mapred-site.xml  

然后

将
<configuration>
</configuration>
修改为如下代码:
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>master:19888</value>
        </property>
</configuration>

保存并关掉

配置master的slaves文件

打开文件

sudo vim slaves

删掉原来的内容:localhost
改为

slave1
slave2
配置hadoop环境变量

打开文件

sudo vim ~/.bashrc 

在末尾添加入下代码:

export HADOOP_HOME=/usr/hadoop-2.9.2
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

使配置立即生效:

source ~/.bashrc
复制master上的hadoop文件夹到两个slave节点

这里可以通过开启两个终端窗口来同时进行传输,因为传输时间略长

scp -r /usr/hadoop-2.9.2 hadoop@slave1:~/
scp -r /usr/hadoop-2.9.2 hadoop@slave2:~/

传输完成以后,在slave1和slave2上分别输入命令将hadoop-2.9.2移动到usr目录:

sudo mv /home/hadoop/hadoop-2.9.2 /usr/
在两个slave上再次配置环境变量

打开文件

sudo vim ~/.bashrc 

在末尾添加入下代码:

export HADOOP_HOME=/usr/hadoop-2.9.2
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

在两个机子上都执行以下命令使配置立即生效:

source ~/.bashrc 
启动HDFS为分布式模式

在master slave1 slave2三个节点上执行以下命令

hdfs namenode -format

如果没出现异常,就不用管以下内容

如果出现异常,可能是对/usr/hadoop-2.9.2/hdfs/name/current目录没有写入权限
需使用如下命令添加写入权限:
sudo chmod -R 777 /usr/hadoop-2.9.2

如果添加权限之后还是出现异常,就检查之前的配置文件里有没有输错什么

在master上开启hadoop

使用以下命令启动,如果提示输入就输入 yes

start-dfs.sh
start-yarn.sh
或者
start-all.sh 

在 master slave1和slave2上分别输入以下命令查看hadoop进程

jps

此时会显示出 master 节点有 4 个 ResourceManager,Jps, NameNode, SecondaryNamenode

slave 有 jps,DataNode,NodeManager

以上进程缺少任意一个都表示有错。

输入命令在 master 节点查看 DataNode 是否正常启动。以我为例,Live datanodes 为 2,与 slave 数量一致,集群启动成功。

hdfs dfsadmin -report

补充知识(非必做):

如何关闭 Hadoop

cd /usr/local/hadoop
stop-all.sh

测试是否配置成功

win10浏览器网址栏分别输入:master:50070 以及 master:8088 测试是否能打开

能打开即为成功

其他测试方法

输入命令

sudo netstat -tpnl | grep java

可以看到50070和8088端口都是LISTEN状态,即为正常状态,否则可能出现只开一半的情况

安装 hbase 2.2.6

正式安装之前请确保hadoop已经可以正常运行

安装hbase(在master上操作)

先将压缩包移动到用户目录下

mv hbase-2.2.6-bin.tar.gz /home/hadoop/

切换到用户目录下

cd

解压压缩包到当前目录

tar zxvf hbase-2.2.6-bin.tar.gz 

修改hbase配置文件(在master上)

编辑hbase配置文件

sudo vim ~/hbase-2.2.6/conf/hbase-env.sh 

在里面任意地方新增如下语句

export JAVA_HOME=/usr/java/jdk1.8.0_202
export HBASE_CLASSPATH=/home/hadoop/hbase-2.6.2/conf
export HBASE_MANAGES_ZK=true

切换到hbase配置文件目录下

cd ./hbase-2.2.6/conf/

编辑hbase配置文件

sudo vim hbase-site.xml 

将里面的内容改为

<configuration>
<!-- hadoop集群名称 -->
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://master:9000/hbase</value>
        </property>
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>master,slave1,slave2</value>
        </property>
        <property>
                <name>hbase.master.info.port</name>
                <value>60010</value>
        </property>
   <!-- 是否是完全分布式 -->
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
 <!-- 完全分布式式必须为false -->
        <property>
                <name>hbase.unsafe.stream.capability.enforce</name>
                <value>false</value>
        </property>
<!-- 指定缓存文件存储的路径 -->
        <property>
                <name>hbase.tmp.dir</name>
                <value>/home/hadoop/hbase-2.2.6/hbase_tmp</value>
        </property>
</configuration>

打开这个文件

sudo vim /home/hadoop/hbase-2.2.6/conf/regionservers

将里面内容替换为

slave1
slave2

解决jar包冲突

删掉master上/home/hadoop/hbase-2.6.2/lib/client-facing-thirdparty下的 slf4j-log4j12-1.7.25.jar文件即可

复制master上hbase文件夹到两个slave节点

这里可以通过开启两个终端窗口来同时进行传输,因为传输时间略长,

scp -r ~/hbase-2.2.6 hadoop@slave1:~/
scp -r ~/hbase-2.2.6 hadoop@slave2:~/

修改master、slave1、slave2的环境变量

打开环境变量配置文件

sudo vim ~/.bashrc

在末尾添加以下内容

export HBASE_HOME=/home/hadoop/hbase-2.2.6
export PATH=$HBASE_HOME/bin:$PATH
export PATH=$HBASE_HOME/lib:$PATH

使环境变量立即生效

source ~/.bashrc

以上步骤在三个节点上均需要操作一遍

测试hbase

启动hbase前必须先启动hadoop

在master上使用以下命令启动hadoop,如果提示输入就输入 yes

start-dfs.sh
start-yarn.sh
或者
start-all.sh 

然后启动hbase

start-hbase.sh

如果正常的话,就会出现

HMaster
SecondaryNameNode
HQuorumPeer
NameNode
Jps
ResourceManager
DataNode(这个进程我暂时没有,不知道为啥)

等进程,然后用win10打开网址 master:60010,如果能正常显示即为成功

停止hbase运行(停止hadoop前必须先停止hbase)

stop-hbase.sh

至此,hbase安装完成

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是搭建分布式Hadoop环境的步骤: 1. 安装Java Hadoop需要Java环境,所以需要先安装Java。 ``` sudo apt-get update sudo apt-get install default-jdk ``` 2. 安装Hadoop 下载Hadoop安装包并解压: ``` wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz tar -xzvf hadoop-2.10.1.tar.gz sudo mv hadoop-2.10.1 /usr/local/hadoop ``` 3. 配置Hadoop环境变量 打开hadoop-env.sh文件进行编辑: ``` sudo nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh ``` 将以下内容添加到文件的末尾: ``` export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 保存并退出。 4. 配置Hadoop 打开core-site.xml文件进行编辑: ``` sudo nano /usr/local/hadoop/etc/hadoop/core-site.xml ``` 将以下内容添加到文件的末尾: ``` <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 保存并退出。 打开hdfs-site.xml文件进行编辑: ``` sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml ``` 将以下内容添加到文件的末尾: ``` <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value> </property> </configuration> ``` 保存并退出。 5. 格式化Hadoop文件系统 运行以下命令来格式化Hadoop文件系统: ``` hdfs namenode -format ``` 6. 启动Hadoop 运行以下命令来启动Hadoop: ``` start-all.sh ``` 7. 检查Hadoop状态 运行以下命令来检查Hadoop状态: ``` jps ``` 如果一切正常,你应该看到以下进程: ``` NameNode SecondaryNameNode DataNode ResourceManager NodeManager ``` 这样,分布式Hadoop环境就搭建完成了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张猿

0元代表鼓励,1元代表认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值