當前位置:首頁 » 密碼管理 » python訪問hdfs文件

python訪問hdfs文件

發布時間: 2022-05-04 10:29:21

Ⅰ 如何將hdfs里某一目錄下的所有文件的文件名讀取出來

最近剛剛接觸到RobotFramework,發現這個工具倒是可以滿足我的要求,而且可以結合seleniumLibrary,用來做web的自動化測試相當不錯。之前我也接觸過selenium,不過感覺那個工具更貼近開發人員使用,有了robotFramework之後,感覺這個工具相當強大,而且是貼近測試人員的。之所以說強大,主要是這些測試腳本都可以用文本格式保存(如txt/html等)

==安裝篇==
如果有想學的朋友可以自己下載以下文件安裝(Google-code里可以找到大部分的安裝文件):
這篇文章的內容比較舊了,最新的安裝指南請查看 更新篇
python-2.7.1.msi(首先要有python,請選擇將Python加入Path)
wxPython2.8-win32-unicode-2.8.11.0-py27.exe(wxPython,必須要的)
robotframework-2.6.0.win32.exe(然後裝robot的Framework)
robotframework-ride-0.38.1.win32.exe(robotFramework的IDE,很不錯)
robotframework-seleniumlibrary-2.8.win32.exe(seleniumLibrary)

安裝成功後
執行[PythonDir]\Scripts\ride.py
看到界面就是安裝成功了。

如果需要AutoIt支持就下載下面2個東東。
AutoItLibrary-1.1
pywin32-216.win32-py2.7.exe

==入門篇==
安裝完成了,這個框架可以說是基於keyword的操作,按F5可以看到所有載入的keyword。
首先新增一個project

然後新增suite

然後新增test case,接著在suite層級add library,把selenium library加進來,添加後按F5檢驗是否添加成功,如圖

OK,繼續在suite的setting里設置suite啟動和結束的keyword,即Start Selenium Server和Stop Selenium Server,他會在運行時幫助我們自動啟動seleniumserver。

接下來在test case里添加一個步驟,open browser(一般用selenium做web測試都要用這個方法來打開瀏覽器),添加後關鍵字變成藍色表示找到關鍵字了,否則可能是拼寫錯誤或者沒有載入相應的library。紅色表示有一個必選參數要給定輸入值,具體參數可以看F5里的keyword說明。

輸入參數,第二個參數默認是firefox,不過我沒裝,就用ie吧。

以上只是一個簡單的例子,沒有詳細說明每個步驟的操作,只是初步介紹。後續再詳細介紹。

Ⅱ python 怎麼把日誌文件寫到hdfs

在IDE中設置project interpreter為python2的路徑即可; 在window中設置python2的路徑到環境變數Path中 在linux中設置python2的路徑到PATH中

Ⅲ python的map和rece和Hadoop的MapRece有什麼關系

關系就是都是基於Map-Rece的處理思想設計出來的。
從用戶角度看功能其實差不多,
Python的Map函數和Hadoop的Map階段對輸入進行逐行處理;
Python的Rece函數和Hadoop的Rece階段對輸入進行累積處理。
但是其實完整的Hadoop MapRece是Map+Shuffle+Sort+Rece過程。
其中Shuffle過程是為了讓分布式機群之間將同Key數據進行互相交換,Sort過程是根據Key對所有數據進行排序,從而才能完成類WordCount功能,而這兩步在Python裡面當然是需要用戶自己去編寫的。

Ⅳ 如何安裝Spark amp;TensorflowOnSpark

安裝JAVA和Hadoop

這里提供一個很好的教程,就是又好用,又好看的教程。

