激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Hadoop集群搭建及Python操作

Hadoop集群搭建及Python操作

2021-04-20 01:16Python集結號 Python

HDFS 文件存儲集群的優點是:配置要求低、易于擴展、效率比較高、非常適合大批量文件存儲,而且可以提供 web 管理頁面,提供非常好的第三方庫。在進行 web 開發時,作為文件和圖片存儲庫也是非常好的選擇。

最近項目中在做千億大數據存儲檢索需求,要把10T的文本數據進行解析處理存入數據庫進行實時檢索,文件的存儲成為一個首要處理的問題,使用了多種存儲方式,都不是很滿足要求,最后使用 HDFS 分布式文件存儲系統發現效率、管理等各方面都挺不錯,就研究了一下搭建使用方式,特此記錄文檔

Hadoop集群搭建及Python操作

環境

 

Hadoop集群搭建及Python操作

修改主機名

  1. # 按照上面環境配置修改每個機器的hostname 
  2. vi /etc/hostname 
  3.  
  4. # 使用hostname命令使其生效,就不用重啟了 
  5. hostname xxxx 

修改hosts文件

  1. vi /etc/hosts 
  2.  
  3. 192.168.143.130 master 
  4. 192.168.143.131 slave1 
  5. 192.168.143.132 slave2 
  6. 192.168.143.133 slave3 
  7. 192.168.143.134 slave4 

配置免密登錄

  1. ssh-keygen -t rsa 
  2.  
  3. ssh-copy-id -i ~/.ssh/id_rsa.pub master 
  4. ssh-copy-id -i ~/.ssh/id_rsa.pub slave1 
  5. ssh-copy-id -i ~/.ssh/id_rsa.pub slave2 
  6. ssh-copy-id -i ~/.ssh/id_rsa.pub slave3 
  7. ssh-copy-id -i ~/.ssh/id_rsa.pub slave4 

安裝JDK(每臺機器)

  1. apt-get install -y openjdk-8-jre-headless openjdk-8-jdk 

配置環境變量

在/etc/profile文件最后添加如下內容:

  1. export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
  2. export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools/jar 
  3. export HADOOP_HOME=/usr/hadoop-3.3.0/ 
  4. export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin 
  5. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 
  6. export HADOOP_COMMON_HOME=$HADOOP_HOME 
  7. export HADOOP_HDFS_HOME=$HADOOP_HOME 
  8. export HADOOP_MAPRED_HOME=$HADOOP_HOME 
  9. export HADOOP_YARN_HOME=$HADOOP_HOME 
  10. export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native" 
  11. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 

使環境變量生效

  1. source /etc/profile 

創建目錄(每天機器)

創建目錄的時候要注意,先通過df -h命令查看本機上的磁盤空間,確定好數據存儲的磁盤,然后創建以下三個目錄,在下面的配置文件hdfs-site.xml中修改對應的目錄配置即可

  1. mkdir -p /home/hadoop/dfs/name 
  2. mkdir -p /home/hadoop/dfs/data 
  3. mkdir -p /home/hadoop/temp 

安裝配置Hadoop

 

下載Hadoop安裝包

http://archive.apache.org/dist/hadoop/core/stable/hadoop-3.3.0.tar.gz

  1. # 解壓后拷貝到/usr目錄下 
  2. tar -xzvf hadoop-3.3.0.tar.gz 
  3. mv hadoop-3.3.0 /usr 

配置Hadoop

配置文件在

/usr/hadoop-3.3.0/etc/hadoop目錄下

hadoop-env.sh

  1. export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
  2. export HDFS_NAMENODE_USER=root 
  3. export HDFS_DATANODE_USER=root 
  4. export HDFS_SECONDARYNAMENODE_USER=root 
  5. export YARN_RESOURCEMANAGER_USER=root 
  6. export YARN_NODEMANAGER_USER=root 

core-site.xml

  1. <configuration> 
  2.   <property> 
  3.     <name>fs.defaultFS</name
  4.     <value>hdfs://master:9000</value> 
  5.   </property> 
  6.   <property> 
  7.     <name>hadoop.http.staticuser.user</name
  8.     <value>root</value> 
  9.   </property> 
  10.   <property> 
  11.     <name>dfs.permissions.enabled</name
  12.     <value>false</value> 
  13.   </property> 
  14. </configuration> 

hdfs-site.xml配置多個文件存儲目錄,使用逗號隔開即可

  1. <configuration> 
  2.   <property> 
  3.     <name>dfs.namenode.name.dir</name
  4.     <value>/home/hadoop/dfs/name</value> 
  5.   </property> 
  6.   <property> 
  7.     <name>dfs.dataname.data.dir</name
  8.     <value>/home/hadoop/dfs/data,/usr1/hadoop/dfs/data</value> 
  9.   </property> 
  10.   <property> 
  11.     <name>dfs.replication</name
  12.     <value>2</value> 
  13.   </property> 
  14. </configuration> 

mapred-site.xml

  1. <configuration> 
  2.   <property> 
  3.     <name>mapreduce.framework.name</name
  4.     <value>yarn</value> 
  5.   </property> 
  6. </configuration> 

yarn-site.xml

  1. <configuration> 
  2.   <property> 
  3.     <name>yarn.resourcemanager.hostname</name
  4.     <value>master</value> 
  5.   </property> 
  6.   <property> 
  7.     <name>yarn.resourcemanager.webapp.address</name
  8.     <value>master:8088</value> 
  9.   </property> 
  10.   <property> 
  11.     <name>yarn.nodemanager.aux-services</name
  12.     <value>mapreduce_shuffle</value> 
  13.   </property> 
  14. </configuration> 

