設(shè)計門戶網(wǎng)百度seo競價推廣是什么
Hadoop3.0快速入門
學(xué)習(xí)步驟:
- 三大組件的基本理論和實際操作
- Hadoop3的使用,實際開發(fā)流程
- 結(jié)合具體問題,提供排查思路
開發(fā)技術(shù)棧:
- Linux基礎(chǔ)操作、Sehll腳本基礎(chǔ)
- JavaSE、Idea操作
- MySQL
Hadoop簡介
Hadoop是一個適合海量數(shù)據(jù)存儲與計算的平臺。是基于Google的GoogleFS、Map Reduce、BigTable實現(xiàn)的。
分布式存儲介紹
分布式計算介紹
- 移動數(shù)據(jù):數(shù)據(jù) -> 計算程序
- 移動計算:計算程序 -> 數(shù)據(jù)
- 分布式計算:各個節(jié)點局部計算 -> 第二階段匯總程序
Hadoop三大核心組件
HDFS(分布式存儲系統(tǒng))
架構(gòu)分析:
- HDFS負(fù)責(zé)海量數(shù)據(jù)的分布式存儲。
- 支持主從架構(gòu),主節(jié)點支持多個NameNode,從節(jié)點支持多個DataNode。
- NameNode負(fù)責(zé)接收用戶請求,維護目錄系統(tǒng)的目錄結(jié)構(gòu)。DataNode主要負(fù)責(zé)存儲數(shù)據(jù)。
MapReduce(分布式計算框架)
架構(gòu)分析:
- MapReduce是一個編程模型,主要負(fù)責(zé)海量數(shù)據(jù)計算,主要由兩個階段組成:Map和Reduce。
- Map階段是一個獨立的程序,會在很多個節(jié)點上同時執(zhí)行,每個節(jié)點處理一部分?jǐn)?shù)據(jù)。
- Reduce節(jié)點也是一個獨立的程序,在這先把Reduce理解為一個單獨的聚合程序即可。
Yarn(資源管理與調(diào)度)
架構(gòu)分析:
- 主要負(fù)責(zé)集權(quán)資源的管理和調(diào)度,支持主從架構(gòu),主節(jié)點最多可以有2個,從節(jié)點可以有多個。
- 主節(jié)點(ResourceManager)進程主要負(fù)責(zé)集群資源的分配和管理。
- 從節(jié)點(NodeManager)主要負(fù)責(zé)單節(jié)點資源管理。
大數(shù)據(jù)生態(tài)圈
Hadoop安裝部署
Hadoop發(fā)行版介紹
- 官方版本:Apache Hadoop,開源,集群安裝維護比較麻煩
- 第三方發(fā)行版:Cloudera Hadoop(CDH),商業(yè)收費,使用Cloudera Manager安裝維護比較方便
- 第三方發(fā)行版:HortonWorks(HDP),開源,使用Ambari安裝維護比較方便。
偽分布式集群安裝部署(使用1臺Linux虛擬機安裝偽分布式集群)
1. 靜態(tài)IP設(shè)置
192.168.56.101
2. 主機名設(shè)置(臨時、永久)
cent7-1
3. hosts文件修改(配置IP與主機名映射關(guān)系)
cent7-1 localhost
4. 關(guān)閉防火墻(臨時、永久)
systemctl status firewalld.service
systemctl stop firewalld
systemctl status firewalld.service
5. ssh免密登錄
ssh-keygen -t rsa
cd /root
cd .ssh/
cat id_rsa
cat id_rsa.pub >> authorized_keys
ssh cent7-1
6. JDK1.8安裝
tar -zxvf jdk-8u191-linux-x64.tar.gz
vi /etc/profile
source /etc/profile# profile配置內(nèi)容
export JAVA_HOME=/home/jdk8
export PATH=.:$JAVA_HOME/bin:$PATH
7. Hadoop偽分布式安裝
# 解壓Hadoop
tar -zxvf hadoop-3.2.4.tar.gz
# 進入配置文件目錄
cd /home/hadoop-3.2.4/etc/hadoopvi core-site.xml vi hdfs-site.xml
- 配置core-site.xml
<property><name>fs.defaultFS</name><value>hdfs://cent7-1:9000</value><final>true</final>
</property>
<property><name>hadoop.tmp.dir</name><value>/home/hadoop_repo</value>
</property>
- 配置hdfs-site.xml
<!-- 指定HDFS副本的數(shù)量,偽分布式集群最多一個,也不支持多個 -->
<property><name>dfs.replication</name><value>1</value>
</property>
- 配置hdfs-site.xml
<!-- 指定MR運行在Yarn上 -->
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>
- 配置yarn-site.xml
<!-- Reducer獲取數(shù)據(jù)的方式 -->
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager白名單 -->
<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_MAPRED_HOME</value>
</property>
- 配置 hadoop-env.sh
export JAVA_HOME=/home/jdk8
export HADOOP_LOG_DIR=/home/hadoop_repo/logs/hadoop
- 初始化hdfs
# 在Hadoop的目錄下執(zhí)行以下命令,
bin/hdfs namenode -format
看到以下內(nèi)容說明執(zhí)行成功!注意:hdfs格式化只能執(zhí)行一次,如果失敗需要刪除文件夾后再進行格式化。
啟動
[root@cent7-1 hadoop-3.2.4]# sbin/start-all.sh
Starting namenodes on [cent7-1]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [cent7-1]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.
# 提示缺少hdfs、yarn的用戶信息
- 配置start-dfs.sh、stop-dfs.sh
vi sbin/start-dfs.sh
vi sbin/stop-dfs.sh
#增加配置
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
- 配置
vi sbin/start-yarn.sh
vi sbin/stop-yarn.sh
#增加配置
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
- 再次啟動
[root@cent7-1 hadoop-3.2.4]# sbin/start-all.sh
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
Starting namenodes on [cent7-1]
上一次登錄:三 8月 30 19:05:12 CST 2023從 192.168.56.1pts/1 上
Starting datanodes
上一次登錄:三 8月 30 21:02:51 CST 2023pts/0 上
localhost: Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Starting secondary namenodes [cent7-1]
上一次登錄:三 8月 30 21:02:56 CST 2023pts/0 上
Starting resourcemanager
上一次登錄:三 8月 30 21:03:49 CST 2023從 192.168.56.1pts/3 上
Starting nodemanagers
上一次登錄:三 8月 30 21:04:13 CST 2023pts/0 上
[root@cent7-1 hadoop-3.2.4]# jps
10146 NameNode
10386 DataNode
10883 SecondaryNameNode
11833 ResourceManager
12954 Jps
12155 NodeManager
# 展示除了jps外的五個Hadoop組件進程表示啟動成功
- 瀏覽器確認(rèn)啟動成功
- 訪問HDFS:http://192.168.56.101:9870/
- 訪問Hadoop:http://192.168.56.101:8088/
- 訪問HDFS:http://192.168.56.101:9870/
停止
sbin/stop-all.sh
分布式集群安裝部署(使用3臺Linux虛擬機安裝分布式集群)
客戶端節(jié)點安裝介紹
HIVE安裝部署
mysql安裝部署
yum install mysql
hive下載與部署
apache-hive-hive-3.1.3安裝包下載_開源鏡像站-阿里云 (aliyun.com)
source /etc/profile
export HIVE_HOME=/home/hive
export PATH=$HIVE_HOME/bin:$PATH
配置hive/conf/hive-site.xml文件
<configuration>
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://cent7-1:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<property> <name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value>
</property>
<property> <name>javax.jdo.option.ConnectionUserName</name><value>hdp</value>
</property>
<property> <name>javax.jdo.option.ConnectionPassword</name><value>admin</value>
</property>
<!--自定義遠程連接用戶名和密碼-->
<property><name>hive.server2.authentication</name><value>CUSTOM</value><!--默認(rèn)為none,修改成CUSTOM-->
</property>
<!--指定解析jar包-->
<property><name>hive.server2.custom.authentication.class</name><value>com.ylw.CustomHiveServer2Auth</value>
</property>
<property><name>hive.server2.custom.authentication.file</name><value>/home/hive/user.pwd.conf</value>
</property>
<!--設(shè)置用戶名和密碼-->
<property><name>hive.jdbc_passwd.auth.root</name><!--用戶名為最后一個:root--><value>admin</value>
</property>
<property><name>hive.metastore.port</name><value>9083</value><description>Hive metastore listener port</description>
</property>
<property><name>hive.server2.thrift.port</name><value>10000</value><description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description>
</property>
<property><!-- <value>新的最大工作線程數(shù)</value>--><name>hive.server2.thrift.max.worker.threads</name><value>200</value>
</property>
<property><name>hive.metastore.local</name><value>false</value><description>controls whether to connect to remote metastore server or open a new metastore server in Hive Client JVM</description>
</property>
<property><name>hive.server2.transport.mode</name><value>binary</value><description>Expects one of [binary, http].Transport mode of HiveServer2.</description>
</property>
</configuration>
啟動與停止hive
nohup hive --server metastore &
nohup hive --service hiveserver2 &
jps
#看到是否有兩個runJar ,如果有說明啟動成功
# 查看端口占用
netstat -anop |grep 10000
ps -aux|grep hive