虛擬機安裝Hadoop,Hbase
工作中遇到了大數(shù)據(jù)方面的一些技術(shù)棧,沒有退路可言,只能去學(xué)習(xí)掌握它,就像當(dāng)初做爬蟲一樣(雖然很簡單),在數(shù)據(jù)爆發(fā)的現(xiàn)在,傳統(tǒng)的數(shù)據(jù)庫mysql,oracle顯然在處理大數(shù)據(jù)量級的數(shù)據(jù)時顯得力不從心,所以有些特定的業(yè)務(wù)需要引進能夠處理大數(shù)據(jù)量的數(shù)據(jù)庫,hadoop提供了分布式文件系統(tǒng)(HDFS)來存儲數(shù)據(jù),又提供了分布式計算框架(mapreduce)來對這些數(shù)據(jù)進行處理,另一個hadoop的核心組件是yarn,我的理解它是一個任務(wù)調(diào)度平臺。所以可以使用hadoop來做大數(shù)據(jù)量的數(shù)據(jù)處理,hbase是基于hadoop的,可以說它是hadoop生態(tài)中的一個組件,hbase是一個nosql的分布式數(shù)據(jù)庫,可以進行實時讀取數(shù)據(jù),速度較快。
后面還會繼續(xù)學(xué)習(xí)了解hive,flink,spark這些大數(shù)據(jù)處理相關(guān)的一些技術(shù)棧。
hadoop安裝
安裝hadoop之前需要java環(huán)境,虛擬機上java環(huán)境的安裝可以參考我的這篇java環(huán)境安裝
查看一下java的版本信息:
接下來下載hadoop的安裝包
Hadoop 安裝包下載鏈接(官網(wǎng),下載慢):
https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
Hadoop 安裝包下載鏈接(清華大學(xué)開源軟件鏡像站,下載快):
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
推薦使用國內(nèi)鏡像下載,速度快,直接使用wget就可以
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
##解壓
tar -zxvf hadoop-3.3.4.tar.gz
緊接著修改相關(guān)的配置文件,hadoop相關(guān)的配置文件都在hadoop-3.3.4/etc/hadoop路徑下
修改core-site.xml
vi core-site.xml
添加下面內(nèi)容,在configuration標(biāo)簽下添加
<property>
<name>fs.defaultFS</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<!-- 自定義 hadoop 的工作目錄,需要自己創(chuàng)建 -->
<value>/usr/local/hadoop/hadoop-3.3.4/tmp</value>
</property>
<property>
<name>hadoop.native.lib</name>
<!-- 禁用Hadoop的本地庫 -->
<value>false</value>
</property>
修改hdfs-site.xml
vi hdfs-site.xml
添加下面內(nèi)容,在configuration標(biāo)簽下添加
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
修改yarn-site.xml文件
添加下面內(nèi)容,在configuration標(biāo)簽下添加
vi yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>127.0.0.1</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<!-- yarn web 頁面 -->
<value>0.0.0.0:8088</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<!-- reducer獲取數(shù)據(jù)的方式 -->
<value>mapreduce_shuffle</value>
</property>
修改mapred-site.xml文件
添加下面內(nèi)容,在configuration標(biāo)簽下添加
vi mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
修改hadoop-env.sh文件
vi hadoop-env.sh
在文件末尾加上下面的內(nèi)容
# 將當(dāng)前用戶 root 賦給下面這些變量,不加這些會導(dǎo)致出現(xiàn)后面我遇到的一個問題
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
# JDK 安裝路徑,參考 cat /etc/profile |grep JAVA_HOME
export JAVA_HOME=/usr/local/java/jdk1.8.0_341
# Hadop 安裝路徑下的 ./etc/hadoop 路徑
export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-3.3.4/etc/hadoop
配置hadoop環(huán)境變量
vi /etc/profile
在文件末尾添加下面的內(nèi)容
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.3.4
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
執(zhí)行命令讓配置文件生效
source /etc/profile
配置本機ssh登錄免密
依次執(zhí)行下面的命令
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
啟動hadoop
首次啟動hadoop格式化HDFS,執(zhí)行下面的命令
hdfs namenode -format
格式化成功之后就可以啟動hadoop了,hadoop啟動,停止相關(guān)腳本在/root/software/hadoop-3.3.4/sbin路徑下面
因為我們已經(jīng)配置了環(huán)境變量,所以可以直接執(zhí)行下面的命令
start-all.sh
執(zhí)行成功,通過jps看一下,效果如下
可以通過hdfs的相關(guān)命令測試一下
#在hdfs上創(chuàng)建文件夾
hadoop fs -mkdir /test_1/
# 查看
hadoop fs -ls /
# 新建文本文件
vi test_file_1.txt
# 向文本中寫入字符串 123
echo 123 >> test_file_1.txt
# 將文本上傳到 HDFS
hadoop fs -put test_file_1.txt /test_1/
# 查看文件夾下面的文件
hadoop fs -ls /test_1/
# 查看文件
hadoop fs -cat /test_1/test_file_1.txt
# 將 HDFS 上的文件下載到本地
hadoop fs -get /test_1/test_file_1.txt
hdfs的命令和linux命令基本一致,注意相關(guān)的命令格式就可以了,另外hadoop還有兩個可視化的web頁面
Hadoop Web 頁面,開放端口
# 防火墻放行 9870 tcp 端口
firewall-cmd --zone=public --add-port=9870/tcp --permanent
# 防火墻重新加載
firewall-cmd --reload
然后在瀏覽器上訪問:虛擬機IP:9870就可以看到了
Yarn Web 頁面,還是先開放端口:
# 防火墻放行 8088 tcp 端口
firewall-cmd --zone=public --add-port=8088/tcp --permanent
# 防火墻重新加載
firewall-cmd --reload
然后在瀏覽器上訪問:虛擬機IP:8088就可以看到了,這里我就不截圖了
到這里hadoop算是安裝成功了!
hadoop安裝遇到的問題
1.將3.3.2版本刪掉之后,包括環(huán)境變量,但是還是走的3.3.2的環(huán)境變量
這個問題出現(xiàn)是因為我最開始用的是hadoop3.3.2版本,后來換成了hadoop3.3.4版本,但是執(zhí)行命令時環(huán)境變量感覺沒變,重啟一下虛擬機就好了
2./root/software/hadoop-3.3.2/libexec/shellprofile.d/hadoop-aliyun.sh:行58: “_hadoop-aliyun_hadoop_classpath”: 不是有效的標(biāo)識符
執(zhí)行start-all.sh出現(xiàn)了這個報錯,所以我將3.3.2版本換成了3.3.4,之后沒出現(xiàn)這個報錯
3.Attempting to operate on hdfs namenode as root ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
這是執(zhí)行start-all.sh時出現(xiàn)的又一個問題,就是在hadoop-env.sh中加入了root的預(yù)定義即可解決
Hbase安裝
下載hbase
hbase和java版本,hadoop版本有著依賴關(guān)系,所以下載的時候提前確定好自己要下載的hbase版本
下面時官網(wǎng)給出的版本對應(yīng)關(guān)系:
https://hbase.apache.org/book.html#basic.prerequisites
我本地安裝的時java1.8,hadoop3.3.4,所以我最終用了hbase的2.4.17版本
還是通過wget命令直接通過國內(nèi)鏡像下載
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.17/hbase-2.4.17-bin.tar.gz
tar -zxvf hbase-2.4.17-bin.tar.gz
修改hbase.env.sh文件
hbase相關(guān)的配置文件在/hbase-2.4.17/conf路徑下面
vi hbase-env.sh
添加下面的內(nèi)容
#修改成你本機的java環(huán)境地址
export JAVA_HOME=/usr/local/java/jdk1.8.0_341
#這里設(shè)置為true代表使用hbase自帶的zookeeper
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
修改hbase-site.xml文件
vi hbase-site.xml
將下面的內(nèi)容加上,需要自己創(chuàng)建的文件夾自己創(chuàng)建一下
<property>
<!-- 偽分布式 -->
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<!-- region server 的共享 HDFS 目錄,用來持久化 Hbase -->
<name>hbase.rootdir</name>
<value>hdfs://127.0.0.1:9000/hbase</value>
</property>
<property>
<!-- hbase 的 zookeeper 集群的地址列表,用逗號分隔 -->
<name>hbase.zookeeper.quorum</name>
<value>127.0.0.1</value>
</property>
<property>
<!-- zookeeper 快照存放地址 -->
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/hbase-2.4.14/data/zookeeper</value>
</property>
修改regionservers
vi regionservers
打開文件之后在里面添加127.0.0.1
修改環(huán)境變量
vi /etc/profile
將下面的內(nèi)容追加到文件末尾
export HBASE_HOME=/usr/local/hbase/hbase-2.4.14
export PATH=$HBASE_HOME/bin:$PATH
執(zhí)行命令讓配置文件生效
source /etc/profile
啟動hbase
啟動habse之前先要啟動hadoop,因為我的虛擬機上已經(jīng)啟動了
hbase相關(guān)的啟動,停止命令在/hbase-2.4.17/bin路徑下面,因為配置了環(huán)境變量,所以直接執(zhí)行下面的命令啟動即可
start-hbase.sh
啟動成功之后可以通過hbase shell進入hbase命令行:
hbase-web頁面,還是先開放端口:
# 防火墻放行 16010 tcp 端口
firewall-cmd --zone=public --add-port=16010/tcp --permanent
# 防火墻重新加載
firewall-cmd --reload
然后在瀏覽器上訪問:虛擬機ip:16010 ,這里我不截圖了
參考文章:
https://blog.csdn.net/qq_36462452/article/details/127399982
到這里虛擬機上hadoop和hbase的安裝就算告一段落了,這里面還有很多的點需要去了解,hadoop操作hdfs的命令,hbase shell命令行的命令,我也是一個初學(xué)者,把這些記錄下來一是為了加深自己對這些東西的一個印象,二是希望給同樣的初學(xué)者一些參考。文章來源:http://www.zghlxwxcb.cn/news/detail-765514.html
# “是不是一定要有所失,才能有所悟”文章來源地址http://www.zghlxwxcb.cn/news/detail-765514.html
到了這里,關(guān)于虛擬機安裝hadoop,hbase(單機偽集群模式)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!