Python工程師的大資料之路(二c)叢集指令碼(持續更)
阿新 • • 發佈:2021-01-25
技術標籤:大資料
先配置好叢集免密登入
https://yellow520.blog.csdn.net/article/details/110143502
文章目錄
1、叢集jps
touch /usr/bin/jps.py
chmod 777 /usr/bin/jps.py
vi /usr/bin/jps.py
#!/usr/bin/python2
import os, re
with open('/etc/hosts') as f:
for i in re.findall( 'hadoop[0-9]+', f.read()):
print i.center(40, '-')
os.system('ssh %s "jps | grep -v Jps"' % i)
2、叢集檔案同路徑傳輸
touch /usr/bin/rsync.py
chmod 777 /usr/bin/rsync.py
vi /usr/bin/rsync.py
#!/usr/bin/python2
# coding:utf-8
import os, re, socket
# 獲取第一個引數
a = os.sys.argv
if len(a) != 2:
print a
exit('使用方法:rsync.py $HADOOP_HOME')
a = a[1]
# 補全路徑
if not a.startswith('/'):
a = os.path.join(os.getcwd(), a)
if os.path.isdir(a) and not a.endswith('/'):
a += '/'
if not os.path.exists(a):
print a
exit('路徑不存在')
# 檔案分發
hostname = socket.gethostname()
with open('/etc/hosts') as f:
for i in re.findall('hadoop[0-9]+', f.read()):
if i == hostname:
continue
aa = 'rsync -a %s %s:%s' % (a, i, a)
print aa
os.system(aa)
3、叢集source環境變數
https://yellow520.blog.csdn.net/article/details/112692486
4、叢集啟停
4.1、ZooKeeper群起
touch $ZOOKEEPER_HOME/bin/zookeeper.py
chmod 777 $ZOOKEEPER_HOME/bin/zookeeper.py
vi $ZOOKEEPER_HOME/bin/zookeeper.py
#!/usr/bin/python2
import os, re
cmd = 'zkServer.sh status'
a = os.sys.argv
if len(a) == 2:
if a[1] == 'stop':
cmd = 'zkServer.sh stop'
elif a[1] == 'start':
cmd = 'zkServer.sh start'
with open('/etc/hosts') as f:
for i in re.findall('hadoop[0-9]+', f.read()):
print i.center(40, '-')
os.system('ssh %s "%s"' % (i, cmd))
4.2、Kafka群起
touch $KAFKA_HOME/bin/kafka.py
chmod 777 $KAFKA_HOME/bin/kafka.py
vi $KAFKA_HOME/bin/kafka.py
#!/usr/bin/python2
import os, re
cmd = 'kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties'
a = os.sys.argv
if len(a) == 2 and a[1] == 'stop':
cmd = 'kafka-server-stop.sh'
with open('/etc/hosts') as f:
for i in re.findall('hadoop[0-9]+', f.read()):
print i.center(40, '-')
os.system('ssh %s "%s"' % (i, cmd))
4.3、Hadoop啟停
4.4、HIVE啟停