Hadoop是什麼 大白話,Hadoop是個存儲數據,計算數據的分散式框架。核心組件是HDFS、MapReduce、Yarn。 HDFS:分散式存儲 MapReduce:分散式計算 Yarn:調度MapReduce 現在為止我們知道了HDFS、MapReduce、Yarn是幹啥的,下麵通過一張圖再來 ...
Hadoop是什麼
大白話,Hadoop是個存儲數據,計算數據的分散式框架。核心組件是HDFS、MapReduce、Yarn。
HDFS:分散式存儲
MapReduce:分散式計算
Yarn:調度MapReduce
現在為止我們知道了HDFS、MapReduce、Yarn是幹啥的,下麵通過一張圖再來看看他的整體架構。
HDFS
HDFS是Hadoop的存儲系統,將龐大的數據存儲在多台機器上,並通過數據副本冗餘實現容錯。HDFS兩大核心組件是NameNode與DataNode。
NameNode:管理文件命名空間元數據;實現文件命名、打開關閉操作
SecondaryNameNode:幫助NameNode實現log與數據快照的合併
DataNode:根據客戶請求實現文件的讀寫
MapReduce
MapReduce是基於Java開發的分散式計算。包含重要的兩部分,Map和Reduce。
Map:將數據轉成鍵值對
Reduce:將Map的輸出數據聚合減少
Yarn
通過對集群資源的監控,調度MapReduce的任務。核心組件有ResourceManager、NodeManager、ApplicationMaster 和 Container。
ResourceManager:處理客戶端請求;監控NodeManager與ApplicationMaster;調度資源。
NodeManager:管理節點資源;與ResourceManager ApplicationMaster交互。
ApplicationMaster:為程式申請資源並將資源分配給任務;任務監控。
安裝Hadoop
1.安裝Jdk
下載https://www.oracle.com/java/technologies/downloads/
解壓
tar -zxvf jdk-8u331-linux-x64.tar.gz
加入環境變數
vi /etc/profile #加入以下內容 JAVA_HOME=/usr/local/java18/jdk1.8.0_331 JRE_HOME=$JAVA_HOME/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export JAVA_HOME JRE_HOME PATH CLASSPATH //生效 source /etc/profile
驗證java
2.安裝偽分散式Hadoop
下載https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.2.3/hadoop-3.2.3.tar.gz
解壓
tar xzf hadoop-3.2.3.tar.gz
配置本機ssh
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
配置Hadoop環境變數
cat etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8
配置hdfs地址
cat etc/hadoop/core-site.xml <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property>
配置hafs分片數
cat etc/hadoop/hdfs-site.xml/etc/profile新增hadoop環境變數
<property> <name>dfs.replication</name> <value>1</value> </property>
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.2.3 export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar //生效 source /etc/profile
配置mapreduce
vi etc/hadoop/mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.application.classpath</name> <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value> </property> </configuration>
配置yarn
vi etc/hadoop/yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value> </property> </configuration>
配置相關user
//將sbin/start-dfs.sh,sbin/stop-dfs.sh兩個文件頂部添加以下參數 HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root //將sbin/start-yarn.sh,sbin/stop-yarn.sh頂部也需添加以下 YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
初始化hdfs
bin/hdfs namenode -format
啟動yarn
sbin/start-yarn.sh
通過jps查看啟動的進程
啟動hdfs
sbin/start-dfs.sh
通過jps查看進程
訪問hadoopui驗證安裝是否成功
http://192.168.43.50:9870/dfshealth.html#tab-overview
訪問集群ui
http://192.168.43.50:8088/cluster/cluster