1. 程式人生 > >在Docker與Mac IDEA中安裝單機Hadoop環境

在Docker與Mac IDEA中安裝單機Hadoop環境

首先安裝遠端控制軟體,主要是為了往docker中傳輸檔案,當然使用docker自身的命令也是可以做到的,所以這個遠端控制軟體的安裝不是必須的。我們可以直接使用docker cp命令來進行檔案的拷貝。所以這一步我們可以直接跳過。

安裝Java環境

hadoop是依賴Java的。我們安裝openjdk。我們同時安裝了jdk和jre。

sudo apt-get install openjdk-7-jre openjdk-7-jdk

然後我們找一下他的根目錄用以設定環境變數。這裡我們使用了dpkg -L命令。

[email protected]244ca27dce99:/# dpkg -L openjdk-7-jdk
/. /usr /usr/lib /usr/lib/jvm /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-amd64/lib /usr/lib/jvm/java-7-openjdk-amd64/lib/ir.idl /usr/lib/jvm/java-7-openjdk-amd64/lib/tools.jar /usr/lib/jvm/java-7-openjdk-amd64/lib/jconsole.jar /usr/lib/jvm/java-7-openjdk-amd64/lib/ct.sym /usr/lib/jvm/java-7-openjdk-amd64/lib/dt.jar /usr/lib/jvm/java-7
-openjdk-amd64/lib/amd64 /usr/lib/jvm/java-7-openjdk-amd64/lib/amd64/jli /usr/lib/jvm/java-7-openjdk-amd64/lib/sa-jdi.jar /usr/lib/jvm/java-7-openjdk-amd64/lib/orb.idl /usr/lib/jvm/java-7-openjdk-amd64/man /usr/lib/jvm/java-7-openjdk-amd64/man/man1 /usr/lib/jvm/java-7-openjdk-amd64/man/man1/extcheck.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jhat.1
.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/native2ascii.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jdb.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jar.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jrunscript.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jinfo.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/wsimport.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jstatd.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/javah.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/idlj.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jarsigner.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/schemagen.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jstack.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/javac.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/javap.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/serialver.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/wsgen.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/apt.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jstat.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jconsole.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jmap.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jsadebugd.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/rmic.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jcmd.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/appletviewer.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/xjc.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/javadoc.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/man1/jps.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8 /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1 /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/extcheck.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jhat.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/native2ascii.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jdb.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jar.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jrunscript.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jinfo.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/wsimport.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jstatd.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/javah.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/idlj.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jarsigner.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/schemagen.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jstack.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/javac.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/javap.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/serialver.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/wsgen.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/apt.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jstat.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jconsole.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jmap.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jsadebugd.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/rmic.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jcmd.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/appletviewer.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/xjc.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/javadoc.1.gz /usr/lib/jvm/java-7-openjdk-amd64/man/ja_JP.UTF-8/man1/jps.1.gz /usr/lib/jvm/java-7-openjdk-amd64/include /usr/lib/jvm/java-7-openjdk-amd64/include/jni.h /usr/lib/jvm/java-7-openjdk-amd64/include/jvmti.h /usr/lib/jvm/java-7-openjdk-amd64/include/classfile_constants.h /usr/lib/jvm/java-7-openjdk-amd64/include/linux /usr/lib/jvm/java-7-openjdk-amd64/include/linux/jawt_md.h /usr/lib/jvm/java-7-openjdk-amd64/include/linux/jni_md.h /usr/lib/jvm/java-7-openjdk-amd64/include/jawt.h /usr/lib/jvm/java-7-openjdk-amd64/include/jvmticmlr.h /usr/lib/jvm/java-7-openjdk-amd64/include/jdwpTransport.h /usr/lib/jvm/java-7-openjdk-amd64/bin /usr/lib/jvm/java-7-openjdk-amd64/bin/jps /usr/lib/jvm/java-7-openjdk-amd64/bin/jstat /usr/lib/jvm/java-7-openjdk-amd64/bin/xjc /usr/lib/jvm/java-7-openjdk-amd64/bin/idlj /usr/lib/jvm/java-7-openjdk-amd64/bin/jsadebugd /usr/lib/jvm/java-7-openjdk-amd64/bin/jarsigner /usr/lib/jvm/java-7-openjdk-amd64/bin/appletviewer /usr/lib/jvm/java-7-openjdk-amd64/bin/jdb /usr/lib/jvm/java-7-openjdk-amd64/bin/jmap /usr/lib/jvm/java-7-openjdk-amd64/bin/javap /usr/lib/jvm/java-7-openjdk-amd64/bin/jcmd /usr/lib/jvm/java-7-openjdk-amd64/bin/jhat /usr/lib/jvm/java-7-openjdk-amd64/bin/jrunscript /usr/lib/jvm/java-7-openjdk-amd64/bin/javah /usr/lib/jvm/java-7-openjdk-amd64/bin/jinfo /usr/lib/jvm/java-7-openjdk-amd64/bin/apt /usr/lib/jvm/java-7-openjdk-amd64/bin/serialver /usr/lib/jvm/java-7-openjdk-amd64/bin/javac /usr/lib/jvm/java-7-openjdk-amd64/bin/wsimport /usr/lib/jvm/java-7-openjdk-amd64/bin/jconsole /usr/lib/jvm/java-7-openjdk-amd64/bin/jar /usr/lib/jvm/java-7-openjdk-amd64/bin/rmic /usr/lib/jvm/java-7-openjdk-amd64/bin/schemagen /usr/lib/jvm/java-7-openjdk-amd64/bin/wsgen /usr/lib/jvm/java-7-openjdk-amd64/bin/native2ascii /usr/lib/jvm/java-7-openjdk-amd64/bin/jstack /usr/lib/jvm/java-7-openjdk-amd64/bin/jstatd /usr/lib/jvm/java-7-openjdk-amd64/bin/javadoc /usr/lib/jvm/java-7-openjdk-amd64/bin/extcheck /usr/share /usr/share/doc /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/openjdk-7-jdk /usr/lib/jvm/java-7-openjdk-amd64/lib/amd64/jli/libjli.so /usr/lib/jvm/java-7-openjdk-amd64/lib/jexec /usr/lib/jvm/java-7-openjdk-amd64/include/jawt_md.h /usr/lib/jvm/java-7-openjdk-amd64/include/jni_md.h /usr/lib/jvm/java-7-openjdk-amd64/THIRD_PARTY_README /usr/lib/jvm/java-7-openjdk-amd64/ASSEMBLY_EXCEPTION /usr/lib/jvm/java-7-openjdk-amd64/src.zip /usr/share/doc/openjdk-7-jdk [email protected]244ca27dce99:/#

