Hadoop單機(jī)版和全分布式(集群)安裝
Hadoop,分布式的大數(shù)據(jù)存儲和計(jì)算, 免費(fèi)開源!有Linux基礎(chǔ)的同學(xué)安裝起來比較順風(fēng)順?biāo)瑢憥讉€(gè)配置文件就可以啟動(dòng)了,本人菜鳥,所以寫的比較詳細(xì)。為了方便,本人使用三臺的虛擬機(jī)系統(tǒng)是Ubuntu-12。設(shè)置虛擬機(jī)的網(wǎng)絡(luò)連接使用橋接方式,這樣在一個(gè)局域網(wǎng)方便調(diào)試。單機(jī)和集群安裝相差不多,先說單機(jī)然后補(bǔ)充集群的幾點(diǎn)配置。
第一步,先安裝工具軟件
編輯器:vim
sudo apt-get install vim
ssh服務(wù)器: openssh,先安裝ssh是為了使用遠(yuǎn)程終端工具(putty或xshell等),這樣管理虛擬機(jī)就方便多了。
sudo apt-get install openssh-server
第二步,一些基本設(shè)置
最好給虛擬機(jī)設(shè)置固定IP
sudo vim /etc/network/interfaces
加入以下內(nèi)容:
iface eth0 inet static
address 192.168.0.211
gateway 192.168.0.222
netmask 255.255.255.0
修改機(jī)器名,我這里指定的名字是:hadoopmaster ,以后用它做namenode
sudo vim /etc/hostname
修改hosts,方便應(yīng)對IP變更,也方便記憶和識別
sudo vim /etc/hosts
加入內(nèi)容:
192.168.0.211 hadoopmaster
第三步,添加一個(gè)專門為hadoop使用的用戶
sudo addgroup hadoop
sudo adduser -ingroup hadoop hadoop
設(shè)置hadoop用戶的sudo權(quán)限
sudo vim /etc/sudoers
在 root ALL=(ALL:ALL)
下面加一行 hadoop ALL=(ALL:ALL)
切換到hadoop用戶 su hadoop
第四步,解壓安裝JDK,HADOOP,PIG(順便把PIG也安裝了)
sudo tar zxvf ./jdk-7-linux-i586.tar.gz -C /usr/local/jvm/
sudo tar zxvf ./hadoop-1.0.4.tar.gz -C /usr/local/hadoop
sudo tar zxvf ./pig-0.11.1.tar.gz -C /usr/local/pig
修改解壓后的目錄名并且最終路徑為:
jvm: /usr/local/jvm/jdk7
hadoop: /usr/local/hadoop/hadoop (注意:hadoop所有節(jié)點(diǎn)的安裝路徑必須相同)
pig: /usr/local/pig
設(shè)置目錄所屬用戶
sudo chown -R hadoop:hadoop jdk7
sudo chown -R hadoop:hadoop hadoop
sudo chown -R hadoop:hadoop pig
設(shè)置環(huán)境變量, 編輯~/.bashrc 或 ~/.profile 文件加入
export JAVA_HOME=/usr/local/jvm/jdk7
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export HADOOP_INSTALL=/usr/local/hadoop/hadoop
export PATH=${HADOOP_INSTALL}/bin:$PATH
source ~/.profile 生效
第五步,.ssh無密碼登錄本機(jī),也就是說ssh到本機(jī)不需要密碼
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果不起作用請修改權(quán)限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
authorized_keys相當(dāng)于白名單,id_rsa.pub是公鑰,凡是在authorized_keys有請求者機(jī)器的公鑰時(shí)ssh服務(wù)器直接放行,無需密碼!
第六步,Hadoop必要設(shè)置
所有設(shè)置文件在hadoop/conf目錄下
1、hadoop-env.sh 找到 #export JAVA_HOME 去掉注釋#,并設(shè)置實(shí)際jdk路徑
2、core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://hadoopmaster:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
3、mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>hadoopmaster:9001</value>
</property>
4、hdfs-site.xml
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
5、文件masters 和 文件slaves, 單機(jī)寫 localhost 即可
第七步,啟動(dòng)Hadoop
格式化Hadoop的HDFS文件系統(tǒng)
hadoop namenode -format
執(zhí)行Hadoop啟動(dòng)腳本,如果是集群的話在master上執(zhí)行,其他slave節(jié)點(diǎn)Hadoop會(huì)通過ssh執(zhí)行:
start-all.sh
執(zhí)行命令 jps 如果顯示有: Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker等五個(gè)進(jìn)程表示啟動(dòng)成功了!
第八步,集群的配置
所有其他單機(jī)的安裝跟上面相同,下面只增加集群的額外配置!
最好先配置好一臺單機(jī),其他的可以通過scp直接復(fù)制,路徑也最好相同包括java!
本例的主機(jī)列表(設(shè)置hosts):
設(shè)置ssh,讓master能夠不要密碼登錄到其他slaves上,主要用來啟動(dòng)slaves
復(fù)制hadoopmaster下id_rsa.pub到子結(jié)點(diǎn):
scp ./ssh/id_rsa.pub hadoopnode1:/home/hadoop/.ssh/id_master
scp ./ssh/id_rsa.pub hadoopnode2:/home/hadoop/.ssh/id_master
分別在子結(jié)點(diǎn)~/.ssh/目錄下執(zhí)行:
cat ./id_master >> authorized_keys
masters文件,添加作為secondarynamenode或namenode的主機(jī)名,一行一個(gè)。
集群寫master名如:hadoopmaster
slaves文件,添加作為slave的主機(jī)名,一行一個(gè)。
集群寫子結(jié)點(diǎn)名:如 hadoopnode1、hadoopnode2
Hadoop管理
hadoop啟動(dòng)后會(huì)啟動(dòng)一個(gè)任務(wù)管理服務(wù)和一個(gè)文件系統(tǒng)管理服務(wù),是兩個(gè)基于JETTY的WEB服務(wù),所以可在線通過WEB的方式查看運(yùn)行情況。
任務(wù)管理服務(wù)運(yùn)行在50030端口,如 http://127.0.0.1:50030文件系統(tǒng)管理服務(wù)運(yùn)行在50070端口。
參數(shù)說明:
1、dfs.name.dir:是NameNode持久存儲名字空間及事務(wù)日志的本地文件系統(tǒng)路徑。 當(dāng)這個(gè)值是一個(gè)逗號分割的目錄列表時(shí),nametable數(shù)據(jù)將會(huì)被復(fù)制到所有目錄中做冗余備份。
2、dfs.data.dir:是DataNode存放塊數(shù)據(jù)的本地文件系統(tǒng)路徑,逗號分割的列表。 當(dāng)這個(gè)值是逗號分割的目錄列表時(shí),數(shù)據(jù)將被存儲在所有目錄下,通常分布在不同設(shè)備上。
3、dfs.replication:是數(shù)據(jù)需要備份的數(shù)量,默認(rèn)是3,如果此數(shù)大于集群的機(jī)器數(shù)會(huì)出錯(cuò)。
相關(guān)文章
Shell腳本自動(dòng)部署項(xiàng)目的方法步驟
本文主要介紹了Shell腳本自動(dòng)部署項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03shell腳本實(shí)現(xiàn)ftp上傳下載文件功能
這篇文章主要介紹了shell腳本實(shí)現(xiàn)ftp上傳下載文件功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08Shell腳本實(shí)現(xiàn)監(jiān)控iptables規(guī)則是否被修改
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)監(jiān)控iptables規(guī)則是否被修改,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-12-12