Hadoop安裝部署基本步驟:
1、安裝jdk,配置環境變量。
jdk可以去網上自行下載,環境變量如下:
編輯 vim /etc/profile 文件,添加如下內容:
export JAVA_HOME=/opt/java_environment/jdk1.7.0_80(填寫自己的jdk安裝路徑)
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
輸入命令,source /etc/profile 使配置生效
分別輸入命令,java 、 javac 、 java -version,查看jdk環境變量是否配置成功
2、linux環境下,至少需要3台機子,一台作為master,2台(以上)作為slave。
這里我以3台機器為例,linux用的是CentOS 6.5 x64為機器。
master 192.168.172.71
slave1 192.168.172.72
slave2 192.168.172.73
3、配置所有機器的hostname和hosts。
(1)更改hostname,可以編輯 vim /etc/sysconfig/network
更改master的HOSTNAME,這里改為HOSTNAME=master
其它slave為HOSTNAME=slave1、HOSTNAME=slave2 ,重啟后生效。
或者直接輸: hostname 名字,更改成功,這種方式無需重啟即可生效,
但是重啟系統后更改的名字會失效,仍是原來的名字
(2)更改host,可以編輯 vim /etc/hosts,增加如下內容:
192.168.172.71 master
192.168.172.72 slave1
192.168.172.73 slave2
hosts可以和hostname不一致 ,這里為了好記就寫一致了。
4、配置SSH所有機器之間免密碼登錄
(1)CentOS默認沒有啟動ssh無密登錄,編輯 vim /etc/ssh/sshd_config,
去掉以下兩行注釋,開啟Authentication免登陸。
#RSAAuthentication yes
#PubkeyAuthentication yes
如果是root用戶下進行操作,還要去掉 #PermitRootLogin yes注釋,允許root用戶登錄。
(2)輸入命令,ssh-keygen -t rsa,生成key,一直按回車,
就會在/root/.ssh生成:authorized_keys id_rsa.pub id_rsa 三個文件,
這里要說的是,為了各個機器之間的免登陸,在每一台機器上都要進行此操作。
(3) 接下來,在master服務器,合並公鑰到authorized_keys文件,
進入/root/.ssh目錄,輸入以下命令
cat id_rsa.pub>> authorized_keys 把master公鑰合並到authorized_keys 中
ssh root@192.168.172.72 cat ~/.ssh/id_rsa.pub>> authorized_keys
ssh root@192.168.172.73 cat ~/.ssh/id_rsa.pub>> authorized_keys
把slave1、slave2公鑰合並到authorized_keys 中
完成之后輸入命令,把authorized_keys遠程copy到slave1和slave2之中
scp authorized_keys 192.168.172.72:/root/.ssh/
scp authorized_keys 192.168.172.73:/root/.ssh/
最好在每台機器上進行chmod 600 authorized_keys操作,
使當前用戶具有 authorized_keys的讀寫權限。
拷貝完成后,在每台機器上進行 service sshd restart 操作, 重新啟動ssh服務。
之后在每台機器輸入 ssh 192.168.172.xx,測試能否無需輸入密碼連接另外兩台機器。
5、配置Hadoop環境變量,HADOOP_HOME、hadoop-env.sh、yarn-env.sh。
(1)配置HADOOP_HOME,編輯 vim /etc/profile 文件,添加如下內容:
export HADOOP_HOME=/opt/hbase/hadoop-2.7.3 (Hadoop的安裝路徑)
export PATH=$PATH:$HADOOP_HOME/sbin
export PATH=$PATH:$HADOOP_HOME/bin
(以下兩行最好加上,若沒有啟動Hadoop、hbase時都會有沒加載lib成功的警告)
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
(2)配置hadoop-env.sh、yarn-env.sh,在Hadoop安裝目錄下
編輯 vim etc/hadoop/hadoop-env.sh
加入export JAVA_HOME=/opt/java_environment/jdk1.7.0_80(jdk安裝路徑)
編輯 vim etc/hadoop/yarn-env.sh
加入export JAVA_HOME=/opt/java_environment/jdk1.7.0_80(jdk安裝路徑)
保存退出
6、配置基本相關xml,core-site.xml、hdfs-site.xml、mapred-site.xml、mapred-site.xml
(1)配置core-site.xml,在Hadoop安裝目錄下 編輯 vim etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name> <!--NameNode 的URI-->
<value>hdfs://mater:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name> <!--hadoop臨時文件的存放目錄-->
<value>/opt/hbase/hadoop-2.7.3/temp</value>
</property>
</configuration>
(2)配置hdfs-site.xml,在Hadoop安裝目錄下 編輯 vim etc/hadoop/hdfs-site.xml
<configuration>
<property> <!--namenode持久存儲名字空間及事務日志的本地文件系統路徑-->
<name>dfs.namenode.name.dir</name>
<value>/opt/hbase/hadoop-2.7.3/dfs/name</value>
<!--目錄無需預先創建,會自動創建-->
</property>
<property> <!--DataNode存放塊數據的本地文件系統路徑-->
<name>dfs.datanode.data.dir</name>
<value>/opt/hbase/hadoop-2.7.3/dfs/data</value>
</property>
<property> <!--數據需要備份的數量,不能大於集群的機器數量,默認為3-->
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property> <!--設置為true,可以在瀏覽器中IP+port查看-->
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
(3)配置mapred-site.xml,在Hadoop安裝目錄下 編輯 vim etc/hadoop/mapred-site.xml
<configuration>
<property> <!--mapreduce運用了yarn框架,設置name為yarn-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property> <!--歷史服務器,查看Mapreduce作業記錄-->
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
(4)配置yarn-site.xml,在Hadoop安裝目錄下 編輯 vim etc/hadoop/yarn-site.xml
<configuration>
<property> <!--NodeManager上運行的附屬服務,用於運行mapreduce-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property> <!--ResourceManager 對客戶端暴露的地址-->
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property> <!--ResourceManager 對ApplicationMaster暴露的地址-->
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property> <!--ResourceManager 對NodeManager暴露的地址-->
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property> <!--ResourceManager 對管理員暴露的地址-->
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property> <!--ResourceManager 對外web暴露的地址,可在瀏覽器查看-->
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
7、配置slaves文件
在Hadoop安裝目錄下,編輯vim etc/hadoop/slaves,
去除默認的localhost,加入slave1、slave2,保存退出。
8、通過遠程復制命令scp,將配置好的Hadoop復制到各個節點對應位置
scp -r /opt/hadoop-2.7.3 192.168.172.72:/opt/hadoop-2.7.3
scp -r /opt/hadoop-2.7.3 192.168.172.73:/opt/hadoop-2.7.3
9、Hadoop的啟動與停止
(1)在Master服務器啟動hadoop,從節點會自動啟動,進入Hadoop目錄下,
輸入命令,bin/hdfs namenode -format進行hdfs格式化
輸入命令,sbin/start-all.sh,進行啟動
也可以分開啟動,sbin/start-dfs.sh、sbin/start-yarn.sh
在master 上輸入命令:jps, 看到ResourceManager、
NameNode、SecondaryNameNode進程
在slave 上輸入命令:jps, 看到DataNode、NodeManager進程
出現這5個進程就表示Hadoop啟動成功。
(2)接下來配置本地hosts,編輯 C:\Windows\System32\drivers\etc的hosts文件,加入
192.168.172.71 master
192.168.172.72 slave1
192.168.172.73 slave2
在瀏覽器中輸入http://master:50070查看master狀態,
輸入http://192.168.172.72:8088查看集群狀態
(3)停止hadoop,進入Hadoop目錄下,輸入命令:sbin/stop-all.sh,
即可停止master和slave的Hadoop進程
Hbase安裝部署基本步驟:
1、在Hadoop配置的基礎上,配置環境變量HBASE_HOME、hbase-env.sh
編輯 vim /etc/profile 加入
export HBASE_HOME=/opt/hbase-1.2.6
export PATH=$HBASE_HOME/bin:$PATH
編輯vim /opt/hbase-1.2.6/conf/hbase-env.sh 加入
export JAVA_HOME=/opt/java_environment/jdk1.7.0_80(jdk安裝路徑)
去掉注釋 # export HBASE_MANAGES_ZK=true,使用hbase自帶zookeeper。
2、配置hbase-site.xml文件
<configuration>
<property>
<name>hbase.rootdir</name> <!-- hbase存放數據目錄 -->
<value>hdfs://master:9000/opt/hbase/hbase_db</value>
<!-- 端口要和Hadoop的fs.defaultFS端口一致-->
</property>
<property>
<name>hbase.cluster.distributed</name> <!-- 是否分布式部署 -->
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name> <!-- list of zookooper -->
<value>master,slave1,slave2</value>
</property>
<property><!--zookooper配置、日志等的存儲位置 -->
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/hbase/zookeeper</value>
</property>
</configuration>
3、配置regionservers
編輯 vim /opt/hbase-1.2.6/conf/regionservers 去掉默認的localhost,
加入slave1、slave2,保存退出
然后把在master上配置好的hbase,通過遠程復制命令
scp -r /opt/hbase-1.2.6 192.168.172.72/73:/opt/hbase-1.2.6
復制到slave1、slave2對應的位置
4、啟動與停止Hbase
(1)在Hadoop已經啟動成功的基礎上,輸入start-hbase.sh,過幾秒鍾便啟動完成,
輸入jps命令查看進程是否啟動成功,若 master上出現HMaster、HQuormPeer,
slave上出現HRegionServer、HQuorumPeer,就是啟動成功了。
(2)輸入hbase shell 命令 進入hbase命令模式
輸入status命令可以看到如下內容,1個master,2 servers,3機器全部成功啟動。
1 active master, 0 backup masters, 2 servers, 0 dead, 2.0000 average load
(3)接下來配置本地hosts,(前邊配置過的無需再配置了)
編輯 C:\Windows\System32\drivers\etc的hosts文件,加入
192.168.172.71 master
192.168.172.72 slave1
192.168.172.73 slave2
在瀏覽器中輸入http://master:16010就可以在界面上看到hbase的配置了
(4)當要停止hbase時輸入stop-hbase.sh,過幾秒后hbase就會被停止了。