linuxhadoop安裝
A. 怎麼在linux虛擬機安裝hadoop
namenode就是master。 必須要此悶有一台啟動namenode服務。 ============= 如果只需要 datanode,那麼jps 命令輪嘩後,查看到線程ID 然後kill 掉就好臘扒行了。 注意 kill掉 namenode後,整個hadoop集群就宕掉了。
B. 如何在Linux下搭建hadoop集群環境 小殘's Blog
前期准備
l 兩台linux虛擬機(本文使用redhat5,IP分別為 IP1、IP2)
l JDK環境(本文使用jdk1.6,網上很多配置方法,本文省略)
l Hadoop安裝包(本文使用Hadoop1.0.4)
搭建目標
210作為主機和節點機,211作為節點機。
搭建步驟
1修改hosts文件
在/etc/hosts中增加:
IP1 hadoop1
IP2 hadoop2
2 實現ssh無密碼登陸
2.1 主機(master)無密碼本機登陸
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
直接回車,完成後會在 ~/.ssh/ 生成兩個文件: id_dsa 和 id_dsa.pub 。
這兩個是成對出現,類似鑰匙和鎖。
再把 id_dsa.pub 追加到授權 key 裡面 ( 當前並沒有 authorized_key s文件 ) :
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost hostname
還是要輸入密碼,一般這種情況都是因為目錄或文件的許可權問題,看看系統日誌,確實是許可權問題
.ssh下的authorized_keys許可權為600,其父目錄和祖父目錄應為755
2.2 無密碼登陸節點機(slave)
slave上執行:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
生成.ssh目錄。
將master上的authorized_keys復制到slave上:
scp authorized_keys hadoop2:~/.ssh/
實驗:在master上執行
ssh hadoop2
實現無密碼登陸。
3 配置Hadoop
3.1拷貝hadoop
將hadoop-1.0.4.tar.gz ,拷貝到usr/local 文件夾下,然後解壓。
解壓命令:
tar –zxvf hadoop-1.0.4.tar.gz
3.2查看 cat /etc/hosts
IP1 hadoop1
IP2 hadoop2
3.3 配置 conf/masters 和 conf/slaves
conf/masters:
1
IP1
conf/slaves:
1
2
IP2
IP2
3.4 配置 conf/hadoop-env.sh
加入
1
export java_HOME=/home/elvis/soft/jdk1.7.0_17
3.5 配置 conf/core-site.xml
1
2
3
4
<property>
<name>fs.default.name</name>
<value>hdfs://IP1:9000</value>
</property>
3.6 配置 conf/hdfs-site.xml
加入
<property>
<name>dfs.http.address</name>
<value>IP1:50070</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
3.7 配置conf/mapred-site.xml
加入
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.50:8012</value>
</property>
3.8 建立相關的目錄
1
/usr/local/hadoop/ //hadoop數據和namenode目錄
【注意】只創建到hadoop目錄即可,不要手動創建data和namenode目錄。
其他節點機也同樣建立該目錄。
3.9 拷貝hadoop文件到其他節點機
將hadoop文件遠程到其他節點(這樣前面的配置就都映射到了其他節點上),
命令:
1
scp -r hadoop-1.0.4 IP2:/usr/local/
3.10 格式化Active master
命令:
bin/hadoop namenode -format
3.11 啟動集群 ./start-all.sh
現在集群啟動起來了,看一下,命令:
1
bin/hadoop dfsadmin -report
2個datanode,打開web看一下
瀏覽器輸入:IP1:50070
打完收工,集群安裝完成!
C. 如何在linux下安裝hadoop
如何在linux下安裝hadoop
建議使用自動化部署吧。 這個還是不太難做到哦。 能否看一下my網名呢?幫助搞定一下
一、前期准備:
下載hadoop: :hadoop.apache./core/releases.
:hadoop.apache./mon/releases.
:apache./dyn/closer.cgi/hadoop/core/
:labs.xiaonei./apache-mirror/hadoop/core/hadoop-0.20.1/hadoop-0.20.1.tar.gz
:labs.xiaonei./apache-mirror/hadoop/
二、硬體環境
共有3台機器,均使用的CentOS,Java使用的是jdk1.6.0。
三、安裝JAVA6
sudo apt-get install sun-java6-jdk
/etc/environment
開啟之後加入:#中間是以英文的冒號隔開,記得windows中是以英文的分號做為宏沒分隔的
CLASSPATH=.:/usr/local/java/lib
JAVA_HOME=/usr/local/java
三、配置host表
[root@hadoop ~]# vi /etc/hosts
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.108 datanode1
192.168.13.110 datanode2
[root@test ~]# vi /etc/hosts
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.108 datanode1
[root@test2 ~]# vi /etc/host
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.110 datanode2
新增使用者和使用者組
addgroup hadoop
adser hadoop
usermod -a -G hadoop hadoop
passwd hadoop
配置ssh:
服務端:
su hadoop
ssh-keygen -t rsa
cp id_rsa.pub authorized_keys
客戶端
chmod 700 /home/hadoop
chmod 755 /home/hadoop/.ssh
su hadoop
cd /home
mkdir .ssh
服務端:
chmod 644 /home/hadoop/.ssh/authorized_keys
scp authorized_keys datanode1:/home/hadoop/.ssh/
scp authorized_keys datanode2:/home/hadoop/.ssh/
ssh datanode1
ssh datanode2
如果ssh配置好了就會蔽和納出現以下提示棚纖資訊
The authenticity of host [dbrg-2] can't be established.
Key fingerpr is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.
Are you sure you want to continue connecting (yes/no)?
OpenSSH告訴你它不知道這台主機但是你不用擔心這個問題你是第次登入這台主機鍵入「yes」這將把
這台主機「識別標記」加到「~/.ssh/know_hosts」檔案中第 2次訪問這台主機時候就不會再顯示這條提示信
不過別忘了測試本機sshdbrg-1
mkdir /home/hadoop/HadoopInstall
tar -zxvf hadoop-0.20.1.tar.gz -C /home/hadoop/HadoopInstall/
cd /home/hadoop/HadoopInstall/
ln -s hadoop-0.20.1 hadoop
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:/usr/local/java/lib
export HADOOP_HOME=/home/hadoop/HadoopInstall/hadoop
export HADOOP_CONF_DIR=/home/hadoop/hadoop-conf
export PATH=$HADOOP_HOME/bin:$PATH
cd $HADOOP_HOME/conf/
mkdir /home/hadoop/hadoop-conf
cp hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml masters slaves /home/hadoop/hadoop-conf
vi $HADOOP_HOME/hadoop-conf/hadoop-env.sh
# The java implementation to use. Required. --修改成你自己jdk安裝的目錄
export JAVA_HOME=/usr/local/java
export HADOOP_CLASSPATH=.:/usr/local/java/lib
# The maximum amount of heap to use, in MB. Default is 1000.--根據你的記憶體大小調整
export HADOOP_HEAPSIZE=200
vi /home/hadoop/.bashrc
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:/usr/local/java/lib
export HADOOP_HOME=/home/hadoop/HadoopInstall/hadoop
export HADOOP_CONF_DIR=/home/hadoop/hadoop-conf
export PATH=$HADOOP_HOME/bin:$PATH
配置
namenode
#vi $HADOOP_CONF_DIR/slaves
192.168.13.108
192.168.13.110
#vi $HADOOP_CONF_DIR/core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs:192.168.13.100:9000</value>
</property>
</configuration>
#vi $HADOOP_CONF_DIR/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
</configuration>
#vi $HADOOP_CONF_DIR/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.13.100:11000</value>
</property>
</configuration>
~
在slave上的配置檔案如下(hdfs-site.xml不需要配置):
[root@test12 conf]# cat core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs:namenode:9000</value>
</property>
</configuration>
[root@test12 conf]# cat mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>namenode:11000</value>
</property>
</configuration>
啟動
export PATH=$HADOOP_HOME/bin:$PATH
hadoop namenode -format
start-all.sh
停止s-all.sh
在hdfs上建立danchentest資料夾,上傳檔案到此目錄下
$HADOOP_HOME/bin/hadoop fs -mkdir danchentest
$HADOOP_HOME/bin/hadoop fs -put $HADOOP_HOME/README.txt danchentest
cd $HADOOP_HOME
hadoop jar hadoop-0.20.1-examples.jar wordcount /user/hadoop/danchentest/README.txt output1
09/12/21 18:31:44 INFO input.FileInputFormat: Total input paths to process : 1
09/12/21 18:31:45 INFO mapred.JobClient: Running job: job_200912211824_0002
09/12/21 18:31:46 INFO mapred.JobClient: map 0% rece 0%
09/12/21 18:31:53 INFO mapred.JobClient: map 100% rece 0%
09/12/21 18:32:05 INFO mapred.JobClient: map 100% rece 100%
09/12/21 18:32:07 INFO mapred.JobClient: Job plete: job_200912211824_0002
09/12/21 18:32:07 INFO mapred.JobClient: Counters: 17
09/12/21 18:32:07 INFO mapred.JobClient: Job Counters
09/12/21 18:32:07 INFO mapred.JobClient: Launched rece tasks=1
檢視輸出結果檔案,這個檔案在hdfs上
[root@test11 hadoop]# hadoop fs -ls output1
Found 2 items
drwxr-xr-x - root supergroup 0 2009-09-30 16:01 /user/root/output1/_logs
-rw-r--r-- 3 root supergroup 1306 2009-09-30 16:01 /user/root/output1/part-r-00000
[root@test11 hadoop]# hadoop fs -cat output1/part-r-00000
(BIS), 1
(ECCN) 1
檢視hdfs執行狀態,可以通過web介面來訪問:192.168.13.100:50070/dfshealth.jsp;檢視map-rece資訊,
可以通過web介面來訪問:192.168.13.100:50030/jobtracker.jsp;下面是直接命令列看到的結果。
出現08/01/25 16:31:40 INFO ipc.Client: Retrying connect to server: foo.bar./1.1.1.1:53567. Already tried 1 time(s).
的原因是沒有格式化:hadoop namenode -format
如何在windows下安裝hadoop
建議你在windows上安裝linux的虛擬機器,然後在linux上安裝hadoop
1、安裝Cygwin
下載cygwin的setup.exe,雙擊執行:
選擇從Inter安裝:
設定安裝目錄:
設定安裝包目錄:
設定「Inter Connection」的方式,選擇「Direct Connection」:
選擇一個下載站點:
「下一步」之後,可能會彈出下圖的「Setup Alert」對話方塊,直接「確定」即可
在「Select Packages」對話方塊中,必須保證「Net Category」下的「OpenSSL」被安裝:
如果還打算在eclipse 上編譯Hadoop,則還必須安裝「Base Category」下的「sed」:
「Devel Category」下的subversion 建議安裝:
下載並安裝:
當下載完後,會自動進入到「setup」的對話方塊:
在上圖所示的對話方塊中,選中「Create icon on Desk」,以方便直接從桌面上啟動
Cygwin,然後點選「完成」按鈕。至此,Cgywin 已經安裝完成。
2、配置環境變數
需要配置的環境變數包括PATH 和JAVA_HOME:將JDK 的bin 目錄、Cygwin 的bin 目錄
以及Cygwin 的usrin( *** in)目錄都新增到PATH 環境變數中;JAVA_HOME 指向JRE 安裝目錄。
3、windows系統上執行hadoop叢集,偽分散式模式安裝步驟:
①啟動cygwin,解壓hadoop安裝包。通過cygdrive(位於Cygwin根目錄中)可以直接對映到windows下的各個邏輯磁碟分割槽。例如hadoop安裝包放在分割槽D:下,則解壓的命令為$ tar -zxvf /cygdrive/d/hadoop-0.20.2.tar.gz,解壓後可使用ls命令檢視,如下圖:
預設的解壓目錄為使用者根目錄,即D:cygwinhomelsq(使用者帳戶)。
②編輯conf/hadoop-env.sh檔案,將JAVA_HOME變數設定為java的安裝目錄。例如java安裝在目錄C:Program Filesjavajdk1.6.0_13,如果路徑沒空格,直接配置即可。存在空格,需將Program Files縮寫成Progra_1,如下圖:
③依次編輯conf目錄下的core-site.xml、mapred-site.xml和hdfs-site.xml檔案,如下圖:
④安裝配置SSH
點選桌面上的Cygwin圖示,啟動Cygwin,執行ssh-host-config命令,然後按下圖上的選擇輸入:
當提示Do you want to use a different name?輸入yes,這步是配置安裝的sshd服務,以哪個使用者登入,預設是cyg_server這個使用者,這里就不事先新建cyg_server這個使用者,用當前本機的超管本地使用者:chenx,後續根據提示,2次輸入這個賬戶的密碼
出現Host configuration finished. Have fun! 一般安裝順利完成。如下圖:
輸入命令$ start sshd,啟動SSH,如下圖:
註:sshd服務安裝完之後,不會預設啟動,如果啟動報登入失敗,不能啟動,可在服務屬性-Log On視窗手工修改,在前述的過程之中,cygwin不會校驗密碼是否正確,應該只是校驗了2次的輸入是否一致,然後再手工啟動。不知道為什麼,sshd服務如果選擇local system的登入方式,後續會有問題,所以sshd服務最好設定成當前的登入使用者。
⑤配置ssh登入
執行ssh-keygen命令生成金鑰檔案
輸入如下命令:
cd ~/.ssh
ls -l
cat id_rsa.pub >> authorized_keys
完成上述操作後,執行exit命令先退出Cygwin視窗,如果不執行這一步操作,下面的操作可能會遇到錯誤。接下來,重新執行Cygwin,執行ssh localhost命令,在第一次執行ssh localhost時,會有「are you sure you want to continue connection<yes/no>?」提示,輸入yes,然後回車即可。當出現下圖提示,即順利完成該步:
⑥hadoop執行
格式化namenode
開啟cygwin視窗,輸入如下命令:
cd hadoop-0.20.2
mkdir logs
bin/hadoop namenode –format
啟動Hadoop
在Cygwin 中,進入hadoop 的bin 目錄,
執行./start-all.sh 啟動hadoop;
可以執行./hadoop fs -ls /命令,檢視hadoop 的根目錄;
可以執行jps 檢視相關程序;
如下圖:(如果顯示和下圖類似,一般hadoop安裝/啟動成功)
如何在hadoop 環境下安裝hive
不行。 安裝 vm 下載:去官網下 VMware-player-5.0.1-894247.zip 安裝和配置ubanto 下載:去官網下 ubuntu-12.10-desk-i386.iso 開啟vm,載入ubanto iso檔案,進行安裝更新 進入ubanto,如果是第一個進入,則需要設定root的密碼
如何在ubantu環境下安裝hadoop
上apache的hadoop頁下編譯好的包,解壓,配一些檔案就行了 很容易 網上教程很多
如何在 Linux 下安裝 PyCharm
PyCharm 是由 Jetbrains 公司開發的一個跨平台編輯器。如果你之前是在 Windows 環境下進行開發,那麼你會立刻認出 Jetbrains 公司,它就是那個開發了 Resharper 的公司。 這篇文章將討論如何在 Linux 系統上獲取、安裝和執行 PyCharm 。
如何在linux下安裝opencv
新建一個perl,名為bar.pl
內容如下:
#!/usr/bin/perl
while (<>){
chomp;
s/([^-]+) - .*/1/g;
system "apt-get install ".$_;
}
然後apt-cache search opencv | perl bar.pl
D. 如何在Linux上安裝與配置Hadoop
在Linux上安裝Hadoop之前,需要先安裝兩個程序:
1. JDK 1.6或更高版本;
2. SSH(安全外殼協議),推薦安裝OpenSSH。
下面簡述一下安裝這兩個程序的原因:
1. Hadoop是用Java開發的,Hadoop的編譯及MapRece的運行都需要使用JDK。
2. Hadoop需要通過SSH來啟動salve列表中各台主機的守護進程,因此SSH也是必須安裝的,即使是安裝偽分布式版本(因為Hadoop並沒有區分集群式岩帶乎和偽分布式)。對於偽分布式,Hadoop會採用與集群相同的處理方式,即依次序啟動文件conf/slaves中記載的主機上的進程,只不過偽分布式中salve為localhost(即為自身),所以對於偽分布式Hadoop,SSH一樣是必須的。
一、安裝JDK 1.6
安裝JDK的過程很簡單,下面以Ubuntu為例。
(1)下載和安裝JDK
確保可以連接到互聯網,輸入命令:
sudo apt-get install sun-java6-jdk
輸入密碼,確認,然後就可以安裝JDK了。
這里先解釋一下sudo與apt這兩個命令,sudo這個命令允許普通用戶執行某些或全部需要root許可權命令,它提供了詳盡的日誌,可以記錄下每個用戶使用這個命令做了些什麼操作;同時sudo也提供了靈行喚活的管理方式,可以限制用戶使粗悉用命令。sudo的配置文件為/etc/sudoers。
apt的全稱為the Advanced Packaging Tool,是Debian計劃的一部分,是Ubuntu的軟體包管理軟體,通過apt安裝軟體無須考慮軟體的依賴關系,可以直接安裝所需要的軟體,apt會自動下載有依賴關系的包,並按順序安裝,在Ubuntu中安裝有apt的一個圖形化界面程序synaptic(中文譯名為「新立得」),大家如果有興趣也可以使用這個程序來安裝所需要的軟體。(如果大家想了解更多,可以查看一下關於Debian計劃的資料。)
(2)配置環境變數
輸入命令:
sudo gedit /etc/profile
輸入密碼,打開profile文件。
在文件的最下面輸入如下內容:
#set Java Environment
export JAVA_HOME= (你的JDK安裝位置,一般為/usr/lib/jvm/java-6-sun)
export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$JAVA_HOME/:$PATH"
這一步的意義是配置環境變數,使你的系統可以找到JDK。
(3)驗證JDK是否安裝成功
輸入命令:
java -version
查看信息:
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Server VM (build 14.0-b16, mixed mode)
E. 使用root用戶完成相關配置,安裝hadoop需要配置前置環境
可以使用 root 用戶來完成 Hadoop 的相關配置和安裝,但在此之前,需要確保系統安裝了一些必要的前置環境和軟體。以下是配置 Hadoop 環境的基本步驟:
安裝 Java 運行環境(JRE)或 Java 開發工具包(JDK)。Hadoop 是使用 Java 語言開發的,因此需要安裝 Java 運行環境才能運行。
配置 Java 環境變數。在 Linux 系統中,可以使用 export 命令設置 PATH 和或明戚 JAVA_HOME 環境變數,以便系統能夠識別 Java 運行環境。
下載 Hadoop 的最新版本,例如 Apache Hadoop 2.9.2。
解壓 Hadoop 壓縮包,並將其槐枯放置在某個有讀寫許可權的目錄下。
配置 Hadoop 的環境變數衫陵,以便系統可以找到 Hadoop 的二進制文件。在 Linux 系統中,可以在 .bashrc 文件中添加以下語句:
Copy code
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
配置 Hadoop 的相關文件,如 core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml,這些文件記錄了 Hadoop 的基本配置信息,例如 NameNode 的地址、DataNode 的地址等等。
格式化 Hadoop 的文件系統。在 Hadoop 安裝目錄中運行以下命令:
Copy code
$HADOOP_HOME/bin/hdfs namenode -format
完成以上步驟後,Hadoop 環境就可以正常運行了,您可以使用 Hadoop 開發應用程序或處理大數據了。需要注意的是,Hadoop 配置和部署比較復雜,需要一定的經驗和技能,建議在操作前先了解相關資料或請有經驗的人進行指導。
F. 怎麼在虛擬機中安裝hadoop要先安裝linux系統嗎
LINUX虛擬機就建好了。2.安裝操作系統A.3如果你認為從滲核光碟機中安裝比較費時間.選中LINUX虛擬機,彈出虛擬機創建菜單,啟動LINUX虛擬機B你好.在Hardware(硬體)選項中,選擇DVD/CD--ROM[IDE1:0]項,在左邊的選項中進行設置。C.在Connection(連接)選項選中UseISOimage(使用ISO鏡像包),(1)建立虛擬機A.用滑鼠左建雙擊桌面中的"昌蠢圖標,運行虛擬機B。D,又不方便,那你可以將光碟文件轉換成ISO文件拷貝在硬碟中,然後從硬碟安裝。A.點擊Settings(設置)--ConfigurationEditor進入設置界面對虛擬機進行配置.因為這里是用於安裝REDHAT,耐喊陪虛擬系統根據你選擇的安裝方式開始安裝。3.從硬碟安裝REDHAT7。因為會在虛擬機中安裝操作系統和應用軟體.建立一台虛擬機。點擊「FILE(文件)」-「NEW(新建)」--「NewVirtualMachine(新建虛擬機)」.3光碟.如果你的電腦連接在網路中,那麼選擇一個合適的網路環境。我這里選擇Usebridgednet-working(使用路由網路)H.點擊finish。C.然後插入REDHAT7,點擊VMWARE工具欄中的PowerON按鈕.根據向導一步一步地創建虛擬機,首先選擇安裝方式是「TYPICAL(典型)」還是「CUSTOM(自定義)」安裝。我這里選擇典型,返回VMWARE主界面,所以在Guestoperatingsystem(客戶操作系統)「中選擇」LINUX「,點擊下一步。E.在Virtualmachinename(虛擬機名字)中輸入你想建立的虛擬機的名字F.在Location(位置)中選擇虛擬機的安裝位置,所以建議將虛擬機安裝在一個有較大空間的磁碟分區中G;VMwareworkstation"。B,然後點擊Browse(預覽)按鈕,找到放置ISO文件的目錄
G. Linux中用idea如何安裝Hadoop jar包
(1)准備工作
1) 安裝JDK 6或者JDK 7
2) 安裝scala 2.10.x (注意版本)
2)下載Intellij IDEA最新版(本文以IntelliJ IDEA Community Edition 13.1.1為例說明,不同版本,界面布局可能不同):
3)將下載的Intellij IDEA解壓後,安裝scala插件,流程如下:
依次選擇「Configure」–> 「Plugins」–> 「Browse repositories」,輸入scala,然後安裝即可
(2)搭建Spark源碼閱讀環境(需要聯網)
一種方法是直接依次選擇「import project」–> 選擇spark所在目錄 –> 「SBT」,之後intellij會自動識別SBT文件,並下載依賴的外部jar包,整個流程用時非常長,取決於機器的網路環境(不建議在windows下操作,可能遇到各種問題),一般需花費幾十分鍾到幾個小時。注意,下載過程會用到git,因此應該事先安裝了git。
第二種方法是首先在linux操作系統上生成intellij項目文件,然後在intellij IDEA中直接通過「Open Project」打開項目即可。在linux上生成intellij項目文件的方法(需要安裝git,不需要安裝scala,sbt會自動下載)是:在spark源代碼根目錄下,輸入sbt/sbt gen-idea
註:如果你在windows下閱讀源代碼,建議先在linux下生成項目文件,然後導入到windows中的intellij IDEA中。
H. 怎樣在linux系統上搭建Hadoop集群
(1)下載jdk,在官網下載,下載rpm的包
(2)hadoop包的下載,官網上下載
download hadoop->release->mirror site(鏡像站)->隨便選擇離自己近的(HTTP下的第一個)->選擇2.7.2->下載.tar.gz
(3)將兩個包遠程傳輸到linux虛擬機中
(4)將主機名和ip地址進行適配,讓我們的ip地址和主機名(如bigdata)相匹配:寫到/etc/hosts裡面
vi /etc/hosts
按「i」進入插入狀態 將原有的地址注釋掉
在新的一行輸入:ip地址 主機名(如172.17.171.42 bigdata)(註:可以雙擊xshell的窗口再打開一個連接窗口,可以在新的窗口查詢ip地址並進行復制)
按「Esc」退出插入狀態
輸入:wq保存退出
修改完之後可以輸入hostname回車,查看是否成功
reboot:重啟,使得剛剛的修改生效
(5)將包放到opt下:cp hadoop-2.7.2.tar.gz /opt/
cp jdk-8u111-linux-x64.rpm /opt/
進入opt:cd /opt/
查看opt下的文件:ll
(6)安裝jdk,配置jdk的環境變數
安裝命令:rpm -ivh jdk-Bu101-linux-x64.rpm
配置環境變數:進入profile進行編輯:vi /etc/profile
並按照上面的方式在最後寫入並保存:JAVA_HOME=/usr/java/default/(/usr/java/default/是jdk的安裝目錄)
列印JAVA_HOME檢驗是否配置好:echo $JAVA_HOME結果發現列印出來的沒有內容因為我們對/etc/profile的修改需要通過以下命令對它生效source /etc/profile。再次輸入echo $JAVA_HOME,列印結果為/usr/java/default/
(7)驗證jdk安裝好:java -version
(8)配置SSH(免密碼登錄)
回到根目錄:cd 安裝SSH秘鑰:ssh-keygen -t rsa會自動在/root/.shh/目錄下生成
查看目錄:ll .ssh/有兩個新生成的文件id_rsa(私鑰),id_rsa.pub(公鑰)
進入.ssh/:cd .ssh/
將公鑰寫入authorized_key中:cat id_rsa.pub >> authorized_keys
修改authorized_keys文件的許可權:chmod 644 authorized_keys
修改完後退出.ssh的目錄cd進入初始目錄輸入:ssh bigdata(bigdata為你要遠程登錄的主機名或者ip地址)第一次登錄需要確認是否需要繼續登錄輸入yes繼續登錄
退出exit
(9)安裝及配置hadoop
解壓:tar zxf hadoop-2.7.2.tar.gz
查看/opt目錄下是否已經存在解壓的文件:ll(結果為出現hadoop-2.7.2)
繼續查看hadoop-2.7.2里的內容:cd hadoop-2.7.2
配置HADOOP_HOME:修改/etc/profile
進入hadoop的配置文件目錄cd /opt/hadoop-2.7.2/etc/hadoop/,會用的的配置文件如下:
core-site.xml
配置hadoop的文件系統即HDFS的埠是什麼。
配置項1為default.name,值為hdfs://bigdata:9000(主機名:bigdata也可也寫成ip地址,埠9000習慣用)
配置項2為hadoop臨時文件,其實就是配置一個目錄,配置完後要去創建這個目錄,否則會存在問題。
配置項3分布式文件系統的垃圾箱,值為4320表示3分鍾回去清理一次
<property>
<name>fs.default.name</name>
<value>hdfs://bigdata:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.2/current/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>4320</value>
</property>
hdfs-site.xml
配置項1,namenode的細節實際上就是一個目錄
配置項2,datanode的細節,真實環境中datanode的內容不需要再namenode的系統下配置,在此配置的原因是我們的系統是偽分布式系統,namenode和datanode在一台機器上
配置項3,副本的數量,在hdfs中每個塊有幾個副本
配置項4,HDFS是否啟用web
配置項5,HDFS的用戶組
配置項6,HDFS的許可權,現在配置為不開啟許可權
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-2.7.2/current/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-2.7.2/current/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>staff</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
創建配置文件中不存在的目錄:mkdir -p /opt/hadoop-2.7.2/current/data
mkdir -p /opt/hadoop-2.7.2/current/dfs/name
mkdir -p /opt/hadoop-2.7.2/current/tmp
yarn-site.xml
配置項1,resourcemanager的hostname,值為你運行的那台機器的主機名或IP地址
配置項2,nodemanager相關的東西
配置項3,nodemanager相關的東西
配置項4,resourcemanager的埠,主機名+埠號(IP+埠)
配置項5,resourcemanager調度器的埠
配置項6,resourcemanager.resource-tracker,埠
配置項7,埠
配置項8,埠
配置項9,日誌是否啟動
配置項10,日誌保留的時間長短(以秒為單位)
配置項11,日誌檢查的時間
配置項12,目錄
配置項13,目錄的前綴
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>maprece_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.maprece.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>bigdata:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheler.address</name>
<value>bigdata:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>bigdata:18025</value>
</property> <property>
<name>yarn.resourcemanager.admin.address</name>
<value>bigdata:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>bigdata:18088</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.log-aggregation.retain-check-interval-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
mapred-site.xml
沒有mapred-site.xml,輸入vi mapred-按「TAB」發現有mapred-site.xml.template,對該文件進行復制
cp mapred-site.xml.template mapred-site.xml 配置項1,maprece的框架
配置項2,maprece的通信埠
配置項3,maprece的作業歷史記錄埠
配置項4,maprece的作業歷史記錄埠
配置項5,maprece的作業歷史記錄已完成的日誌目錄,在hdfs上
配置項6,maprece中間完成情況日誌目錄
配置項7,maprece的ubertask是否開啟
<property>
<name>maprece.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>maprece.jobtracker.http.address</name>
<value>bigdata:50030</value>
</property>
<property>
<name>maprece.jobhisotry.address</name>
<value>bigdata:10020</value>
</property>
<property>
<name>maprece.jobhistory.webapp.address</name>
<value>bigdata:19888</value>
</property>
<property>
<name>maprece.jobhistory.done-dir</name>
<value>/jobhistory/done</value>
</property>
<property>
<name>maprece.intermediate-done-dir</name>
<value>/jobhisotry/done_intermediate</value>
</property>
<property>
<name>maprece.job.ubertask.enable</name>
<value>true</value>
</property>
slaves
bigdata
hadoop-env.sh
JAVA_HOME=/usr/java/default/
格式化分布式文件系統(hdfs):hdfs namenode -format
成功的標志: INFO common.Storage: Storage directory /opt/hadoop-2.7.2/current/dfs/namehas been successfully formatted.
啟動Hadoop集群:/opt/hadoop-2.7.2/sbin/start-all.sh
驗證Hadoop集群是否正常啟動:
jps,系統中運行的java進程;
通過埠查看(關閉防火牆或者service iptables stop在防火牆的規則中開放這些埠):
http://bigdata:50070(http://http://192.168.42.209/:50070),分布式文件系統hdfs的情況
yarn http://bigdata:18088(http://http://192.168.42.209/:50070)
I. hadoop分布式部署(轉載)--賊靠譜
原文地址:https://blog.csdn.net/sjmz30071360/article/details/79889055
1. 集群搭建形式
Hadoop環境搭建分為三種形式:單機模式、偽分布式模式、完全分布模式
單機模式—— 在一台單機上運行,沒有分布式文件系統,而是直接讀寫本地操作系統的文件系統。
偽分布式—— 也是在一台單機上運行,但不同的是Java進程模仿分布式運行中的各類節點。即一台機器上,既當NameNode,又當DataNode,或者說既是JobTracker又是TaskTracker。沒有所謂的在多台機器上進行真正的分布式計算,故稱為「偽分布式」。
完全分布式—— 真正的分布式,由3個及以上的實體機或者虛擬機組成的機群。一個Hadoop集群環境中,NameNode,SecondaryName和DataNode是需要分配在不同的節點上,也就需要三台伺服器。
前兩種模式一般用在開發或測試環境下,生產環境下都是搭建完全分布式模式。
從分布式存儲的角度來說,集群中的節點由一個NameNode和若干個DataNode組成,另有一個SecondaryNameNode作為NameNode的備份。
從分布式應用的角度來說,集群中的節點由一個JobTracker和若干個TaskTracker組成。JobTracker負責任務的調度,TaskTracker負責並行執行任務。TaskTracker必須運行在DataNode上,這樣便於數據的本地計算。JobTracker和NameNode則無須在同一台機器上。
2. 環境
操作系統:CentOS7(紅帽開源版)
機器:虛擬機3台,(master 192.168.0.104, slave1 192.168.0.102, slave2 192.168.0.101)
JDK:1.8(jdk-8u162-linux-x64.tar)
Hadoop:2.9.0(http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz)
3. 搭建步驟
3.1 每台機器安裝&配置JDK(1台做好後,克隆出其它機器)
1) 創建目錄 mkdir /usr/java
2) 上傳jdk安裝包到 /usr/java/
3) 解壓 tar -xvf jdk-8u162-linux-x64.tar
4) 追加環境變數 vi /etc/profile
5) 使環境變數生效 source /etc/profile
6) 檢測jdk正確安裝 java -version
3.2 修改每台機器主機名(hostname)
hostnamectl set-hostname master (立即生效)
hostnamectl set-hostname slave1 (立即生效)
hostnamectl set-hostname slave2 (立即生效)
確認修改
3.3 修改每台機器/etc/hosts文件
vi /etc/hosts
修改其中1台,然後scp到其它機器
scp 文件名 遠程主機用戶名@遠程主機名或ip:存放路徑
scp hosts [email protected]:/etc/
scp hosts [email protected]:/etc/
修改完之後,互ping其它機器,能互ping則說明修改OK
ping -c 3 slave1 (※ 3表示發送 3 個數據包)
3.4 配置ssh,實現無密碼登錄
無密碼登錄,效果也就是在master上,通過ssh slave1或者ssh slave2就可以登錄對方機器,而不用輸入密碼。
1) 每台機器執行ssh-keygen -t rsa,接下來一路回車即可
執行ssh-keygen -t rsa主要是生成 密鑰 和 密鑰的存放路徑
我們用的root用戶,公鑰私鑰都會保存在~/.ssh下
2) 在master上將公鑰放到authorized_keys里,命令:cat id_rsa.pub > authorized_keys
3) 將master上的authorized_keys放到其它機器上
scp authorized_keys root@slave1:~/.ssh/
scp authorized_keys root@slave2:~/.ssh/
4) 測試是否成功
3.5 上傳&配置hadoop(配置完master後,將/usr/hadoop/整個目錄內容到其它機器)
1) 創建目錄 mkdir /usr/hadoop
2) 上傳hadoop安裝包hadoop-2.9.0.tar.gz到 /usr/hadoop/
3) 解壓 tar -xvf hadoop-2.9.0.tar.gz
4) 追加環境變數 vi /etc/profile(其它機器也要相應配置一次hadoop環境變數)
5) 使環境變數生效 source /etc/profile
6) 確認環境變數配置OK
7) 創建HDFS存儲目錄
cd /usr/hadoop
mkdir hdfs
cd hdfs
mkdir name data tmp
/usr/hadoop/hdfs/name --存儲namenode文件
/usr/hadoop/hdfs/data --存儲數據
/usr/hadoop/hdfs/tmp --存儲臨時文件
8) 修改/usr/hadoop/hadoop-2.9.0/etc/hadoop/hadoop-env.sh文件,設置JAVA_HOME為實際路徑
否則啟動集群時,會提示路徑找不到
9) 修改/usr/hadoop/hadoop-2.9.0/etc/hadoop/yarn-env.sh文件,設置JAVA_HOME為實際路徑
10) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml
增加hadoop.tmp.dir 和 fs.default.name
11) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml
dfs.replication:默認值3
dfs.permissions:默認值為true,設置為true有時候會遇到數據因為許可權訪問不了;設置為false可以不要檢查許可權就生成dfs上的文件
12) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/mapred-site.xml
cd /usr/hadoop/hadoop-2.9.0/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
maprece.framework.name:指定maprece運行在yarn平台,默認為local
13) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/yarn-site.xml
yarn.resourcemanager.hostname:指定yarn的resourcemanager的地址
yarn.nodemanager.aux-services:recer獲取數據的方式
yarn.nodemanager.vmem-check-enabled:意思是忽略虛擬內存的檢查,如果安裝在虛擬機上,這個配置很有用,配上去之後後續操作不容易出問題。如果是在實體機上,並且內存夠多,可以將這個配置去掉
14) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/slaves文件,將裡面的localhost刪除,配置後內容如下:
15) 整個/usr/hadoop/目錄到其它機器
scp -r hadoop root@slave1:/usr/
scp -r hadoop root@slave2:/usr/
3.6 啟動Hadoop
1) 啟動之前需要格式化一下。因為master是namenode,slave1和slave2都是datanode,所以在master上運行
hadoop namenode -format
格式化成功後,可以看到在/usr/hadoop/hdfs/name目錄下多了一個current目錄,而且該目錄下有一系列文件,如下:
2) 執行啟動(namenode只能在master上啟動,因為配置在master上;datanode每個節點上都可以啟動)
執行 start-all.sh
master上執行jps,會看到NameNode, SecondaryNameNode, ResourceManager
其它節點上執行jps,會看到DataNode, NodeManager
3) 在wins上打開網頁,查看HDFS管理頁面 http://192.168.0.104:50070查看,提示無法訪問
在master上,執行以下命令關閉防火牆,即可訪問(為了能夠正常訪問node節點,最好把其它機器的防火牆也stop了)
systemctl stop firewalld.service
HDFS管理首頁
HDFS Datenodes頁
訪問Yarn管理頁: http://192.168.0.104:8088
4)通過主機名也可以訪問的設置
win7為例,需要將以下信息追加到C:\Windows\System32\drivers\etc\hosts文件中
192.168.0.104 master
192.168.0.102 slave1
192.168.0.101 slave2
Over!!!搭建成功!!!
4. 運行實例
cd /usr/hadoop/hadoop-2.9.0/share/hadoop/maprece
hadoop jar hadoop-maprece-examples-2.9.0.jar pi 5 10
。。。。。。
=====================================================
如果不關防火牆,子節點可能出現,輸入jps後只有jps一個進程,或者是缺進程的情況,關閉防火牆就好了。