整个版本都比较旧,hbase1.2.0版本,对应hadoop版本是2.6.0.
参考:https://aperise.iteye.com/blog/2246856
编译前需要安装snappy
编译语句:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk
export MAVEN_OPTS="-Xms256m -Xmx512m"
mvn package -Pdist,native -DskipTests -Dtar -Drequire.snappy
###由于上述mvn package命令执行失败,只好改成
mvn compile -Dmaven.test.skip=true -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib -Dbundle.snappy
如果mvn package成功,就可以到下面的目录中找到编译的文件,然后拷贝该文件夹下的,覆盖掉hadoop安装目录的lib/native 文件。
cd /home/hadoop-2.6.0-src/hadoop-dist/target/hadoop-2.6.0/lib/native
解决mvn package时报类似 Failed to parse plugin descriptor for org.apache.hadoop:hadoop-maven-plugins
解决方法: 到报错指定的模块目录下 mvn clean install,然后回到src目录,继续mvn package…
mvn package 依然会跑ut
解决方法: -DskipTests 换成 -Dmaven.test.skip=true
mvn package 始终编译失败?
解决方法: 改用mvn compile,并且保障 hadoop-common编译通过即可,后续的模块成功与否不关心。
进入到 编译hadoop-2.6.0-src/hadoop-common-project/hadoop-common/target/native/target/usr/local/lib目录下,将下面的文件拷贝出,覆盖安装目录的hadoop-2.6.0/lib/native 下面即可(同时 hadoop 安装机器也需要安装snappy,并把 /usr/local/lib下的snappy的相关文件也拷贝至安装目录的hadoop-2.6.0/lib/native )。
本机记得同时也安装一下snappy。
解压 hadoop-2.6.0.tar.gz包
别忘了将源码编译的libxx文件都拷贝至lib/native目录下(snappy的也是)
然后执行hadoop checknative -a ,查看snappy是否为true 并显示其lib路径(在hadoop安装目录下)
${hadoop_home}/etc/hadoop/hdfs-site.xml
dfs.name.dir
/home/hadoop-2.6.0/temp/hadoop/namenode
dfs.data.dir
/home/hadoop-2.6.0/temp/hadoop/datanode
dfs.replication
1
${hadoop_home}/etc/hadoop/core-site.xml
fs.defaultFS
hdfs://localhost:9000
hadoop.tmp.dir
file:/home/hadoop-2.6.0/tmp
Abase for other temporary directories.
/etc/profile
#添加
export HADOOP_HOME=/home/hadoop-2.6.0
export PATH=$PATH:$HADOOP_HOME/bin
source /etc/profile
格式化hdfs
bin/hdfs namenode -format
启动全部服务
sbin/start-all.sh
查看已启动服务
jps
参考:https://blog.csdn.net/andie_guo/article/details/44086389
解压hbase安装包
conf/hbase-env.sh
#add
export JAVA_HOME=/usr/java/jdk1.7.0_79
export HBASE_MANAGES_ZK=true
conf/hbase-site.xml
hbase.rootdir
hdfs://localhost:9000/hbase
hbase.region.replica.replication.enabled
true
hbase.replication
true
hbase.zookeeper.quorum
localhost
hbase.cluster.distributed
true
hbase.zookeeper.property.dataDir
/home/hbase-1.2.0/zk_data
/etc/profile
export HBASE_HOME=/home/hbase-1.2.0
export PATH=$PATH:$HBASE_HOME/bin
source /etc/profile
bin/start-hbase.sh
bin/hbase shell
hbase>create 'hbase_test', {NAME=>'name', COMPRESSION=>'snappy'},{NAME=>'age'}
hbase 执行create table命令报错:KeeperErrorCode = ConnectionLoss
解决方法:conf/hbase-env.sh 内添加export HBASE_MANAGES_ZK=true
hbase shell内执行list命令报: Can’t get master address from ZooKeeper; znode data == null
解决方法:
查看 hadoop的core-site.xml与 hbase的hbase-site.xml 中的hdfs地址是否匹配,
我的出现不匹配是因为core-site里 声明的是hdfs://localhost:9000, 但是 hbase-site.xml 中写的是hdfs://hbase0:9000/hbase 其中hbase0是 机器的hostname,虽然配置了/etc/hosts,但是好像依然不行。
参考链接及其他的解决方法:https://www.cnblogs.com/zlslch/p/6556870.html