您好,登錄后才能下訂單哦!
這篇文章主要介紹了Hadoop+HBase+Hive如何實現完全分布式部署,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
完全分布式Hadoop + HBase + Hive 部署過程的的一些問題。
NameNode: 192.168.229.132
DataNode: 192.168.229.133/192.168.229.134
--------------------------------------------------------------------------------
配置 Hadoop
無密碼SSH
首先是NameNode需要通過ssh來訪問DataNode,配置一個無密碼的ssh
NameNode上生成公鑰私鑰
$ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
把公鑰放到tmp目錄,并且scp到每一個DataNode
$cp ~/.ssh/id_dsa.pub /tmp
在NameNode和DataNode都執行這個,完成配置
$cat /tmp/id_dsa.pub >> ~/.ssh/authorized_keys
配置文件 (其中涉及到的目錄會自動創建)
conf/hadoop-env.sh
# The Java implementation to use. Required.
export JAVA_HOME=/usr/jdk1.6.0_25
conf/core-site.xml (如果要使用Hive,就需要把紅色的IP改成主機名,否則會有Wrong FS錯誤)
<configuration>
<property>
<!-- 用于dfs命令模塊中指定默認的文件系統協議 -->
<name>fs.default.name</name>
<value>hdfs://192.168.229.132:9000</value>
</property>
<!-- 設置一個比較小的日志尺寸 -->
<property>
<name>hadoop.logfile.size</name>
<value>10</value>
</property>
</configuration>
conf/hdfs-site.xml
<configuration>
<property>
<!-- DFS中存儲文件命名空間信息的目錄 -->
<name>dfs.name.dir</name>
<value>/u01/app/data/dfs.name.dir</value>
</property>
<property>
<!-- DFS中存儲文件數據的目錄 -->
<name>dfs.data.dir</name>
<value>/u01/app/data/dfs.data.dir</value>
</property>
</configuration>
conf/mapred-site.xml
<configuration>
<property>
<!-- 用來作JobTracker的節點的(一般與NameNode保持一致) -->
<name>mapred.job.tracker</name>
<value>192.168.229.132:9001</value>
</property>
<property>
<!-- map/reduce的系統目錄(使用的HDFS的路徑) -->
<name>mapred.system.dir</name>
<value>/u01/app/data/mapred.system.dir</value>
</property>
<property>
<!-- map/reduce的臨時目錄(可使用“,”隔開,設置多重路徑來分攤磁盤IO) -->
<name>mapred.local.dir</name>
<value>/u01/app/data/mapred.local.dir</value>
</property>
</configuration>
主從配置
conf/masters
192.168.229.132
conf/slaves
192.168.229.133
192.168.229.134
在NameNode進行了所有的配置之后,通過scp把hadoop安裝目錄同步到DataNode。然后在NameNode進行格式化和啟動。
--------------------------------------------------------------------------------
配置 Hbase
$vi /etc/hosts (HBase使用機器名稱,在hosts里面必須配置集群里面的機器)
127.0.0.1 localhost
192.168.229.132 ubuntu02
192.168.229.133 ubuntu03
192.168.229.134 ubuntu04
conf/hbase-env.sh (這里)
# The Java implementation to use. Java 1.6 required.
export JAVA_HOME=/usr/jdk1.6.0_25
# Extra Java CLASSPATH elements. Optional.
export HBASE_CLASSPATH=/u01/app/hadoop/conf
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=true
conf/hbase-site.xml (紅色部分必須使用主機名稱,其他部分可以使用IP)
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://ubuntu02:9000/u01/app/data/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://192.168.229.132:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.229.132, 192.168.229.133, 192.168.229.134</value>
</property>
</configuration>
conf/regionservers (和Hadoop的slaves文件一致)
192.168.229.133
192.168.229.134
通過scp把hbase安裝目錄同步到DataNode
----------------------------------------------------------------------------------------------
配置 Hive
MySQL存儲元數據 (安裝過程見這里)
創建數據庫的時候,必須使用latin1作為字符集,否則會有錯誤信息Specified key was too long; max key length is 767 bytes
mysql> create database hivedb default character set latin1;
mysql> create user 'hive'@'localhost' identified by 'hive';
mysql> grant all on hivedb.* to 'hive'@'localhost';
Hive 配置信息 (Hive僅需要在Master節點安裝配置即可)
bin/hive-config.sh (可以設置 .profile 文件來略過這步)
export JAVA_HOME=/usr/jdk1.6.0_25
export HIVE_HOME=/u01/app/hive
export HADOOP_HOME=/u01/app/hadoop
conf/hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value>
<description>JDBC connect string FOR a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name FOR a JDBC metastore</description> </property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username TOUSE against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password TOUSE against metastore database</description>
</property>
MySQL 驅動包
下載mysql-connector-java-5.1.18-bin.jar文件,并放到$HIVE_HOME/lib目錄下
測試
hadoop@ubuntu02:/u01/app/hive$ bin/hive
Logging initialized using configuration in jar:file:/u01/app/hive-0.8.1-bin/lib/hive-common-0.8.1.jar!/hive-log4j.properties
Hive history file=/tmp/hadoop/hive_job_log_hadoop_201203201733_2122821776.txt
hive> show tables;
OK
tb
Time taken: 2.458 seconds
hive>
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Hadoop+HBase+Hive如何實現完全分布式部署”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。