我們可以看出這個軟體的根目錄就是/usr/lib/jvm/java-7-openjdk-amd64。我們為這個java環境設計一個環境變數。我們開啟配置檔案~/.bashrc。然後使用export指令設定java的環境變數,然後進行一下檢驗。

root@244ca27dce99:/# java -version
java version "1.7.0_131"
OpenJDK Runtime Environment (IcedTea 2.6.9) (7u131-2.6.9-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)
root@244ca27dce99:/# 

安裝hadoop

我們現在下載當前最新版的hadoop,是2.8版本。

我們在本地下載並且解壓,然後使用docker cp命令將這個東西拷貝到hadoop的容器中。

localhost:~ zhendu$ docker cp ~/Downloads/hadoop-2.8.0 hadoop:/

然後我們將這個目錄放到usr/local之下,這個目錄通常都會放著我們在本地安裝的軟體。然後我們改名並且把則個檔案設為可執行的。

我們簡單執行一個hadoop命令,看看行不行。

root@244ca27dce99:/usr/local/hadoop# ./bin/hadoop version
Hadoop 2.8.0
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 91f2b7a13d1e97be65db92ddabc627cc29ac0009
Compiled by jdu on 2017-03-17T04:12Z
Compiled with protoc 2.5.0
From source with checksum 60125541c2b3e266cbf3becc5bda666
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.8.0.jar
root@244ca27dce99:/usr/local/hadoop

