引言
公司有搭建大數(shù)據(jù)平臺,為了讓java能訪問大數(shù)據(jù)平臺嗤朴,本人先在測試環(huán)境上自行搭建了一個單機版的hadoop嗤锉,研究java和hbase之間的jdbc連接。
參考網(wǎng)站
1.大數(shù)據(jù)開發(fā)入門之hadoop單機版部署
2.hadoop單機安裝猛拴,小白上手最詳細教程-Ali0th
3.hadoop 3.1.2 單機模式安裝配置
下載地址
正式安裝
1. java安裝
jdk的安裝與配置這里不敘述了,網(wǎng)上隨便百度一下就有蚀狰。
2. hadoop的下載
2.1 下載地址參考上面的鏈接愉昆,下載命令:
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz -O /usr/local/hadoop/hadoop-3.1.3.tar.gz
若是報出目錄不存在,請先自行創(chuàng)建目的地址麻蹋。下載完成后解壓縮撼唾。
tar -zxvf hadoop-3.1.3.tar.gz
2.2配置hadoop啟動項
vim /etc/profile.d/hadoop.sh
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
3. 創(chuàng)建hadoop用戶
用戶查看
cut -d : -f 1 /etc/passwd
用戶組查看
cut -d : -f 1 /etc/group
新建用戶
adduser #{name}
adduser hadoop
設(shè)置密碼
passwd #{name}
passwd hadoop
新建用戶組
groupadd #{gname}
groupadd hadoop
用戶加到用戶組
usermod -G #{gname} #{name}
usermod -G hadoop hadoop
刪除用戶
userdel -rf #{name}
刪除用戶組
groupdel #{gname}
查看用戶情況
id #{name}
id hadoop
4. 創(chuàng)建hadoop文件目錄并授權(quán)
mkdir -p /home/hadoop/tmp # hadoop臨時文件目錄
mkdir -p /home/hadoop/hdfs/name # hadoop主節(jié)點(namenode)文件目錄
mkdir -p /home/hadoop/hdfs/data # hadoop數(shù)據(jù)節(jié)點(datanode)文件目錄
mkdir -p /home/hadoop/log # hadoop日志文件目錄
sudo chown -R hadoop /home/hadoop # 設(shè)置hadoop文件目錄所有者
[注]下面的描述,如果沒有寫明全目錄哥蔚,表示都是基于此目錄下的
/usr/local/hadoop/hadoop-3.1.3/
5. 修改hadoop配置文件
hadoop的配置文件都在 etc/hadoop 目錄下,配置文件有很多蛛蒙,最基本要修改3個文件:hadoop-env.sh 糙箍,core-site.xml,hdfs-site.xml牵祟。
5.1 hadoop-env.sh:
export JAVA_HOME=/opt/java/jdk1.8.0_151 # 修改JAVA_HOME環(huán)境變量為JDK的安裝路徑深夯。
5.2 core-site.xml:
設(shè)置hdfs的監(jiān)聽端口(一般配置為9000,我改為了9001诺苹,因為和已有的配置沖突)咕晋。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9001</value>
<description>hdfs內(nèi)部通訊訪問地址</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
<description>hadoop數(shù)據(jù)存放</description>
</property>
</configuration>
5.3 hdfs-site.xml:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
6. 設(shè)置SSH免密訪問本地
需要用前面創(chuàng)建的hadoop用戶通過ssh免密訪問本地,先切換到hadoop用戶目錄下收奔,執(zhí)行以下命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
測試是否成功掌呜,執(zhí)行下面命令,若不用輸入密碼則成功坪哄。
ssh localhost
若創(chuàng)建的時候發(fā)現(xiàn) ~/.ssh文件目錄不存在质蕉,則切換成root創(chuàng)建一下ssh登錄再重新回到hadoop用戶創(chuàng)建即可势篡。
ssh localhost
7. 啟動hadoop
7.1 格式化hadoop文件系統(tǒng)
./bin/hdfs namenode -format
7.2 一鍵啟動
./sbin/start-all.sh
輸入jps:
hadoop@www:~$ jps
17761 NameNode
17889 DataNode
18083 SecondaryNameNode
18532 NodeManager
22474 Jps
18399 ResourceManager
可以看到namenode、secondarynamenode模暗、datanode禁悠、nodemanager、resourcemanager這三個服務(wù)已經(jīng)啟動兑宇。
7.3 檢驗
輸入命令 碍侦,沒有報錯,則hadoop單機版安裝成功隶糕。
bin/hadoop fs -ls /
在網(wǎng)頁上可以訪問 http://ip:9870/
若是在7.1 格式化的時候出現(xiàn)namenode 主機名錯誤瓷产,可以嘗試下列修改
修改對應(yīng)的host地址
1.vim /etc/hosts
2.vim /etc/sysconfig/network
重啟網(wǎng)絡(luò) /etc/rc.d/init.d/network restart
8.hadoop相關(guān)的端口和命令
8.1 參考網(wǎng)址
8.2 hadoop3的新端口
分類 | 應(yīng)用 | Haddop 2.x port | Haddop 3 port |
---|---|---|---|
NNPorts | Namenode | 8020 | 9820 |
NNPorts | NN HTTP UI | 50070 | 9870 |
NNPorts | NN HTTPS UI | 50470 | 9871 |
SNN ports | SNN HTTP | 50091 | 9869 |
SNN ports | SNN HTTP UI | 50090 | 9868 |
DN ports | DN IPC | 50020 | 9867 |
DN ports | DN | 50010 | 9866 |
DN ports | DN HTTP UI | 50075 | 9864 |
DN ports | Namenode | 50475 | 9865 |
常用命令
Start-all.sh/Stop-all.sh ??# 開啟關(guān)閉所有進程
Start-dfs.sh ??# 開啟hdfs 進程
Start-yarn.sh ??# 開啟yarn進程
Hadoop namenode –format??# 對HDFS進行格式化
hadoop-daemon.sh start namenode ??# 單獨啟動namenode
hadoop-daemons.sh start datanode??# 單獨啟動datanode
yarn-daemon.sh start resourcemanager??# 啟動resourcemanager
yarn-daemons.sh start nodemanager??# 啟動nodemanager
yarn-daemon.sh start proxyserver??# 啟動yarn日志代理服務(wù)
mr-jobhistory-daemon.sh start historyserver??# 啟動MR的jobhistory服務(wù) 歷史服務(wù)器開啟