按照這個教程來,基本上就沒有太多坑地完成安裝。不過也要注意一些點。

  • spark從master發送命令的時候好像是按照路徑尋找文件,因此你一定一定要把集群上所有的計算機的用戶名都配置成一樣的,比如我的都叫ubuntu,而文中的都叫hadoop,這里你要注意,如果你不跟著教程也叫hadoop的話,注意識別裡面有一些命令或者路徑你是不能直接復制的,而是把裡面的hadoop改成你的用戶名,比如在偽分布式配置core-site.xml的時候裡面路徑,你要改成你的實際路徑才可以。

  • 就是在按照教程配置了JAVA_HOME之後還會出現找不到JAVA_HOME的情況,應該修改hadoop/etc/hadoop/hadoop-env.sh中的JAVA_HOME的內容為絕對路徑即可。
    2.另外那個ssh免密登錄可以不用這個,因為要搭建的是真集群的,所以這個用不著,搭好了再告訴你。這里如果不設置的話在啟動hadoop的時候可能會報錯

  • 在分布式下,可能會出現這種很奇怪的情況:Live nodes只有一個(應該有倆),而且你每次刷新竟然都不一樣。這樣的解決方法是修改hdfs-site.xml,講data.dir改成不一樣的就可以了。

  • 集群管理器如果是新手的話建議直接使用standalone模式(如果你不知道啥是集群管理器的話,那就更這么建議了[微笑]),也就是spark自帶的集群管理器,這就意味著上邊那個教程里的「啟動yarn」這一節你就完全可以跳過了。

  • 然後就沒什麼坑了,bulabula配置好,你就擁有的偽分布式的Hadoop了,你就已經向spark邁進了一大步了。

    上面那個是偽分布式的搭建,如果是想要真的分布式的話(分布式就是多台計算機的意思啦),需要看一下這個教程

    照著這個教程完全修改一波,而且是每個計算機都要做相同的修改,另外這里有個小坑(也坑了我一晚上),就是如果按照最上面那個教程里搭偽分布式的話,core-site.xml這個文件的這個屬性
    要從localhost:9000改成master:9000

  • <property>


  • <name>fs.defaultFS</name>


  • <value>hdfs://master:9000</value>


  • </property>1234


  • 安裝scala和Spark

    搭建好了上邊的來我們進行下一個教程[微笑]
    1. 安裝scala最好選擇一個2.10.X,這樣對spark支持比較好,不會出現一些幺蛾子。這有個教程,應該是可以的
    2. 安裝spark大概是這裡面最簡單的事了吧點這里下載spark。鑒於我們已經安裝好了hadoop,所以我們就下載一個不需要hadoop的spark包,就是這個with user-provided Hadoop這個

    我用的是1.6.0好像大家用這個的比較多,最新的已經到2.1.x了。
    解壓到你想安裝的目錄

  • sudo tar -zxf ~/下載/spark-1.6.0-bin-without-hadoop.tgz -C /usr/local/cd /usr/localsudo mv ./spark-1.6.0-bin-without-hadoop/ ./sparksudo chown -R hadoop:hadoop ./spark # 此處的 hadoop 為你的用戶名1234


  • 之後很重點的一步是修改spark-env.sh的內容,好像要改好多好多。。。

  • cd /usr/local/sparkcp ./conf/spark-env.sh.template ./conf/spark-env.shvim conf/spark-enf.sh123


  • 這里是我的spark-env.sh的一些配置

  • export HADOOP_HOME=/home/ubuntu/workspace/hadoopexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport HADOOP_HDFS_HOME=/home/ubuntu/workspace/hadoopexport SPARK_DIST_CLASSPATH=$(/home/ubuntu/workspace/hadoop/bin/hadoop classpath)export JAVA_HOME=/home/ubuntu/workspace/jdk/export SCALA_HOME=/home/ubuntu/workspace/scalaexport SPARK_MASTER_IP=192.168.1.129export SPARK_WORKER_MEMORY=1Gexport SPARK_MASTER_PORT=7077export SPARK_WORKER_CORES=1export SPARK_WORDER_INSTANCES=2export SPARK_EXECUTOR_INSTANCES=2123456789101112131415161718


  • 屬性不明白的可以打開spark-env.sh,裡面前面又好多注釋,講各種屬性的意思。(ps:這里有個SPARK_DIST_CLASSPATH一定要照著改對,否則會運行不起來)
    這是給力星大大的教程寫得很好。

    3. 分布式spark部署
    重點來了,當然,教程在這里

    這里好像沒什麼坑,但是好像我記得剛開始的時候別的機器上的worker老是啟動不起來,但是忘記是什麼原因了,可能是免密登錄沒設置還是怎麼的。
    照著教程完成了之後,你就獲得了spark的集群辣,撒花~(≧▽≦)/~

    ps:這里還有個搭建standalone集群的簡單介紹,Spark的Standalone模式安裝部署

    安裝TensorflowOnSpark

    這個真是說難也難,說簡單真是巨簡單,因為步驟github上已經寫得好好的了,但是,有些坑,確實會把人坑死的。
    雅虎開源的TensorflowOnSpark
    1. 啥?你說全是英文看不懂,好吧我也看不懂,不過你想安裝TensorflowOnSpark的話,應該拉到底點這里的wiki site

    然後你打開個就看見了和網站上差不多的美妙結果。

    ==============2017.4.15更新==================
    今天在運行程序的時候發生了莫名其妙的bug,主要症狀就是task會卡在某個地方不再進行了,點進去看詳細的task會發現是在某個slave上的某個task卡住了,調試無果。關機重啟之後再次運行不再卡頓,原因大概是系統要求的資源沒有達到,以後遇到這種情況,建議重新調小運行需要的cpu數量以及內存數量等資源配置選項再試試,實在不行就關機重啟,一般都可以解決

    ==============2017.7.28更新====================
    又踩到一個坑是,還是在識別的時候可能會卡住,可能是因為其他的worker中的namenode忘記format了。
    另外還有識別的准確率很低的問題,可能是因為python找不到Jar包了,使用以下方法可以:
    原來python在寫hdfs文件的時候,找不到對應的jar包,在提交的時候添加如下的配置信息

  • --conf spark.executorEnv.LD_LIBRARY_PATH="${JAVA_HOME}/jre/lib/amd64/server"


  • --conf spark.executorEnv.CLASSPATH="$($HADOOP_HOME/bin/hadoop classpath --glob):${CLASSPATH}" 12


  • 這里致謝評論區中的「她說巷尾的櫻花開了 2017-07-13 10:10發表 [回復]「 提供解決方法
    相關鏈接:

    利用IDEA查看和修改spark源碼

    修改spark源碼並編譯部署

