虚拟机中hbase和thrift的安装和运行问题,急

Kvm、VMware、Virtualbox、Xen、Qemu 等
回复
danielsunck
帖子: 1
注册时间: 2023-07-17 18:57

虚拟机中hbase和thrift的安装和运行问题,急

#1

帖子 danielsunck » 2023-07-17 19:32

我是个ubuntu新手,自己在win11平台上通过virtualbox7.0.8安装了ubuntu18.04 LTS, 并且安装vagrant来通过共享文件夹编写django项目。
最近遇到一个很奇怪的事情,先说说我已经做过的东西,
1.这一步没啥问题,JDK已经安装,并且解压缩到了/usr/lib/jvm中,修改过环境变量

代码: 全选

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_291 
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
2.安装HBASE,

代码: 全选

/vagrant$ tar xzvf hbase-2.4.4-bin.tar.gz
cd hbase-2.4.4
3.修改JAVA_HOME环境变量,

代码: 全选

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_291
然后修改了配置文件conf/hbase-site.xml

4.重点来了,在安装编译Thrift这里出现了第一个问题,我不知道是否已经算解决了,还请大神帮忙下
1)安装依赖:

代码: 全选

sudo apt-get install automake bison flex g++ git libboost-all-dev libevent-dev libssl-dev libtool make pkg-config
2)

代码: 全选


tar zxf thrift-0.14.2.tar.gz 

cd thrift-0.14.2
#下面这一步,因为我在vagrant/共享文件夹内执行的时候会出现configure: error: cannot run C compiled programs错误,所以我首先尝试了./configure --host=x86_64,确实是通过了,但是到了make的时候,就是各种报错error: ‘::malloc’ has not been declared, 不得已,我将thrift-0.14.1.tar.gz 复制到home/文件夹内进行解压缩,以下命令通过sudo完成,就顺利完成了。
sudo ./configure
sudo make
sudo make install
然后我通过

代码: 全选

/home$ cp -rL thrift-0.14.2/ /vagrant/
将代码拷贝到共享文件夹内,且建立连接
问题1:这里流程是否正确?是否在windows的共享文件夹环境下由于磁盘是NTFS是永远无法运行linux编译的?但是我这个文件夹是共享的,那么Linux里也有一个这样的文件夹呀,难道这个文件夹不属于linux而是属于windows?求指导

5.第二个重点,也是重中之重。然后我开始在虚拟机的共享文件夹内操作启动HBASE和THRIFT

代码: 全选

cd hbase-2.4.4
chmod +x bin/*.sh
sudo bin/start-hbase.sh
sudo bin/hbase-daemon.sh start thrift
昨天晚上通过

代码: 全选

chmod +x bin/*.sh
,运行第三句和第四局指令都没有问题。但是今天早上起来重启虚拟机之后,又出现了以往的问题,第三局可以执行,但是第四句命令出现

代码: 全选

sudo: ./bin/hbase-daemon.sh: command not found
,如果去掉sudo就出现

代码: 全选

-bash: bin/hbase-daemon.sh: Permission denied
如果我此时重启虚拟机,很诡异的事情发生了,先执行第四句通过了!但是第三句就出现Permission Denied
重启虚拟机后,使用

代码: 全选

ls -l hbase-2.4.4/bin/
发现start-hbase.sh和hbase-daemon.sh都是绿色,

代码: 全选

-rwxrwxrwx 1 vagrant vagrant  2372 Jan 22  2020 start-hbase.sh
-rwxrwxrwx 1 vagrant vagrant 12502 Jan 22  2020 hbase-daemon.sh
但是只要我先运行

代码: 全选

sudo bin/start-hbase.sh
, 再次查看hbase-daemon.sh的信息,竟然变成了白色,start-hbase.sh仍旧是绿色

代码: 全选

-rwxrwxrwx 1 vagrant vagrant  2372 Jan 22  2020 start-hbase.sh
-rw-rw-rw- 1 vagrant vagrant 12502 Jan 22  2020 hbase-daemon.sh
之后无论我怎么修改权限我使用了如下命令:

代码: 全选

sudo chmod -R 777 ./hbase-2.4.4
sudo chown -R root ./hbase-2.4.4 #这句话过后,用户仍旧显示vagrant并没有变成root

代码: 全选

vagrant@vagrant:/vagrant/hbase-2.4.4$ ls -l ./bin/hbase-daemon.sh
-rw-rw-rw- 1 vagrant vagrant 12502 Jan 22  2020 ./bin/hbase-daemon.sh
vagrant@vagrant:/vagrant/hbase-2.4.4$ sudo chmod -R 777 ./bin/hbase-daemon.sh
vagrant@vagrant:/vagrant/hbase-2.4.4$ ls -l ./bin/hbase-daemon.sh
-rw-rw-rw- 1 vagrant vagrant 12502 Jan 22  2020 ./bin/hbase-daemon.sh
问题2:现在等于是我的HBASE可以启动,可以通过访问192.168.33.10:16010看到后台界面,但是无法启动thrift,这导致我无法使用happybase操作HBASE。有没有遇到过这种情况的大哥可以帮我一下?谢谢啦
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: 虚拟机中hbase和thrift的安装和运行问题,急

#2

帖子 astolia » 2023-07-19 1:42

danielsunck 写了: 2023-07-17 19:32 问题1:这里流程是否正确?是否在windows的共享文件夹环境下由于磁盘是NTFS是永远无法运行linux编译的?但是我这个文件夹是共享的,那么Linux里也有一个这样的文件夹呀,难道这个文件夹不属于linux而是属于windows?求指导
专门在18.04.6的虚拟机下试了下,编译过程中没有任何问题。configure和make我没用sudo,挂载共享文件夹我是用的vbox的自动挂载。
对linux而言,挂载的目录对应的文件系统不是ntfs,而是vbox的vboxsf。对其下文件的读写都是交由vbox的vboxsf驱动来处理,所以如果驱动中有bug,就可能产生各种奇怪的问题
还有就是vboxsf驱动并不会将你所有的操作都转交给后端宿主机上的文件系统(因为不同文件系统支持的特性不同),所以后面你遇到的chmod/chown无效的问题再正常不过了。
danielsunck 写了: 2023-07-17 19:32 问题2:现在等于是我的HBASE可以启动,可以通过访问192.168.33.10:16010看到后台界面,但是无法启动thrift,这导致我无法使用happybase操作HBASE。有没有遇到过这种情况的大哥可以帮我一下?谢谢啦
hbase-daemon.sh启动失败这个应该还是vboxsf把它的可执行权限弄丢了的锅。不过既然它只是个shell脚本,直接用bash hbase-daemon.sh这样运行就不用管它有没有可执行权限了

另外,不知道你为什么都要用一些旧版本的软件,18.04.6源里自带的openjdk版本也比你用的新。你遇到的有些编译问题,可能在新版本中是修复了的。vbox的7.0.10版也刚发布了,可能有些改善,可以安装新版试试。
回复