hadoop一開始預設就是設計為單機版,現在就可以使用hadoop的介面來開發hadoop程式了。實際上單機版並不是hadoop的唯一單機部署方法。

Hadoop 可以在單節點上以偽分散式的方式執行,Hadoop 程序以分離的 Java 程序來執行,節點既作為 NameNode 也作為 DataNode,同時,讀取的是 HDFS 中的檔案。

當然我們現在就可以執行一些hadoop程式了。

執行hadoop程式

hadoop提供了很多案例程式,我們現在使用一個命令來執行一個樣例程式:grep,先分別設定了input和output路徑,然後就可以進行,樣例程式的運行了。

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

這個就是我們要執行的東西。

在IDEA中進行hadoop的開發

因為hadoop是完全基於java的,所以我們可以認為這個hadoop可以執行在mac物理機中,所以我門在IDEA中直接部署了hadoop的環境。

主要就是將hadoop的所有java包匯入,然後在編譯引數裡面宣告輸入和輸出檔案。

相關推薦

DockerMac IDEA安裝單機Hadoop環境

首先安裝遠端控制軟體,主要是為了往docker中傳輸檔案,當然使用docker自身的命令也是可以做到的,所以這個遠端控制軟體的安裝不是必須的。我們可以直接使用docker cp命令來進行檔案的拷貝。所以這一步我們可以直接跳過。 安裝Java環境 ha

Mac系統安裝virtualenv虛擬環境

總體來說有三個步驟.1.建立工作目錄.python3 -m venv lanyue_env注意:2.安裝virtualenv.pip3 install --user virtualenv2.啟用虛擬環境.source lanyue_env/bin/activate3.如果要停

mac本地安裝單機hadoop--學習筆記

.class eno star mapreduce trac exp dem pac 環境 Mac配置hadoop1.修改 /etc/hosts127.0.0.1 localhost2.下載hadoop2.9.0和jdk並安裝配置相應環境 vim /etc/profile

Maven的安裝IDEA建立Maven工程.

1.Maven. Maven: 用來管理專案的構建 , 報告和文件的軟體專案管理工具. 作用: 對專案的jar包進行統一的管理. maven對工程分模組構建,提高開發效率. 2.Maven的倉庫. 本地倉庫: 相當於快取 , 第一次會把jar包下載到本地

Mac OS 安裝 autoconf 和 automake

span pan blog rest makefile autoconf clas nal and 你需要安裝很多東西,請按照以下順序安裝: 安裝的版本包也不能錯: curl -O http://mirrors.kernel.org/gnu/m4/m4-1.4.13.ta

Mac系統安裝及配置Apache Tomcat

class 安裝 配置 span pat body 網址 cat 驗證 1.下載Tomcat http://tomcat.apache.org/download-80.cgi .tar.gz結尾和zip均可 2:解壓至想要的文件下 3:配置(註:輸入路徑自定) 使用終端

大資料之scala(二) --- 對映,元組,簡單類,內部類,物件Object,Idea安裝scala外掛,trait特質[介面],包和包的匯入

一、對映<Map> ----------------------------------------------------- 1.建立一個不可變的對映Map<k,v> ==> Map(k -> v) scala> val map

.netcore Docker CentOS下Docker.netcore(一) 之 安裝 CentOS下Docker.netcore(二) 之 Dockerfile CentOS下Docker.netcore(三)之 三劍客之一Docker-Compose CentOS下Docker.

