Hadoop簡單入門之偽分散式搭建
前面兩章主要講解了完全分散式的搭建,這章主要講解伺服器單機完成偽分佈的搭建,介紹Hadoop配置,啟動,以及簡單測試。我的機器:阿里雲伺服器,64位,Java64,Hadoop2.4.1(64)
所有軟體下載百度雲 密碼:uup8
講在開頭:對於筆者的完全分散式環境請見該文:Hadoop完全分散式安裝
寫文章不易,歡迎大家採我的文章,以及給出有用的評論,當然大家也可以關注一下我的github;多謝;
1,Hadoop簡單介紹:
Apache Hadoop是一款支援資料密集型分散式應用,並以Apache 2.0許可協議釋出的開源軟體框架。它支援在商品硬體構建的大型叢集上執行的應用程式。Hadoop是根據
Hadoop框架透明地為應用提供可靠性和資料移動。它實現了名為MapReduce的程式設計正規化:應用程式被分割槽成許多小部分,而每個部分都能在叢集中的任意節點上執行或重新執行。此外,Hadoop還提供了分散式檔案系統,用以儲存所有計算節點的資料,這為整個叢集帶來了非常高的頻寬。MapReduce和分散式檔案系統的設計,使得整個框架能夠自動處理節點故障。它使應用程式與成千上萬的獨立計算的電腦和PB級的資料。現在普遍認為整個Apache Hadoop“平臺”包括Hadoop核心、MapReduce、Hadoop分散式檔案系統(HDFS)以及一些相關專案,有Apache Hive和Apache HBase等等。
2.開發環境搭建
主要環境:java 和Hadoop
2.1Java開發環境搭建
- 下載jdk8的安裝包:jdk-8u60-linux-x64.tar.gz;這是linux系統的安裝包;
可以下載我分享的連結:百度雲連結; - 安裝jdk8步驟:萬試萬靈的步驟:
1.複製檔案到雲伺服器
sudo scp -r /home/peace/jdk-8u60-linux-x64.tar.gz root@192.168.1.127:/root/
2登陸雲伺服器:
##建立資料夾,和解壓檔案
$ mkdir /usr/lib/jvm
$ mv jdk-8u60-linux-x64.tar.gz /usr/lib/jvm/
$ cd /usr/lib/jvm/
$ tar -zxvf jdk-8u60-linux-x64.tar.gz
$ rm ./jdk-8u60-linux-x64.tar.gz
$mvjdk-8u60 jdk8
##配置環境變數:
$vi /etc/environment
在environment中修改PATH,追加JDK路徑,新增CLASSPATH與JAVA_HOME後如下:
export JAVA_HOME=/usr/lib/jvm/jdk8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
PATH="/usr/lib/jvm/jdk8/bin:/usr/local/sbin:/usr/local/bin: /usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
##告訴系統,我們使用的sun的JDK,而非OpenJDK了:
$update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk8/bin/java 300
$update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk8/bin/javac 300
$update-alternatives --config java
##測試一下執行 java -version
可以看到版本號 :
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
2.2網路環境搭建
1.1修改主機名
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=itcast ###
1.2修改IP
兩種方式:
第一種:通過Linux圖形介面進行修改(強烈推薦)
進入Linux圖形介面 -> 右鍵點選右上方的兩個小電腦 -> 點選Edit connections -> 選中當前網路System eth0 -> 點選edit按鈕 -> 選擇IPv4 -> method選擇為manual -> 點選add按鈕 -> 新增IP:192.168.1.101 子網掩碼:255.255.255.0 閘道器:192.168.1.1 -> apply
第二種:修改配置檔案方式(屌絲程式猿專用)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static" ###
HWADDR="00:0C:29:3C:BF:E7"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
IPADDR="192.168.1.101" ###
NETMASK="255.255.255.0" ###
GATEWAY="192.168.1.1" ###
1.3修改主機名和IP的對映關係
vim /etc/hosts
192.168.1.101 itcast
1.4關閉防火牆
#檢視防火牆狀態
service iptables status
#關閉防火牆
service iptables stop
#檢視防火牆開機啟動狀態
chkconfig iptables --list
#關閉防火牆開機啟動
chkconfig iptables off
1.5重啟Linux
reboot
2.3Hadoop開發環境搭建(安裝hadoop2.4.1)
先上傳hadoop的安裝包到伺服器上去/home/hadoop/ 然後解壓到該目錄下;
注意:hadoop2.x的配置檔案$HADOOP_HOME/etc/hadoop
偽分散式需要修改5個配置檔案
第一個:hadoop-env.sh
vim hadoop-env.sh
#第27行
export JAVA_HOME=/usr/java/jdk1.7.0_65
第二個:core-site.xml
<!-- 指定HADOOP所使用的檔案系統schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://weekend-1206-01:9000</value>
</property>
<!-- 指定hadoop執行時產生檔案的儲存目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<!--你自己定義的目錄-->
<value>/home/hadoop/hadoop-2.4.1/tmp</value>
</property>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.127:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/peace/app/hadoop-2.4.1/tmp</value>
</property>
</configuration>
第三個:hdfs-site.xml hdfs-default.xml (3)
<!-- 指定HDFS副本的數量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
第四個:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定mr執行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
第五個:yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.1.127</value>
</property>
<!-- reducer獲取資料的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
2.4將hadoop新增到環境變數
vim /etc/proflie
export HADOOP_HOME=/itcast/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
3.測試
1.格式化namenode(是對namenode進行初始化)
hdfs namenode -format (hadoop namenode -format)
2.啟動hadoop
start-all.sh
3.驗證是否啟動成功
使用jps命令驗證
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode
儲存檔案:
hadoop fs -put hadoop-2.4.1.tar.gz hdfs://115.29.52.140:9000/
檢視檔案:
hadoop fs -ls hdfs://115.29.52.140:9000/
顯示如下:
-rw-r--r-- 1 root supergroup 138656756 2016-04-11 15:46 hdfs://115.29.52.140:9000/hadoop-2.4.1.tar.gz
get檔案:
hadoop fs -get hdfs://115.29.52.140:9000/hadoop-2.4.1.tar.gz
本章介紹到這裡
來自伊豚(wpeace.cn)