HADOOP+ZOOKEEPER+HBASE+HIVE
1.配置yum源
Xftp 10.72.39.160 /etc/yum.repo.d/RHEL.repo
目的機器上:
cd /etc/yum.repos.d/
mkdir bak
mv CentOS-*.repo bak
yum clean all
yum makecache
yum list
2.編譯64位庫
yum install gcc-c++-y
yum installncurses-devel -y
yum install cmake -y
yum installzlib-devel -y
解壓tar-zvxf hadoop-2.7.2.tar.gz
4.安裝hadoop準備
在安裝Hadoop之前,所有叢集節點均需對作業系統進行以下配置:
4.1)去掉作業系統ulimit -n 限制
(1)修改/etc/security/limits.conf ,在最後增加如下內容:
* soft nofile 102400
* hard nofile 409600
(2)修改/etc/pam.d/login,在最後新增如下內容:
session required/lib/security/pam_limits.so
(3)重啟系統使得配置生效
4.2)關閉防火牆
(1)重啟後生效
關閉:chkconfig iptables off
(2)即時生效,重啟後失效
關閉:serviceiptables stop
4.3)配置hostname,設定主機名
vi/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
4.4).配置host, 設定ip和主機名的對映
vi /etc/hosts
10.72.39.55 master
10.72.39.58 slave01
10.72.39.62 slave02
10.72.39.67 slave03
4.5)檢視系統的JDK版本
rpm –qa | grepjdk 若是1.8則不用管,若不是1.8則解除安裝系統jdk
yum –y remove 系統JDK版本
安裝jdk-8u66-linux-x64.rpm
cd/usr/local
chmod+x jdk-8u66-linux-x64.rpm
rpm–ivh jdk-8u66-linux-x64.rpm
修改vim~/.bash_profile 環境變數
將JAVA_HOME新增到PATH目錄中,如下:
JAVA_HOME=/usr/java/jdk1.8.0_66
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export PATH
4.6) 配置ssh無密碼連線
SSH無密碼登入節點
這個操作是要讓 Master 節點可以無密碼 SSH 登陸到各個 Slave 節點上。
首先生成 Master 節點的公匙,在 Master 節點的終端中執行:
cd~/.ssh
rm./id_rsa*
ssh-keygen–t rsa
(2) 讓 Master 節點需能無密碼 SSH 本機,在 Master 節點上執行:
cat ./id_rsa.pub>> ./authorized_keys
完成後可執行 ssh Master 驗證一下(可能需要輸入 yes,成功後執行 exit 返回原來的終端)。接著在 Master 節點將上公匙傳輸到 Slave 節點:
scp~/.ssh/id_rsa.pub [email protected]:/root/
接著在 Slave節點上,將ssh 公匙加入授權:
cat ~/id_rsa.pub >>~/.ssh/authorized_keys
rm~/id_rsa.pub
如果有其他 Slave 節點,也要執行將 Master 公匙傳輸到 Slave 節點、在 Slave 節點上加入授權這兩步。
這樣,在 Master 節點上就可以無密碼 SSH 到各個 Slave 節點了。
最後測試 ssh slave01
5. Hadoop安裝
在主節點dmdb1配置
5.1)配置檔案 有的要建立目錄,根據配置檔案而定。
拷貝/hadoop+hbase叢集/home/hadoop-2.7.2/etc/hadoop中hadoop-env.sh,core-site.xml,hdfs- site.xml,mapred-site.xml, yarn-site.xml, yarn-env.sh,slaves到dmdb1相同目錄,覆蓋原檔案。
5.2) 拷貝配置好的hadoop到slave節點
scp –r /opt/hadoop-2.7.2slave01:/opt
scp –r /opt/hadoop-2.7.2slave02:/opt
scp –r /opt/hadoop-2.7.2slave03:/opt
6.配置時間同步
Includefile上面還掉了兩句:server127.127.1.0
fudge127.127.1.0stratum10
6.2) Ntp伺服器master上以守護程序啟動ntpd
service ntpd start
注:ntpd啟動後,客戶機要等幾分鐘再與其進行時間同步,否則會提示“no server suitable for synchronizationfound”錯誤。
6.3)配置時間同步客戶機slave01,slave02,slave03
新增一行,客戶機每小時跟ntp伺服器進行時間同步:
* */1 * * * /usr/sbin/ntpdate master
備註:如果客戶機沒有ntpdate,可以下載ntpdate.tar.gz到/usr/sbin/目錄,然後解壓
最後檢查4臺機器時間是否一直。
7.安裝zookeeper
拷貝/hadoop+hbase叢集/opt/zookeeper-3.4.8/conf目錄下面的zoo.cfg到master相同位置
遠端分發
scp –r /opt/zookeeper-3.4.8slave01:/opt
scp –r /opt/zookeeper-3.4.8slave02:/opt
scp –r /opt/zookeeper-3.4.8slave03:/opt
在Zookeeper叢集的每臺節點上建立Zookeeper的資料檔案:
mkdir /opt/hadoop-2.7.2/zookeeper/
設定myid:
master
echo “1”> /opt/hadoop-2.7.2/zookeeper/myid
slave01
echo “2”>/opt/hadoop-2.7.2/zookeeper/myid
slave02
echo “3”> /opt/hadoop-2.7.2/zookeeper/myid
slave03
echo “4”> /opt/hadoop-2.7.2/zookeeper/myid
8.hbase安裝
在主節點上解壓HBase的tar包:
tar –zvxfhbase-1.1.4-bin.tar.gz
拷貝/hadoop+hbase叢集/opt/hbase-1.1.4/conf目錄下面的hbase-env.sh, hbase-site.xml, regionservers,backup-masters,core-site.xml,hdfs-site.xml到master的相同目錄
其中hbase-env.sh exportHBASE_HEAPSIZE=32 這個值要根據記憶體而定。
將配置好的HBase安裝目錄拷貝到其他slave節點,例如:
scp–r /opt/hbase-1.1.4 slave01:/opt
scp–r /opt/hbase-1.1.4 slave02:/opt
9.啟動zookeeper叢集
在每臺Zookeeper叢集節點上,進入到Zookeeper的安裝目錄,執行以下命令:
bin/zkServer.sh start
檢視單機Zookeeper是leader還是follower:
停止Zookeeper:
bin/zkServer.sh stop
10.啟動hadoop叢集(只用到了dfs)
Hadoop叢集的啟動(在Master節點上操作)
/opt/hadoop-2.7.2/bin/hdfs namenode -format
啟動dfs叢集
cd $HADOOP_HOME/sbin
./start-dfs.sh
輸入jps檢視java相關程序
瀏覽器訪問相關頁面
若輸入網址為如下,需進行解析
Hadoop叢集的停止
停止dfs叢集
cd $HADOOP_HOME/sbin
./stop-dfs.sh
11.啟動hbase叢集
在啟動HBase叢集之前,需保證Hadoop叢集和Zookeeper叢集是正常執行,然後進入到HBase的安裝目錄:
啟動HBase
輸入jps檢視HBase程序情況
Master
Slave01
Slave02(main程序忽略不看)
Slave03(main程序忽略不看)
停止HBase
進入HBase shell
bin/hbase shell
若報找不到hadoop資源庫的錯,可以在hbase shell腳本里加入exportLD_LIBRARY_PATH=/ho me/hadoop-2.7.2/lib/native/,不加也不影響使用。
檢視HBase HMaster Web頁面
12.開機啟動配置
拷貝/hadoop+hbase叢集/home下master-zk-hadoop-hbase-start.sh到master指定目錄
master中加/home/master-zk-hadoop-hbase-start.sh到系統服務,防止機器重啟服務掛掉
chmod +xmaster-zk-hadoop-hbase-start.sh
ln -smaster-zk-hadoop-hbase-start.sh /etc/init.d/
拷貝/hadoop+hbase叢集/home下slave-zk-start.sh到dmdb2, dmdb3,dmdb4指定目錄
dmdb2, dmdb3, dmdb4中加/home/slave-zk-start.sh到系統服務,防止機器重啟服務掛掉
chmod +xslave-zk-start.sh
ln -s slave-zk-start.sh/etc/init.d/
13.建立表
bin/hbase shell
create‘GA_GXRY_ACT’,{NAME=>’act’,VERSIONS=>1},SPLITS_FILE=>’splits.txt’
注意:建立完表,其中存有資料後,不要修改系統時間,否則會導致hbase資料不可用,故請提前配置好叢集時間同步。萬不得已要改時間重新同步,得刪除表重新創,資料將全部丟失。
HIVE部署
將hive部署到跟NameNode同一個節點就行。
進入hive的conf資料夾:
cp hive-default.xml.template hive-site.xml cp hive-log4j.properties.template hive-log4j.properties |
(1) 修改hive-site.xml
將Hive的元資料儲存到DM資料庫中
需要修改的配置有:
javax.jdo.option.ConnectionURL
javax.jdo.option.ConnectionDriverName
javax.jdo.option.ConnectionUserName
javax.jdo.option.ConnectionPassword
hive.metastore.warehouse.dir
修改如下:
將javax.jdo.option.ConnectionURL配置修改成如下:
其中192.168.195.1這個ip是指DM資料庫所在的IP。
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:dm://10.74.203.57:5236?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> |
將javax.jdo.option.ConnectionDriverName配置修改成如下:
配置DM資料庫的驅動
<property> <name>javax.jdo.option.ConnectionDriverName</name> <value>dm.jdbc.driver.DmDriver</value> <description>Driver class name for a JDBC metastore</description> </property> |
將javax.jdo.option.ConnectionUserName配置修改成如下:
配置使用者名稱
<property> <name>javax.jdo.option.ConnectionUserName</name> <value>HIVE</value> <description>username to use against metastore database</description> </property> |
將javax.jdo.option.ConnectionPassword配置修改成如下:
配置DM資料庫的密碼
<property> <name>javax.jdo.option.ConnectionPassword</name> <value>888888888</value> <description>password to use against metastore database</description> </property> |
將hive.metastore.warehouse.dirs配置修改成如下:
<property> <name>hive.metastore.warehouse.dir</name> <value>hdfs://master:9000/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property> |
由於將Hive的元資料放在DM資料庫中,則需要做適配才行,所以要加一項配置:
<property> <name>datanucleus.mapping.Schema</name> <value>HIVE</value> <description>預設模式</description> </property> |
(2) 新增Jar包
將DM資料庫驅動的jar包:Dm7JdbcDriver16-20131009.jar
DM資料庫適配置jar包:datanucleus-rdbms-dm-0.0.1-SNAPSHOT.jar
將這兩個jar加到hive的lib中。
(3) 修改hive-log4j.properties
將log4j.appender.EventCounter修改成:
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter |
(4) 新增Hive的環境變數
export HIVE_HOME=/opt/hive export PATH=$ HADOOP_HOME/bin:$ HIVE_HOME /bin:$PATH |
(5) hdfs上面,建立目錄
$HADOOP_HOME/bin/hdfsdfs -mkidr /tmp $HADOOP_HOME/bin/hdfsdfs -mkidr /user/hive/warehouse $HADOOP_HOME/bin/hdfsdfs -chmod g+w /tmp $HADOOP_HOME/bin/hdfsdfs -chmod g+w /user/hive/warehouse |
(6) 啟動Hive
啟動metastore服務
bin/hive --service metastore & |
啟動hiveserver服務
bin/hive --service hiveserver2 & |