CentOS下Docker與.netcore(一) 之 安裝 CentOS下Docker與.netcore(二) 之 Dockerfile CentOS下Docker與.netcore(三)之 三劍客之一Docker-Compose CentOS下Docker與.netcore(四)之 三劍客之一Doc

dockermac和linux安裝

下載地址:https://download.docker.com/mac/stable/Docker.dmg 下載地址:https://download.docker.com/mac/beta/Docker.dmg   以上為兩個不同的版本 下載安裝之後即可使用 下載安

IDEA安裝activiti並使用

1、IDEA中本身不帶activiti,需要自己安裝下載。 開啟IDEA中File列表下的Settings 輸入actiBPM,然後點選下面的Search...搜尋 點選Install 下載 下載結束後應用儲存,然後重啟IDEA 建立個資料夾 右鍵ne

Idea 安裝以及破解 ,以及在Idea搭建PHP開發環境

4. php.ini 中增加一下: zend_extension=php_xdebug-2.6.1-7.1.dll [Xdebug] zend_extension_ts=php_xdebug-2.6.1-7.1.dll ;xdebug.remote_host=

LabelImg在Docker on Mac上成功安裝

LabelImg作為圖片標註工具,是在進行圖片識別和視訊分類等機器學習任務的訓練集準備,不可少的工具,官網地址:https://github.com/tzutalin/labelImg 現在心情久久不能平靜,終於在Docker(Docker on mac)的容器中,成功跑起

intellij idea安裝、配置mybatis外掛Free Mybatis plugin

場景:使用intellij idea開發,持久層dao使用了mybatis,經常需要編輯mybatis的××Mapper.java和××Mapper.xml,因為是接口裡一個方法對應xml裡的一個SQL的id,當需要找找個方法時候得拷貝找個方法名,然後在對應檔案中ctrl

mac IDEA,推送本地專案到git時出現:Push to xxxx/master was rejected

在mac IDEA中,推送本地專案到git時出現: Push rejected: Push to xxxx/master was rejected 1輸入:git pull xxxx master –

IDEA安裝lombok外掛

一、File ---> settings... 二、Plugins  ---> Browse repositories... 三、搜尋 lombok ,點選 Lombok Plu

IDEA安裝lombok

lombok為什麼要使用lombok經常開發Java服務端的小夥伴應該對bean不陌生,多數情況下都需要getter、setter、toString 等方法,儘管IDE工具都會幫我們生成。但是你會發現一個問題,如果bean的屬性發生了變化,你需要重新生成。而使用了lombok

lombok在idea安裝以及使用

一、lombok簡介 一個標準的java bean需要有getter和setter方法,有時候些程式碼很冗餘,而lombok可以簡化我們的程式碼,在原始碼中沒有getter和setter方法,但是在編譯生成的位元組碼檔案中有getter 和setter方法,這只是lombo

Docker】在IDEA實現一鍵部署到伺服器(附ssl連線加密)

近年來微服務可謂是火遍大江南北,隨著業務的拆分和高可用和叢集,服務變得越來越多,不再像原來的單體應用架構那樣,部署只需要執行一條nohup java -jar xx.jar &就可以完成部署,如果在微服務裡還是用這種方式完成部署的話那就太low太耗時間了,Dock

IDEA安裝MyBatis Plugins(Mybatis-Generator)外掛及破解方法

IDEA中安裝MyBatis Plugins(Mybatis-Generator)外掛及破解方法 1.首先在File——Settings——輸入Plugins,選擇Browse repositories,搜尋mybatis,選擇mybatis-plugins,點選安裝(由於我的已經安裝過,所以沒

Mac系統安裝配置Tomcat及和Eclipse 配置

 第一步:下載Tomcat       直接下載如下選中即可: 第二步:   下載完成後 ,把解壓的資料夾放到一個目錄下   /Users/lang/下 1.開啟你的終端:然後輸入  pico .bash_profile   回車   pico 和.ba