大資料Hadoop-Spark集群部署知識總結
一、啟動/關閉 hadoop
myhadoop.sh start/stop
分步啟動:
第一步:在hadoop102主機上 sbin/start-dfs.sh
第二步:在hadoop103主機上 sbin/start-yarn.sh
分步關閉:
第一步:在hadoop103主機上 sbin/stop-yarn.sh
第二步:在hadoop102主機上 sbin/stop-dfs.sh
myhadoop.sh腳本檔案內容
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 啟動 hadoop集群 ==================="
echo " --------------- 啟動 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 啟動 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 啟動 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 關閉 hadoop集群 ==================="
echo " --------------- 關閉 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 關閉 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 關閉 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
二、啟動/關閉 zookeeper
myzk.sh start/stop
分步啟動/關閉:
bin/zkServer.sh start
bin/zkServer.sh stop
myzk.sh腳本檔案內容
for host in hadoop102 hadoop103 hadoop104
do
case $1 in
"start")
ssh $host "source /etc/profile;/opt/module/zookeeper-3.5.7/bin/zkServer.sh $1"
echo "$host zk is running..."
echo "-----------------------------"
;;
"stop")
ssh $host "source /etc/profile;/opt/module/zookeeper-3.5.7/bin/zkServer.sh $1"
echo "$host zk is stopping..."
echo "-----------------------------"
;;
*)
echo '輸入有誤!'
;;
esac
done
三、啟動Hbase
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
bin/hbase-daemon.sh stop master
bin/hbase-daemon.sh stop regionserver
bin/start-hbase.sh
bin/stop-hbase.sh
四、常見埠號總結
50070:HDFSwebUI的埠號
8485:journalnode默認的埠號
9000:非高可用訪問數rpc埠
8020:高可用訪問資料rpc
8088:yarn的webUI的埠號
8080:master的webUI,Tomcat的埠號
7077:spark基于standalone的提交任務的埠號
8081:worker的webUI的埠號
18080:historyServer的webUI的埠號
4040:application的webUI的埠號
2181:zookeeper的rpc埠號
9083:hive的metastore的埠號
60010:Hbase的webUI的埠號
6379:Redis的埠號
8087:sparkwebUI的埠號 sbin/start-master.sh 檔案可以修改埠號,默認是8080,我改為8081
9092:kafka broker的埠
五、啟動Hive
- 啟動metastore hive --service metastore
- 啟動hiveserver2 bin/hive --service hiveserver2
- 啟動hive (/opt/module/hive):bin/hive
hive建表:
create table test1
(InvoiceNo String, StockCode String, Description String, Quantity String, InvoiceDate String, UnitPrice String, CustomerID String, Country String)
ROW format delimited fields terminated by ',' STORED AS TEXTFILE;
匯入資料:
load data local inpath '/opt/module/data/test.csv' into table test1;
sqoop匯出到mysql:
bin/sqoop export \
--connect jdbc:mysql://hadoop102:3306/company \
--username root \
--password 000429 \
--table sale \
--num-mappers 1 \
--export-dir /user/hive/warehouse/sale \
--input-fields-terminated-by ","
sqoop匯入到hive:
bin/sqoop import \
> --connect jdbc:mysql://hadoop102:3306/company \
> --username root \
> --password 123456 \
> --table staff \
> --num-mappers 1 \
> --hive-impo
> --fields-terminated-by "\t" \
> --hive-overwrite \
> --hive-table 資料庫名.staff_hive
sql建表:
USE `company`;
CREATE TABLE `sale1` (
`day_id` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
`sale_nbr` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
`cnt` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
`round` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `sale2` (
`day_id` varchar(50) COLLATE utf8_bin DEFAULT NULL,
`sale_nbr` varchar(50) COLLATE utf8_bin DEFAULT NULL,
`cnt` varchar(50) COLLATE utf8_bin DEFAULT NULL,
`round` varchar(50) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
六、Spark
- 安裝Spark后配置 classpath
$ cd /usr/local/spark
$ cp ./conf/spark-env.sh.template ./conf/spark-env.sh #拷貝組態檔
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath) 這個路徑是hadoop的安裝路徑
- local模式啟動spark: ./bin/spark-shell

-
安裝sbt
vim ./sbt
啟動腳本檔案內容如下:
#!/bin/bash SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M" java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@"增加可執行權限命令: chmod u+x ./sbt
-
simple.sbt檔案內容(注意版本號和名字)
name := "Simple Project"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"
七、配置Spark集群
- 主機環境變數
vim ~/.bashrc
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
$ source ~/.bashrc
- 從機環境變數
$ cd /usr/local/spark/
$ cp ./conf/slaves.template ./conf/slaves
把默認內容localhost替換成如下內容:
hadoop103
hadoop104
- 配置spark-env.sh
- 注意SPARK_MASTER_IP 要填自己的主機IP地址
- SPARK_DIST_CLASSPATH和HADOOP_CONF_DIR 都是主機的hadoop路徑
$ cp ./conf/spark-env.sh.template ./conf/spark-env.sh
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_IP=192.168.1.104
- 分發到從機(待分發的路徑最好已經建立好且是空的)
cd /usr/local/
tar -zcf ~/spark.master.tar.gz ./spark
cd ~
scp ./spark.master.tar.gz hadoop103:/home/hadoop
scp ./spark.master.tar.gz hadoop104:/home/hadoop
在從機上進行如下操作:
sudo rm -rf /usr/local/spark/
sudo tar -zxf spark.master.tar.gz -C /usr/local
sudo chown -R 用戶名 /usr/local/spark
八、測驗運行
- 首先啟動hadoop集群
- 啟動spark的主機節點
$ cd /usr/local/spark/
$ sbin/start-master.sh
- 啟動spark的從機節點
$ sbin/start-slaves.sh
打開瀏覽器輸入 http://[主機名]:8087

注意埠號沖突問題:
可以在啟動的腳本檔案里修改WEBUI埠號:也就是在sbin/start-master.sh中修改埠號!
九、關閉退出
- 關閉spark主機
sbin/stop-master.sh
- 關閉Worker從機
sbin/stop-slaves.sh
- 關閉hadoop集群
補充命令:
- cp命令:cp 源檔案 目標檔案(夾)
負責把一個源檔案復制到目標檔案(夾)下,如下圖所示,復制到檔案夾下,則檔案名保持不變,復制到檔案中,則檔案名變更,如果目標檔案已經存在或目標檔案夾中含有同名檔案,則復制之后目標檔案或目標檔案夾中的同名檔案會被覆寫,
- cp -r 命令 :復制源檔案夾到目標檔案夾下
命令格式為:cp -r 源檔案夾 目標檔案夾
-
mv 命令:用來移動檔案或者將檔案改名
格式:mv [選項] 源檔案或目錄 目標檔案或目錄
選項:
-b 若需覆寫檔案,則在覆寫檔案前先進行備份
-f 強制覆寫,若目標檔案已存在同名檔案,使用該引數時則直接覆寫而不詢問
-i 若目標檔案已存在同名檔案,則提示詢問是否覆寫
-u 若目標檔案已存在需移動的同名檔案,且源檔案比較新,才會更新檔案
-t 指定mv的目標目錄,改選項使用于移動多個源檔案到一個目錄的情況,此時目標檔案在前,源檔案在后 -
chmod
sudo chmod -(代表型別)×××(所有者)×××(組用戶)×××(其他用戶)
0 [000] 無任何權限
4 [100] 只讀權限
6 [110] 讀寫權限
7 [111] 讀寫執行權限sudo chmod 600 ××× (只有所有者有讀和寫的權限)
sudo chmod 644 ××× (所有者有讀和寫的權限,組用戶只有讀的權限)
sudo chmod 700 ××× (只有所有者有讀和寫以及執行的權限)
sudo chmod 666 ××× (每個人都有讀和寫的權限)
sudo chmod 777 ××× (每個人都有讀和寫以及執行的權限)
-
chown (選項)(引數)
選項 描述
-c或——changes 效果類似“-v”引數,但僅回報更改的部分;
-f或–quite或——silent 不顯示錯誤資訊;
-h或–no-dereference 只對符號連接的檔案作修改,而不更改其他任何相關檔案;
-R或——recursive 遞回處理,將指定目錄下的所有檔案及子目錄一并處理;
-v或——version 顯示指令執行程序;
–dereference 效果和“-h”引數相同;
–help 在線幫助;
–reference=<參考檔案或目錄> 把指定檔案或目錄的擁有者與所屬群組全部設成和參考檔案或目錄的擁有者與所屬群組相同;
–version 顯示版本資訊,
當只需要修改所有者時,可使用如下 chown 命令的基本格式:
[root@localhost ~]# chown [-R] 所有者 檔案或目錄
如果需要同時更改所有者和所屬組,chown 命令的基本格式為:
[root@localhost ~]# chown [-R] 所有者:所屬組 檔案或目錄
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/436377.html
標籤:其他
上一篇:Clickhouse 分布式表&本地表 &ClickHouse實作時序資料管理和挖掘
下一篇:為什么貓鼬查詢回傳一個空陣列