workers

這里配置的就是DataNode的存儲機器,不建議用master作為存儲,如果存滿了集群就不能用了

  1. slave1 
  2. slave2 
  3. slave3 
  4. slave4 

將master上的/usr/hadoop-3.3.9拷貝到其他機器即可

  1. scp /usr/hadoop-3.3.0 slave1:/usr 
  2. scp /usr/hadoop-3.3.0 slave2:/usr 
  3. scp /usr/hadoop-3.3.0 slave3:/usr 
  4. scp /usr/hadoop-3.3.0 slave4:/usr 

格式化HDFS目錄(在master機器)

  1. hdfs namenode-format 

啟動Hadoop

在master機器上執行就可以了,執行完以后可以使用jps命令在所有機器上查看進程狀態

  1. cd /usr/hadoop-3.3.0/sbin 
  2. ./start-all.sh 

查看進程狀態

在master和slave上分別執行jps命令

查看是否成功

在瀏覽器上打開下面的網頁,看能否正常訪問

  1. # Hadoop集群信息 
  2. http://192.168.143.130:8088/cluster 
  3.  
  4. # HDFS地址 
  5. http://192.168.143.130:9870/dfshealth.html 
  6.  
  7. # DataNode地址 
  8. http://192.168.143.130:9864/datanode.html 
  9.  
  10. # NodeManager地址 
  11. http://192.168.143.130:8042/node 
  12.  
  13. # SecondaryNameNode 
  14. http://192.168.143.130:9868/status.html 

測試文件上傳(master)

  1. hdfs dfs -mkdir /test 
  2. hdfs dfs -put start-dfs.sh /test 

HDFS操作命令

創建文件夾

  1. hdfs dfs -mkdir /myTask 

創建多層文件

  1. hdfs dfs -mkdir -p /myTask/input 

上傳文件

  1. hdfs dfs -put /opt/wordcount.txt /myTask 

查看總目錄下的文件和文件夾

  1. hdfs dfs -ls / 

查看myTask目錄下的wordcount.txt文件內容

  1. hdfs dfs -cat /myTask/wordcount.txt 

刪除文件或文件夾

  1. hdfs dfs -rm -r /myTask/wordcount.txt 

下載文件到本地

  1. hdfs dfs -get /myTask/wordcount.txt /opt 

Python操作hdfs

python操作hdfs時,如果要進行上傳下載文件,必須在執行代碼的機器上配置hosts文件,原因是hdfs的namenode和datanode注冊后是以hostname進行記錄的,如果不配置直接進行上傳下載操作,那么將會采用hostname進行操作,因此需要在本機上配置hdfs集群機器IP和hostname的對應配置。例如我在本機上進行操作,必須配置如下:

  1. C:\Windows\System32\drivers\etc\hosts 
  2.  
  3. 192.168.143.130 master 
  4. 192.168.143.131 slave1 
  5. 192.168.143.132 slave2 
  6. 192.168.143.133 slave3 
  7. 192.168.143.134 slave4 

安裝庫

  1. pip install hdfs 

操作

連接

  1. from hdfs.client import Client 
  2. client = Client("http://192.168.143.130:9870"

創建目錄

  1. client.makedirs(hdfs_path) 

刪除文件

  1. client.delete(hdfs_path) 

上傳文件

  1. client.download(hdfs_path, local_path) 

獲取目錄下文件列表

  1. client.list(hdfs_path) 

總結

HDFS 文件存儲集群的優點是:配置要求低、易于擴展、效率比較高、非常適合大批量文件存儲,而且可以提供 web 管理頁面,提供非常好的第三方庫。在進行 web 開發時,作為文件和圖片存儲庫也是非常好的選擇。

原文地址:https://www.toutiao.com/i6951757535770640908/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲第一成人在线观看 | 成人免费视频视频在线观看 免费 | 激情网站免费观看 | 免费a视频在线观看 | 久草视频国产在线 | 欧美三日本三级少妇三级99观看视频 | 久久久久亚洲视频 | hd欧美free性xxxx护土 | 在线观看免费污视频 | 黄色aaa视频 | 国产妇女乱码一区二区三区 | 国产精品区一区二区三区 | 91短视频网页版 | 国产资源视频在线观看 | 欧美视频国产精品 | 日本欧美一区二区三区视频麻豆 | 亚洲免费看片网站 | 成人免费一区二区 | 国产精品1区| 大胆在线日本aⅴ免费视频 美国黄色毛片女人性生活片 | 黄色网址免费进入 | 成人久久久久久久久 | 黄色羞羞视频在线观看 | 中国老女人一级毛片视频 | 久久精品a一级国产免视看成人 | 日日草夜夜操 | 欧美成人精品一区二区三区 | 法国极品成人h版 | 亚洲电影在线观看高清免费 | 欧美一级特黄特色大片免费 | 国产va在线观看 | 国产高清美女一级毛片 | 老子午夜影院 | 一级免费大片 | 成人免费在线观看视频 | 九九热视频在线免费观看 | 欧美 日本 在线 | 亚洲一区成人在线 | 性欧美视频在线观看 | 国产1区在线观看 | 成人免费网站在线观看 |