日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Hadoop集群搭建及Python操作

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

10余年的清水網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整清水建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“清水網(wǎng)站設(shè)計(jì)”,“清水網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

環(huán)境

修改主機(jī)名

 
 
 
 
  1. # 按照上面環(huán)境配置修改每個(gè)機(jī)器的hostname
  2. vi /etc/hostname
  3. # 使用hostname命令使其生效,就不用重啟了
  4. hostname xxxx

修改hosts文件

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

配置免密登錄

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

安裝JDK(每臺(tái)機(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)建目錄的時(shí)候要注意,先通過(guò)df -h命令查看本機(jī)上的磁盤空間,確定好數(shù)據(jù)存儲(chǔ)的磁盤,然后創(chuàng)建以下三個(gè)目錄,在下面的配置文件hdfs-site.xml中修改對(duì)應(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.   
  2.     fs.defaultFS
  3.     hdfs://master:9000
  4.   
  5.   
  6.     hadoop.http.staticuser.user
  7.     root
  8.   
  9.   
  10.     dfs.permissions.enabled
  11.     false
  12.   

hdfs-site.xml配置多個(gè)文件存儲(chǔ)目錄,使用逗號(hào)隔開(kāi)即可

 
 
 
 
  1.   
  2.     dfs.namenode.name.dir
  3.     /home/hadoop/dfs/name
  4.   
  5.   
  6.     dfs.dataname.data.dir
  7.     /home/hadoop/dfs/data,/usr1/hadoop/dfs/data
  8.   
  9.   
  10.     dfs.replication
  11.     2
  12.   

mapred-site.xml

 
 
 
 
  1.   
  2.     mapreduce.framework.name
  3.     yarn
  4.   

yarn-site.xml

 
 
 
 
  1.   
  2.     yarn.resourcemanager.hostname
  3.     master
  4.   
  5.   
  6.     yarn.resourcemanager.webapp.address
  7.     master:8088
  8.   
  9.   
  10.     yarn.nodemanager.aux-services
  11.     mapreduce_shuffle
  12.   

 workers

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

 
 
 
 
  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

啟動(dòng)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命令

查看是否成功

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

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

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

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

安裝庫(kù)

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


當(dāng)前標(biāo)題:Hadoop集群搭建及Python操作
新聞來(lái)源:http://www.5511xx.com/article/dhpesco.html