『壹』 spark python腳本怎麼執行
前段時間使用了一下google的博客空間,感覺也很一般,所以現在把那裡的幾篇文章轉過來。
執行python腳本只需要對python文件做如下操作即可:
在python文件里第一行加上#!
/usr/bin/python,即你的python解釋器所在的目錄。另外還有一種寫法是#!
/usr/bin/env
python
編輯完成python腳本文件後為它加上可執行許可權。例如你的python腳本文件叫做runit.py,那麼就在shell中輸入如下命令:chmod
+x
runit.py
之後直接在shell中輸入./runit.py就可以執行你的python程序了。
當然這是在Linux下的操作,如果想在windows下直接執行Python程序,就需要使用py2exe工具將python源程序編譯成exe文件了。
『貳』 Spark的四種運行模式
介紹
本地模式
Spark單機運行,一般用於開發測試。
Standalone模式
構建一個由Master+Slave構成的Spark集群,Spark運行在集群中。
Spark on Yarn模式
Spark客戶端直接連接Yarn。不需要額外構建Spark集群。
Spark on Mesos模式
Spark客戶端直接連接Mesos。不需要額外構建Spark集群。
啟動方式: spark-shell.sh(Scala)
spark-shell通過不同的參數控制採用何種模式進行。 涉及兩個參數:
對於Spark on Yarn模式和Spark on Mesos模式還可以通過 –deploy-mode參數控制Drivers程序的啟動位置。
進入本地模式:
進入Standalone模式:
備註:測試發現MASTER_URL中使用主機名替代IP地址無法正常連接(hosts中有相關解析記錄),即以下命令連接不成功:
./spark-shell --master spark://ctrl:7077 # 連接失敗
Spark on Yarn模式
備註:Yarn的連接信息在Hadoop客戶端的配置文件中指定。通過spark-env.sh中的環境變數HADOOPCONFDIR指定Hadoop配置文件路徑。
Spark on Mesos模式:
啟動方式: pyspark(Python)
參數及用法與Scala語言的spark-shell相同,比如:
『叄』 spark、hive、impala、hdfs的常用命令
對spark、hive、impala、hdfs的常用命令作了如下總結,歡迎大家補充!
1. Spark的使用:
以通過SecureCRT訪問IP地址:10.10.234.198 為例進行說明:
先輸入:ll //查詢集群是否裝有spark
>su - mr
>/home/mr/spark/bin/beeline -u "jdbc:hive2:/bigdata198:18000/" -n mr -p ""
>show databases; //顯示其中資料庫,例如
>use bigmax; //使用資料庫bigmax
>show tables; //查詢目錄中所有的表
>desc formatted TableName; //顯示表的詳細信息,包括分區、欄位、地址等信息
>desc TableName; //顯示表中的欄位和分區信息
>select count(*) from TableName; //顯示表中數據數量,可以用來判斷表是否為空
>drop table TableName; //刪除表的信息
>drop bigmax //刪除資料庫bigmax
>describe database zxvmax //查詢資料庫zxvmax信息
創建一個表
第一步:
>create external table if not exists lte_Amaze //創建一個叫lte_Amaze的表
( //括弧中每一行為表中的各個欄位的名稱和其所屬的數據類型,並用空格隔開
DateTime String,
MilliSec int,
Network int,
eNodeBID int,
CID int,
IMSI String,
DataType int,
AoA int,
ServerRsrp int,
ServerRsrq int,
TA int,
Cqi0 Tinyint,
Cqi1 Tinyint //注意,最後一個欄位結束後,沒有逗號
)
partitioned by (p_date string, p_hour INT) //以p_date和p_hour作為分區
row format delimited fields terminated by ',' /*/*表中行結構是以逗號作為分隔符,與上邊的表中欄位以逗號結尾相一致*/
stored as textfile; //以文本格式進行保存
第二步:添加分區,指定分區的位置
>alter table lte_Amaze add partition (p_date='2015-01-27',p_hour=0) location'/lte/nds/mr/lte_nds_cdt_uedetail/p_date=2015-01-27/p_hour=0';
//添加lte_Amaze表中分區信息,進行賦值。
//並制定分區對應目錄/lte/nds/mr下表lte_nds_cdt_uedetail中對應分區信息
第三步:察看添加的結果
>show partitions lte_Amaze; //顯示表的分區信息
2. hdfs使用:
#su - hdfs //切換到hdfs用戶下 、
#hadoop fs –ls ///查看進程
# cd /hdfs/bin //進入hdfs安裝bin目錄
>hadoop fs -ls /umtsd/cdt/ //查詢/umtsd/cdt/文件目錄
>hadoop fs -mkdir /umtsd/test //在/umtsd目錄下創建test目錄
>hadoop fs -put /home/data/u1002.csv /impala/data/u5002 //將home/data/u1002.csv這個文件put到hdfs文件目錄上。put到hdfs上的數據文件以逗號「,」分隔符文件(csv),數據不論類型,直接是數據,沒有雙引號和單引號
>hadoop fs -rm /umtsd/test/test.txt //刪除umtsd/test目錄下的test.txt文件
>hadoop fs -cat /umtsd/test/test.txt //查看umtsd/test目錄下的test.txt文件內容
3hive操作使用:
#su - mr //切換到mr用戶下
#hive //進入hive查詢操作界面
hive>show tables; //查詢當前創建的所有表
hive>show databases; //查詢當前創建的資料庫
hive>describe table_name; {或者desc table_name}//查看錶的欄位的定義和分區信息,有明確區分(impala下該命令把分區信息以欄位的形式顯示出來,不怎麼好區分)
hive> show partitions table_name; //查看錶對應數據現有的分區信息,impala下沒有該命令
hive> quit;//退出hive操作界面
hive>desc formatted table_name; 查看錶結構,分隔符等信息
hive> alter table ceshi change id id int; 修改表的列數據類型 //將id數據類型修改為int 注意是兩個id
hive> SHOW TABLES '.*s'; 按正條件(正則表達式)顯示表,
[mr@aico ~]$ exit; 退出mr用戶操作界面,到[root@aico]界面
impala操作使用:
#su - mr //切換到mr用戶下
#cd impala/bin //進入impala安裝bin目錄
#/impala/bin> impala-shell.sh -i 10.10.234.166/localhost //進入impala查詢操作界面
[10.10.234.166:21000] >show databases; //查詢當前創建的資料庫
[10.10.234.166:21000] >use database_name; //選擇使用資料庫,默認情況下是使用default資料庫
[10.10.234.166:21000] > show tables; //查詢當前資料庫下創建的所有表
[10.10.234.166:21000] >describe table_name; //查看錶的欄位的定義,包括分區信息,沒有明確區分
[10.10.234.166:21000] > describe formatted table_name; //查看錶對應格式化信息,包括分區,所屬資料庫,創建用戶,創建時間等詳細信息。
[10.10.234.166:21000] >refresh table_name; //刷新一下,保證元數據是最新的
[10.10.234.166:21000] > alter TABLE U107 ADD PARTITION(reportDate="2013-09-27",rncid=487)LOCATION '/umts/cdt/
MREMITABLE/20130927/rncid=487' //添加分區信息,具體的表和數據的對應關系
[10.10.234.166:21000] > alter TABLE U100 drop PARTITION(reportDate="2013-09-25",rncid=487); //刪除現有的分區,數據與表的關聯
[10.10.234.166:21000] >quit; //退出impala操作界面
[mr@aicod bin]$ impala-shell; 得到welcome impala的信息,進入impala 查詢操作界面
[aicod:21000] > 按兩次tab鍵,查看可以用的命令
alter describe help profile shell values
connect drop history quit show version
create exit insert select unset with
desc explain load set use