偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Hadoop集群搭建及Python操作

開發(fā) 后端 Hadoop
HDFS 文件存儲集群的優(yōu)點(diǎn)是:配置要求低、易于擴(kuò)展、效率比較高、非常適合大批量文件存儲,而且可以提供 web 管理頁面,提供非常好的第三方庫。在進(jìn)行 web 開發(fā)時,作為文件和圖片存儲庫也是非常好的選擇。

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

環(huán)境

修改主機(jī)名

  1. # 按照上面環(huán)境配置修改每個機(jī)器的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(每臺機(jī)器)

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

配置環(huán)境變量

在/etc/profile文件最后添加如下內(nèi)容:

  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 

使環(huán)境變量生效

  1. source /etc/profile 

創(chuàng)建目錄(每天機(jī)器)

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

  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的存儲機(jī)器,不建議用master作為存儲,如果存滿了集群就不能用了

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

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

  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機(jī)器)

  1. hdfs namenode-format 

啟動Hadoop

在master機(jī)器上執(zhí)行就可以了,執(zhí)行完以后可以使用jps命令在所有機(jī)器上查看進(jìn)程狀態(tài)

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

查看進(jìn)程狀態(tài)

在master和slave上分別執(zhí)行jps命令

查看是否成功

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

  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操作命令

創(chuàng)建文件夾

  1. hdfs dfs -mkdir /myTask 

創(chuàng)建多層文件

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

上傳文件

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

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

  1. hdfs dfs -ls / 

查看myTask目錄下的wordcount.txt文件內(nèi)容

  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時,如果要進(jìn)行上傳下載文件,必須在執(zhí)行代碼的機(jī)器上配置hosts文件,原因是hdfs的namenode和datanode注冊后是以hostname進(jìn)行記錄的,如果不配置直接進(jìn)行上傳下載操作,那么將會采用hostname進(jìn)行操作,因此需要在本機(jī)上配置hdfs集群機(jī)器IP和hostname的對應(yīng)配置。例如我在本機(jī)上進(jìn)行操作,必須配置如下:

  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"

創(chuàng)建目錄

  1. client.makedirs(hdfs_path) 

刪除文件

  1. client.delete(hdfs_path) 

上傳文件

  1. client.download(hdfs_path, local_path) 

獲取目錄下文件列表

  1. client.list(hdfs_path) 

總結(jié)

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

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2016-10-27 09:37:10

Hadoop集群配置

2011-12-07 16:11:50

Hadoop集群搭建

2014-03-17 10:05:45

Hadoop集群

2010-06-04 18:17:50

Hadoop集群

2010-06-03 19:02:31

Hadoop集群搭建

2017-08-10 10:17:32

Hadoop分布式搭建

2012-11-01 17:15:04

2010-06-04 18:06:22

Hadoop集群搭建

2016-01-07 09:36:20

Docker容器

2020-04-21 22:59:50

Redis搭建選舉

2012-09-13 13:26:40

Hadoop集群

2015-05-27 10:29:41

DockerHadoopHadoop集群

2014-03-28 09:35:11

MongoDBSharding

2010-06-04 17:43:12

Hadoop集群搭建

2016-10-13 19:16:28

Python編程語言mysql

2017-10-25 18:25:40

Hadoop偽分布式環(huán)境部署

2011-07-19 13:20:22

Xcode

2017-05-11 17:36:50

2017-12-07 15:24:10

Hadoop大數(shù)據(jù)服務(wù)器

2010-05-24 14:59:29

Hadoop集群
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號