centOS 上部署hadoop+mysql+hive 服務之hadoop安裝
以下安裝的hadoop版本是3.3.6 ,由于hadoop是運行于java環境,因此,需要提前安裝java jdk并配置環境變量。
jdk的安裝及配置:
jdk8 國內下載路徑:https://repo.huaweicloud.com/java/jdk/8u202-b08/ 可根據實際需要選擇對應的jdk版本
1、下載jdk
wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
2、解壓jdk
tar zxvf jdk-8u202-linux-x64.tar.gz
移動到/usr/local/目錄下,并更改目錄名稱為:jdk8
mv jdk1.8.0_202/ /usr/local/jdk8
3、在/etc/profile 配置文件后面,添加jdk的安裝路徑和bin目錄信息
export JAVA_HOME=/usr/local/jdk8
export PATH=$PATH:$JAVA_HOME/bin
4、刷新/etc/profile 的信息
source /etc/profile
5、驗證jdk是否配置正確
java -version
出現以下信息,說明jdk已經配置成功

hadoop3.3.6 安裝及配置
hadoop3.3.6 下載地址:
wget https://mirrors.aliyun.com/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
1、創建hadoop用戶(由于hadoop默認不允許用root賬號運行)
useradd hadoop
設置hadoop賬號密碼
passwd hadoop
驗證hadoop是否登錄成功
su - hadoop
如下信息,說明hadoop賬號已可以正常使用:

2、配置hadoop賬號ssh免密登錄
# 登錄hadoop賬號
su - hadoop
# 生成密鑰對(一直enter即可) ssh-keygen -t rsa # 將公鑰復制到本機 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 修改~/.ssh 權限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# 測試免密登錄
ssh localhost # 如果yes 之后,不用輸入密碼則免密登錄已經配置成功
3、解壓hadoop
tar zxfv hadoop-3.3.6.tar.gz
移動到/usr/local/目錄下并更改目錄名稱為:hadoop
mv hadoop-3.3.6 /usr/local/hadoop
通過ls -l 或 ll /usr/local/hadoop 查看目錄權限是否為:hadoop賬號和hadoop組,如果不是則需要手動改一下hadoop目錄的權限
chown -R hadoop:hadoop /usr/local/hadoop
4、在/etc/profile 下配置hadoop環境變量信息
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
刷新/etc/profile 配置信息
source /etc/profle
5、配置hadoop啟動相關信息(一般在hadoop的安裝目錄下/etc/hadoop),需要配置以下幾個配置文件

5.1 core-site.xml 配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-tmp</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
</configuration>
5.2 hdfs-site.xml 配置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/tmp/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/tmp/hadoop/datanode</value>
</property>
</configuration>
5.3 mapred-site.xml 的配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5.4 yarn-site.xml 的配置
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!--這里的value可以用localhost,如果用localhost需要配置centos的hosts的地址映射 -->
<name>yarn.resourcemanager.hostname</name>
<value>192.168.197.130</value>
</property>
</configuration>
5.5 編輯hadoop-env.sh 的配置,開啟并配置正確的HAVA_HOME 、HADOOP_HOME 、HADOOP_CONF_DIR 變量的值,保存并退出,如下

6、在hadoop安裝目錄下創建data/namenode 和 data/datanode (對應hdfs-site.xml配置文件中的數據存放地址)
# 創建namenode 和 datanode目錄 mkdir -p /usr/local/hadoop/data/{namenode,datanode} # 重新給/usr/local/hadoop/目錄指定用戶和用戶組,覆蓋新建的文件夾,因為hadoop賬號當前未分配創建目錄權限 chown -R hadoop:hadoop /usr/local/hadoop
7、格式化hdfs
hdfs namenode -format
顯示如下:

8、切換到hadoop賬號,啟動hadoop集群
# 切換到hadoop賬號
su - hadoop
# 啟動HDFS start-dfs.sh # 啟動YARN start-yarn.sh
或者通過start-all.sh 啟動
start-all.sh # 這個腳本保護啟動HDFS 和 YARN 服務
9、執行jps命令查看進程,看到:NameNode, DataNode, ResourceManager, NodeManager 等進程信息,說明已啟動成功。如下:

10. 關閉防火墻,訪問:http://服務器IP地址:9870和http:服務器IP地址:8088端口,驗證是否正常
systemctl stop firewalld


說明hadoop已經配置好了
hadoop 啟動報錯:localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
說明hadoop賬號的免密登錄未生效,需要重新設置好,再啟動即可

hadoop啟動報錯:localhost: ERROR: Unable to write in /usr/local/hadoop/logs. Aborting.無法寫入hadoop/logs 目錄
通過ls -l /usr/local/hadoop 查看logs目錄的權限,發現logs目錄的用戶和用戶組的權限都是root,更新目錄權限即可
chown -R hadoop:hadoop /usr/local/hadoop


浙公網安備 33010602011771號