HADOOP+HBASE存储Azure中storage

Hdfs+hbase持久化到azure storage

Hbase版本:hbase-2.5.10-hadoop3-bin.tar.gz  
Hadoop版本:hadoop-3.3.6.tar.gz 

环境变量配置:vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 openjdk8不是必要的)

export HBASE_HOME=/usr/local/hbase

export HADOOP_HOME=/usr/local/hadoop

export HADOOP_OPTIONAL_TOOLS=hadoop-azure hadoop持久化到azure中的必要环境变量)

#export HBASE_CLASSPATH=/usr/local/hadoop/share/hadoop/tools/lib/hadoop-azure-3.3.6.jar:/usr/local/hadoop/share/hadoop/tools/lib/hadoop-azure-datalake-3.3.6.jar:$HBASE_CLASSPATH

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin

export CLASSPATH=$CLASSPATH:/usr/local/hadoop/share/hadoop/tools/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

Hadoop搭建:

tar xf hadoop-3.3.6.tar.gz -C /usr/local/

cd /usr/local/

mv hadoop-3.3.6 hadoop

cd hadoop

vim etc/hadoop/hdfs-site.xml

fs.defaultFS

hdfs://hadoop1:8020

dfs.namenode.name.dir

/usr/local/hadoop/dfs/data

dfs.datanode.data.dir

/usr/local/hadoop/dfs/datanode

dfs.replication

数量-->

3

dfs.webhdfs.enabled

true

dfs.permissions

false

dfs.namenode.secondary.http-address

10.3.66.123:50090

Vim etc/hadoop/core-site.xml

fs.azure.account.auth.type

认证类型OAuth—>

OAuth

fs.defaultFS

abfs://[email protected]

hadoop.tmp.dir

/usr/local/hadoop/data

fs.azure.account.oauth.provider.type

org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider

fs.azure.account.oauth2.client.endpoint

client.endpoint

fs.azure.account.oauth2.client.id

在门户中找到Azure Active Directory,然后找到应用注册-->

client.id

fs.azure.account.oauth2.client.secret

在门户中找到Azure Active Directory,然后找到应用注册-->

client.secret

ha.zookeeper.quorum

hadoop1:2181

vim etc/hadoop/hadoop.env.sh

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

如果用root启动Hdfs需要在sbin/start/stop-dfs.sh里面添加

HDFS_DATANODE_USER=root

HDFS_DATANODE_SECURE_USER=root

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

HDFS_ZKFC_USER=root

HDFS_JOURNALNODE=root

启动hdfs

./sbin/start-dfs.sh

关闭 hdfs

./sbin/stop-dfs.sh

安装hbase

tar xf  hbase-2.5.10-hadoop3-bin.tar.gz  -C /usr/local/

cd /usr/local/

mv hbase-2.5.10 hbase

cd  hbase

vim conf/hbase-site.xml

hbase.cluster.distributed

true

hbase.tmp.dir

存储路径-->

./hbase-2.5.10

hbase.zookeeper.quorum

hadoop1,hadoop2,hadoop3

hbase.rootdir

存储路径-->

abfs://[email protected]/hbase-2.5.10

fs.defaultFS

abfs://[email protected]

hbase.unsafe.stream.capability.enforce

false

因为需要将hbase数据持久化到azure storage中,连接azure storage需要加认证所以需要配置core-site.xml文件

vim core-site.xml

fs.azure.account.auth.type

OAuth

fs.azure.account.oauth.provider.type

org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider

fs.azure.account.oauth2.client.endpoint

client.endpoint

fs.azure.account.oauth2.client.id

在门户中找到Azure Active Directory,然后找到应用注册-->

client.id

fs.azure.account.oauth2.client.secret

在门户中找到Azure Active Directory,然后找到应用注册-->

client.secret

添加hbase存储到azure中的依赖,

mv /usr/local/hadoop/share/hadoop/tools/lib/hadoop-azure-* /usr/local/hbase/lib

如果没有这两个jar包会包缺少依赖的报错内容如下

ERROR [main] regionserver.HRegionServer: Failed construction RegionServer

java.lang.NoClassDefFoundError: org/apache/hadoop/fs/statistics/IOStatisticsSource

vim hbase-env.sh

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HBASE_CLASSPATH=$HBASE_CLASSPATH:/usr/local/hadoop/share/hadoop/common/hadoop-common-3.3.6.jar:/usr/local/hadoop/share/hadoop/common/lib/hadoop-shaded-guava-1.1.1.jar

如不添加环境变量会影响master或者regionserver启动不了,报错如下

ERROR [main] regionserver.HRegionServer: Failed construction RegionServer

java.lang.NoClassDefFoundError: org/apache/hadoop/thirdparty/com/google/common/base/Preconditions

at

如果配置完成后还是启动不了regionserver/master

可以尝试先删除zookeeper中的/hbase

./bin/zkCli.sh

deleteall /hbase

然后初始化namenode

./bin/hadoop namenode -format

删除hadoop的datanode目录,

然后启动hdfs与hbase

启动Hbase ./bin/start-hbase.sh

关闭 hbase ./bin/stop-hbase.sh

你可能感兴趣的:(hadoop,hbase,azure,大数据,ubuntu,linux)