天天看點

hadoop、zookeeper、hbase在Linux中的安裝

1.準備Linux環境

1.0點選VMware快捷方式,右鍵打開檔案所在位置 -> 輕按兩下vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 設定網段:192.168.8.0 子網路遮罩:255.255.255.0 -> apply -> ok

回到windows --> 打開網絡和共享中心 -> 更改擴充卡設定 -> 右鍵VMnet1 -> 屬性 -> 輕按兩下IPv4 -> 設定windows的IP:192.168.8.0 子網路遮罩:255.255.255.1 -> 點選确定

在虛拟軟體上 --My Computer -> 選中虛拟機 -> 右鍵 -> settings -> network adapter -> host only -> ok

1.1修改主機名

vim /etc/sysconfig/network

NETWORKING=yes 

HOSTNAME=Linux    ###

1.2修改IP

兩種方式:

第一種:通過Linux圖形界面進行修改(強烈推薦)

進入Linux圖形界面 -> 右鍵點選右上方的兩個小電腦 -> 點選Edit connections -> 選中目前網絡System eth0 -> 點選edit按鈕 -> 選擇IPv4 -> method選擇為manual -> 點選add按鈕 -> 添加IP:192.168.8.88子網路遮罩:255.255.255.0 網關:192.168.8.0 -> 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.8.88"       ###

NETMASK="255.255.255.0"      ###

GATEWAY="192.168.8.1"        ###

1.3修改主機名和IP的映射關系

vim /etc/hosts

192.168.8.88 Linux

1.4關閉防火牆

#檢視防火牆狀态

service iptables status

#關閉防火牆

service iptables stop

#檢視防火牆開機啟動狀态

chkconfig iptables --list

#關閉防火牆開機啟動

chkconfig iptables off

1.5重新開機Linux

reboot

2.安裝JDK

2.1上傳

2.2解壓jdk

#建立檔案夾

mkdir /usr/java

#解壓

tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/java/

2.3将java添加到環境變量中

vim /etc/profile

#在檔案最後添加

export JAVA_HOME=/usr/java/jdk1.7.0_55

export PATH=$PATH:$JAVA_HOME/bin          //之後的安裝過程中也可以将HBase、hadoop、zookeeper的path加入,中間用冒号(:)隔開

#重新整理配置

source /etc/profile

Hadoop zookeeper hbase 搭建說明(按順序搭建)

所用到的tar包如下:

hbase-0.94.11.tar.gz

hadoop-1.0.4.tar.gz

zookeeper-3.4.6.tar.gz

1.安裝JDK(確定為1.6或以上)

2.安裝HADOOP

2.1. 建立hadoop檔案夾,上傳hadoop-1.0.4.tar.gz到該目錄,并解壓。

2.2. 在$HADOOP_HOME/conf中進行相關配置文檔修改。

core-site.xml ,其中Linux為hostname

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://Linux:9000</value>

</property>

</configuration>

-----------------------------------------------------------------

hdfs-site.xml,指定name node和data node的資料存儲位置

<configuration>

<property>

         <name>dfs.replication</name>

         <value>1</value>

    </property>

<property>

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

<value>/home/hadoop/hadoop-1.0.4/tmp/name</value>

</property>

<property>

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

<value>/home/hadoop/hadoop-1.0.4/tmp/data</value>

</property>

</configuration>

mapred-site.xml

<property>

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

<value>Linux:9001</value>

</property>

-------------------------------------------------------------------

2.3 啟動/關閉hadoop

第一次啟動要格式化名位元組點  hadoop namenode -format

在bin目錄下start-all.sh     stop-all.sh

2.4 狀态檢視

jps 檢視java 程序,正常啟動包含以下程序:

NameNode  SecondaryNameNode  DataNode  JobTracker  TaskTracker

如果有未正常啟動的程序,需檢視日志進行相應定位。

一般每個程序都會在logs中生成 .log  .out兩種日志。

出錯的程序還會在$HADOOP_HOME下産生格式如hs_err_pid17157.log的日志。

2.5驗證是否啟動成功

使用jps指令驗證

27408 NameNode

28218 Jps

27643 SecondaryNameNode

28066 NodeManager

27803 ResourceManager

27512 DataNode

http://192.168.8.88:50070  (HDFS管理界面)

在這個檔案中添加linux主機名和IP的映射關系

C:\Windows\System32\drivers\etc\hosts

192.168.1.119 itcast

http://192.168.8.88:8088 (MR管理界面)

2.6測試hdfs:

1.線上傳檔案到hdfs

hadoop fs -put software/jdk-7u79-linux-i586.tar.gz hdfs://192.168.8.88:9000

2.從hdfs檔案系統中下載下傳檔案到本地

hadoop fs -get hdfs://Linux:9000/jdk /root/software/jdk

4.配置ssh免登陸

生成ssh免登陸密鑰

cd ~,進入到我的home目錄

cd .ssh/

ssh-keygen -t rsa (四個回車)

執行完這個指令後,會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)

将公鑰拷貝到要免登陸的機器上

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh-copy-id -i localhost 

3.安裝ZOOKEEPER

3.1 建立zookeeper檔案夾,上傳對應tar包并解壓。

3.2 将conf下的zoo_sample.cfg 複制一份重命名為 zoo.cfg。據實際情況修改資料檔案存儲位址和用戶端端口号,如下

dataDir =/home/zookeeper/zookeeper-3.4.6/tmp/zookeeper

clientPort=12306

3.3 管理zookeeper

bin目錄下執行

./zkServer.sh start    啟動

./zkServer.sh stop     關閉

./zkServer.sh status   狀态檢視

4.安裝HBASE

在conf下修改 hbase-site.xml。Linux為主機名,12306為zookeeper端口号。

<property>

        <name>hbase.cluster.distributed</name>

         <value>true</value>

     </property>

    <property>

        <name>hbase.rootdir</name>

        <value>hdfs://Linux:9000/hbase</value>

    </property>

        <property>

        <name>hbase.zookeeper.quorum</name>

        <value>Linux</value>

     </property>

     <property>

        <name>hbase.zookeeper.property.clientPort</name>

        <value>12306</value>

     </property>

     <property>

        <name>hbase.tmp.dir</name>

        <value>/home/hadoop/hbase/hbase-0.94.11/tmp</value>

     </property>

修改 hbase-env.sh。最後一行修改如下語句,不使用hbase自帶的zookeeper。

export HBASE_MANAGES_ZK=false

配置JAVA_HOME(jdk安裝路徑)和HBASE_CLASSPATH(HBase安裝路徑)兩個配置項

錯誤: 找不到或無法加載主類 org.apache.hadoop.hbase.util.HBaseConfTool

原因:hbase中的配置檔案(hbase-env.xml)中的HBASE_CLASSPATH為配置或配置錯誤。

錯誤:ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.

java.io.IOException: NameNode is not formatted.

原因:hadoop第一次啟動時沒有進行format,需要删除tmp目錄中的兩個檔案,進行一次format。指令:hadoop namenode -format

錯誤:

找不到jdk之類的。在(hbase-env.xml)中需配置HBASE_MANAGES_ZK=false

繼續閱讀