一、hadoop安裝
1. 修改主機名和 IP 地址映射
sudo vi /etc/hostname #修改主機名(如,刪掉原有內容,命名為 hadoop) ping hadoop #ping 通證明成功
2. 安裝java
sudo apt install openjdk-8-jdk-headless
配置JAVA環境變量,在當前用戶根目錄下的.profile文件最下面加入以下內容:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使用source
命令讓立即生效
source .profile
rogn@ubuntu:~$ java -version openjdk version "1.8.0_252" OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~16.04-b09) OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
3. 下載hadoop 3.2.1
wget http://mirrors.ustc.edu.cn/apache/hadoop/common/stable/hadoop-3.2.1.tar.gz tar -zxvf hadoop-3.2.1.tar.gz
再次修改 ~/.bashrc,在末尾添加:
export HADOOP_HOME=/home/rogn/Downloads/hadoop-3.2.1 export PATH=$PATH:$HADOOP_HOME/bin export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
source ~/.bashrc
4. 配置SSH的無密碼登錄
安裝openssh-server( 通常Linux系統會默認安裝openssh的客戶端軟件openssh-client),所以需要自己安裝一下服務端。
sudo apt-get install openssh-server
輸入 cd .ssh目錄下,如果沒有.ssh文件 輸入 ssh localhost生成。
cd ~/.ssh/
生成秘鑰
ssh-keygen -t rsa
過程中可一直回車
將Master中生成的密鑰加入授權(authorized_keys)
cat id_rsa.pub >> authorized_keys # 加入授權 chmod 600 authorized_keys # 修改文件權限,如果不修改文件權限,那么其它用戶就能查看該授權
完成后,直接鍵入“ssh localhost”,能無密碼登錄即可,
鍵入“exit”退出,到此SSH無密碼登錄配置就成功了。
5. 配置完成后,執行 NameNode 的格式化:
$./bin/hdfs namenode -format
注意:不能進行多次格式化操作
6. 接着開啟 NameNode 和 DataNode 守護進程
啟動hdfs
sbin/start-dfs.sh
啟動YARN集群
sbin/start-yarn.sh
用start-all.sh可以同時啟動兩者
可以通過命令 jps 來判斷是否成功啟動,若成功啟動則會列出如下進程: “NameNode”、”DataNode” 和 “SecondaryNameNode”
訪問 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件。
測試hadoop
建立測試文件:
# vim test.txt
然后輸入如下數據
hello hadoop hello World Hello Java Hey man i am a programmer
將測試文件放到測試目錄中:
# hdfs dfs -mkdir hdfs:///wordlab # hdfs dfs -mkdir hdfs:///wordlab/input # hdfs dfs -put ./test.txt hdfs:///wordlab/input
執行hadoop自帶的wordcount程序:
hadoop jar /home/rogn/Downloads/hadoop-3.2.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount hdfs:///wordlab/input hdfs:///wordlab/output
查看詞頻統計的結果
# hdfs dfs -cat hdfs:///wordlab/output/part-r-00000
刪除文件夾:
hdfs dfs -rm -r hdfs:///wordlab/output/
列出文件:
hdfs dfs -ls hdfs:///wordlab