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>http://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 |