標籤:

Hadoop集群安裝&測試

之前看過不少hadoop理倫的文章和書籍,一直想搭建一個集群玩玩,筆記本電腦不給力,給它加了一個4G內存後,在周末的時候,花了差不多一天的時間才把集群搭建好,中間也遇到了一些問題,還好最終搭建成功了,開始大數據之旅吧。

1. 安裝JDK

1)首先要卸載掉默認安裝的JDK

### 查看安裝所有的JDK信息

rpm -qa | grep jdk

### 卸載掉JDK,xxx代表的是上個命令輸出的結果

yum -y remove java xxx

2) 安裝rz工具 在root許可權下上傳,不要勾選以ASCII碼上傳!!!

yum install lrzsz

3) 上傳JDK之後進行安裝JDK

tar -zxvf jdk-7u79-linux-x64.tar.gz

vi /etc/profile

#set java environment

JAVA_HOME=/usr/java/jdk1.7.0_79

JRE_HOME=/usr/java/jdk1.7.0_79/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

4)測試JDK

java -version

2. 節點配置,準備四個節點

vm01 192.168.141.128 master節點

vm02 192.168.141.129

vm03 192.168.141.130

vm04 192.168.141.131

1)在/etc/hostname下修改名字

2)在/etc/hosts下增加各個節點的名字

192.168.141.128 vm01

192.168.141.129 vm02

192.168.141.130 vm03

192.168.141.131 vm04

3)增加ssh 無密碼登錄

在master節點上執行 ssh-keygen -t rsa 一路回車鍵

cp id_rsa.pub authorized_keys

然後scp /root/.ssh/ vm02:/root/.ssh

scp /root/.ssh/ vm03:/root/.ssh

scp /root/.ssh/ vm04:/root/.ssh

此時再ssh登錄任何一台機器都是ok的

3. master節點上安裝hadoop

1)下載好hadoop,我使用的是2.7.1版本,通過rz命令上傳後,解壓

2)在master節點上進行配置

在hadoop-env.sh 文件中修改JDK路徑和設置HADOOP_HEAPSIZE=128

core-site.xml 文件配置如下:

<property>

<name>fs.defaultFS</name>

<value>hdfs://vm01:9000</value>

<!--hadoop namenode 伺服器地址和埠,以域名形式-->

</property>

<property>

<name>dfs.namenode.checkpoint.period</name>

<value>1800</value>

<!-- editlog每隔30分鐘觸發一次合併,默認為60分鐘 -->

</property>

<property>

<name>fs.checkpoint.size</name>

<value>67108864</value>

</property>

<property>

<name>fs.trash.interval</name>

<value>1440</value>

<!-- Hadoop文件回收站,自動回收時間,單位分鐘,這裡設置是1天,默認為0。-->

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/data/hadoop/tmp</value>

<!-- Hadoop的默認臨時路徑,這個最好配置,如果在新增節點或者其他情況下莫名其妙的DataNode啟動不了,就刪除此文件中的tmp目錄即可。不過如果刪除了NameNode機器的此目錄,那麼就需要重新執行NameNode格式化的命令。/data/hadoop/tmp這裡給的路徑不需要創建會自動生成.-->

</property>

<property>

<name>io.file.buffer.size</name>

<value>131702</value>

<!-- 流文件的緩衝區-->

</property>

hdfs-site.xml 文件配置如下:

<property>

<name>dfs.namenode.name.dir</name>

<value>/data/hadoop/hdfs/name</value>

<!--HDFS namenode數據鏡象目錄-->

<description>HDFS namenode數據鏡象目錄</description>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>/data/hadoop/hdfs/data</value>

<!-- HDFS datanode數據鏡象存儲路徑,可以配置多個不同的分區和磁碟中,使用,號分隔 -->

<description>HDFS datanode數據鏡象存儲路徑</description>

</property>

<property>

<name>dfs.namenode.http-address</name>

<value>vm01:50070</value>

<!---HDFS Web查看主機和埠-->

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>vm02:50090</value>

<!--輔控HDFS web查看主機和埠-->

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

<!--HDFS數據保存份數,通常是3-->

</property>

<property>

<name>dfs.datanode.du.reserved</name>

<value>1073741824</value>

<!-- datanode 寫磁碟會預留 1G空間 給其他程序使用,而非寫滿,單位 bytes-->

</property>

<property>

<name>dfs.block.size</name>

<value>134217728</value>

<!--HDFS數據塊大小,當前設置為128M/Blocka-->

</property>

<property>

<name>dfs.permissions.enabled</name>

<value>false</value>

<!-- HDFS 關閉文件許可權 -->

</property>

mapred-site.xml 文件配置如下:

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobtracker.http.address</name>

<value>vm01:50030</value>

</property>

<property>

<name>mapred.job.tracker</name>

<value>vm01:9001</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>vm01:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>vm01:19888</value>

</property>

yarn-site.xml配置如下:

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>vm01:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>vm01:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>vm01:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>vm01:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>vm01:8088</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

安裝完成後,可以進行測試:

hadoop-daemon.sh start namenode

hadoop-daemon.sh start datanode

yarn-daemon.sh start resourcemanager

yarn-daemon.sh start nodemanager

通過jps可以查看是否已啟動了,如果沒有啟動成功,到對應的日誌目錄下查看,一般通過日誌的輸出可以知道什麼原因,然後到網上進行搜索解決

4 集群安裝

通過scp命令,將hadoop安裝目錄複製到vm02,vm03,vm04下

在master節點上執行

vi etc/hadoop/slaves 刪除localhost,增加vm02,vm03,vm04

vi etc/hadoop/masters 增加vm02 vm02 是secondnamenode

bin/hdfs namenode -format 格式化,注意不要隨意格式化,很容易導致版本不一致!!!

執行./start-all.sh 啟動集群

此至集群安裝成功了

5. 文件命令&mapreducer測試

bin/hdfs dfs -mkdir /test

bin/hdfs dfs -ls /

bin/hdfs dfs -put /home/gaofla/wc.txt /test/

bin/hdfs dfs -cat /test/wc.txt

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /test/wc.txt /test/out

bin/hdfs dfs -ls /test/out

bin/hdfs dfs -cat /test/out/part-r-00000


推薦閱讀:

從頭學習大數據培訓課程 Hadoop 系列教程(二)批量操作多台伺服器
《MapReduce and YARN》課程第一周之Introduction MR問題集
Hadoop可視化分析利器之Hue
怎麼看待Hadoop Summit 2016 和 Spark summit 2016?
數據之路(Hadoop)我該如何打好基礎?

TAG:Hadoop |