Ⅳ Python怎麼獲取HDFS文件的編碼格式

你好,你可以利用python3的python3-magic來獲得文件的編碼格式。下面是對應的代碼
import magic

blob = open('unknown-file').read()

m = magic.open(magic.MAGIC_MIME_ENCODING)

m.load()

encoding = m.buffer(blob) # "utf-8" "us-ascii" etc

Ⅵ hadoop用python寫的Map部分哪裡有問題啊

這個item.txt和'user_profile.txt'是什麼文件?

如果是數據文件那應該放到HDFS上,或者自己實現inputformat來提供訪問方式。程序中從標准輸入獲取數據。
如果是運行中的一些參數信息,那應該使用-files選項讓Hadoop框架幫你把文件發送到目標機器上,和maprece的jar包放到相同的臨時目錄下,你才能找到。-files要加在前面,例如:
hadoop jar \$HADOOP_HOME/contrib/streaming/hadoop-0.20.2-streaming.jar -files item.txt -mapper ./python/map.py -recer ./python/rece.py -input /home/hadoop/hello -output /home/hadoop/outpath
如果保證每台主機的相同路徑下都存在這個文件,也可以使用絕對路徑。

命令寫的也有問題,沒有指定輸入輸出目錄。
hadoop jar \$HADOOP_HOME/contrib/streaming/hadoop-0.20.2-streaming.jar -mapper ./python/map.py -recer ./python/rece.py -input /home/hadoop/hello -output /home/hadoop/outpath
其中輸出路徑/home/hadoop/outpath需要是一個之前不存在的路徑,執行maprece的時候會校驗並創建。

熱點內容
tomcat下載linux 發布:2025-05-11 07:47:06 瀏覽:791
phpcookie設置時間 發布:2025-05-11 07:36:15 瀏覽:110
固態硬碟需要緩存嗎 發布:2025-05-11 07:29:09 瀏覽:605
松江換門密碼鎖哪裡有 發布:2025-05-11 07:23:21 瀏覽:326
自動配置代理什麼意思 發布:2025-05-11 07:16:51 瀏覽:993
notepad編寫php 發布:2025-05-11 07:10:50 瀏覽:864
茄子快傳的文件夾 發布:2025-05-11 07:04:30 瀏覽:734
手機指紋密碼如何更換 發布:2025-05-11 07:02:22 瀏覽:123
java存儲資料庫 發布:2025-05-11 07:01:33 瀏覽:177
辦理ca的初始密碼是多少 發布:2025-05-11 06:54:55 瀏覽:425