Hadoop集群搭建及Hive的安裝與使用

1、集群安裝與配置

以centos為例,首先創(chuàng)建4臺(tái)虛擬機(jī),分別命名為hp001、hp002、hp003、hp004。

安裝成功后,然后分別修改主機(jī)名(hp002、hp003、hp004同hp001)。

vim /etc/sysconfig/network? ? ? ? ? ? ? ? ? ? ? # 編輯network文件修改

hostname hadoop1

cat /etc/sysconfig/network? ?

cat /etc/sysconfig/network?

NETWORKING=yes

HOSTNAME=hp001

再修改/etc/hosts文件(hp002、hp003、hp004同hp001),本機(jī)IP對(duì)應(yīng)主機(jī)名。

2、shell腳本編寫

配置ssh

注意在root賬號(hào)下創(chuàng)建,否則沒有權(quán)限。

1)安裝ssh

yum apt-get install ssh

2)生成密鑰對(duì)

ssh-keygen –t? rsa –P ‘’ –f ~/.ssh/

cd? ~/.ssh

3)導(dǎo)入公鑰數(shù)據(jù)到授權(quán)庫中

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

scp? /root/.ssh/*? hp002@:/root/.ssh/

scp? /root/.ssh/*? hp003@:/root/.ssh/

scp? /root/.ssh/*? hp004@:/root/.ssh/

4)登錄其他機(jī)器:

ssh? hp002

Ifconfig

2、scp

3、rsync 遠(yuǎn)程同步工具 主要備份和鏡像支持鏈接,設(shè)備。

? ? rsync –rvl /soft/* hadoop@hp002:/soft

4、自定義腳本xsync,在集群上分發(fā)文件,循環(huán)復(fù)制文件到所以節(jié)點(diǎn)的相同目錄下,

在hp001主機(jī)上/usr/loca/bin下創(chuàng)建xsync文件

然后 vi xsync編寫如下代碼保存

#!/bin/bash

pcount=$#

if(( pcount<1 )) ; then

echo no args;

exit;

fi

#獲取文件名稱

p1=$1;

fname=`basename $p1`;

dname=`cd -P $(dirname $p1) ; pwd`

curse=`whoami`;

for(( host=2 ; host<5; host=host+1 )) ; do

? echo ===================== copy to hp00$host ============

? rsync -rvl? $dname/$fname $curse@hp00$host:$dname;

done

? echo ========================== end =====================

4、編寫/usr/local/bin/xcall腳本,在所有主機(jī)上執(zhí)行相同的命令。

例如:xcall rm –rf /soft/jdk

在hp001主機(jī)上/usr/loca/bin下創(chuàng)建xcall文件

然后 vi xcall編寫如下代碼保存

#!/bin/bash

pcount=$#

if(( pcount<1 )) ; then

echo no args;

exit;

fi

#

echo =========== localhost =========

$@

for(( host=2 ; host<5; host=host+1 )) ; do

? echo ===================== exe hp00$host ============

? ssh hp00$host $@

done

? echo ========================== end =====================

3、各主機(jī)jdk安裝

下載jdk上傳到hp001上

jdk_1.8.0_131.tar.gz

tar -zxvf jdk_1.8.0_131.tar.gz到/usr/local/jdk目錄下

然后用xsync命令分別在hp002、hp003、hp004創(chuàng)建/usr/local/jdk目錄,用xcall

命令分別復(fù)制到hp002、hp003、hp004。

配置jdk環(huán)境變量,etc/profile文件中

export JAVA_HOME=/usr/local/jdk

export PATH=.:$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JRE_HOME=$JAVA_HOME/jre

用xcall命令分別復(fù)制到hp002、hp003、hp004的etc/profile文件中。

驗(yàn)證安裝是否成功

4、Hadoop集群搭建

1、本機(jī)集群機(jī)器:四臺(tái)對(duì)應(yīng)hadoop1、hadoop2、hadoop3、hadoop4

hadoop1 ? ? ? node1作為名稱節(jié)點(diǎn)

hadoop2 ? node2作為輔助名稱節(jié)點(diǎn)

hadoop3 ? node3作為數(shù)據(jù)節(jié)點(diǎn)

hadoop4 ? node4作為數(shù)據(jù)節(jié)點(diǎn)

安裝hadoop

創(chuàng)建目錄/home/hadoop/bigdata/,下載hadoop-2.7.2.tar.gz,上傳解壓tar -zxvf hadoop-2.7.2.tar.gz。用xcall命令分別復(fù)制到hp002、hp003、hp004。

3、配置環(huán)境變量etc/profile文件中

export HADOOP_HOME=/home/hadoop/bigdata/hadoop-2.7.2

export PATH=.:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH

用xcall命令分別復(fù)制到hp002、hp003、hp004的etc/profile文件中。

驗(yàn)證安裝成功

hadoop version

hadoop集群配置

完全分布式配置方式:配置文件/home/hadoop/bigdata/hadoop-2.7.2/etc/hadoop/下的四個(gè)xml文件。

core-site.xml

<configuration>

? ? ? ? <property>

? ? ? ? <name>fs.defaultFS</name>

? ? ? ? <value>hdfs://hp001</value>

? ? </property>

? ? <property>

? ? ? ? <name>hadoop.tmp.dir</name>

? ? ? ? ? <value>/home/hadoop/bigdata</value>

? ? </property>

</configuration>

hdfs-site.xml

<configuration>

? ? ? ? <property>

? ? ? ? ? ? ? ? <name>dfs.replication</name>

? ? ? ? ? ? ? ? <value>3</value>

? ? ? ? </property>

? ? ? ? <property>

? ? <name>dfs.namenode.secondary.http-address</name>

? <value>hp002:50090</value>

? ? </property>

</configuration>

mapred-site.xml

<configuration>

? ? ? ? <property>

? ? ? ? ? ? ? ? <name>mapreduce.framework.name</name>

? ? ? ? ? ? ? ? <value>yarn</value>

? ? ? ? </property>

</configuration>

yarn-site.xml

<configuration>

? ? ? ? <property>

? ? ? ? <name>yarn.resourcemanager.hostname</name>

? ? ? ? <value>hp001</value>

? ? </property>

? ? <property>

? ? ? ? <name>yarn.nodemanager.aux-services</name>

? ? ? ? <value>mapreduce_shuffle</value>

? ? </property>

</configuration>

/home/hadoop/bigdata/hadoop-2.7.2/etc/hadoop/slaves文件修改為

hp003

hp004

在集群上分發(fā)以上5個(gè)文件

cd /home/hadoop/bigdata/hadoop-2.7.2/etc/hadoop

xsync core-site.xml

xsync hdfs-site.xml

xsync mapred-site.xml

xsync yarn-site.xml

xsync slaves

6、首次啟動(dòng)hadoop

1)格式化文件系統(tǒng)

$>hadoop namenode -format

2)啟動(dòng)所有進(jìn)程

$>start-all.sh

3)查詢進(jìn)程

$>xcall jps

4)停止所有進(jìn)程

$>stop-all.sh

5)查看文件系統(tǒng)

$hadoop fs -ls

6)創(chuàng)建文件系統(tǒng)

$>hadoop fs –mkdir –p /user/Ubuntu/data

$>hadoop fs –ls –R /

7、Hadoop包含三個(gè)模塊

1)Hadoop common:

支持其他模塊的工具模塊

2)Hadoop Distributed File System (HDFS)

分布式文件系統(tǒng),提供了對(duì)應(yīng)用程序數(shù)據(jù)的高吞吐量訪問。

進(jìn)程:

NameNode? 名稱節(jié)點(diǎn) NN

DataNode 數(shù)據(jù)節(jié)點(diǎn) DN

SecondaryNamenode? 輔助名稱節(jié)點(diǎn) 2ndNN

3)Hadoop YARN:

作業(yè)調(diào)度與集群資源管理的框架。

進(jìn)程

ResourceManager? ? ? ? ? ? ? 資源管理 — RM

NodeManager? ? ? ? ? ? ? ? ? 節(jié)點(diǎn)管理器—NM

4)Hadoop MapReduce:

基于yarn系統(tǒng)的對(duì)大數(shù)據(jù)集進(jìn)行并行處理技術(shù)。

8、使用webui訪問hadoop? hdfs

1)? hdfs? ? ? ? http:/hp001:50070

2)? dataNode? ? http://hp003:50075

3)? 2nn http://hp002:50090

五、hive安裝與使用

1、下載hive

下載apache hive -2.3.4.bin.tar.gz

2、安裝hive

? cd? /home/hadoop/bigdata/

? tar -zxvf Apache Hive -2.3.4.bin.tar.gz

? ln -s? apache hive -2.3.4.bin? apache hive

3、配置環(huán)境變量etc/profile文件中

export HIVE_HOME=/home/hadoop/bigdata/apache-hive

export PATH=.:$HIVE_HOME/bin:$PATH

4、查看是否安裝成功

hive --version

配置hive

修改/home/hadoop/bigdata/apache-hive/conf/hive-env.sh文件指定hadoop目錄

/home/hadoop/bigdata/apache-hive/conf/hive-default.xml.template 默認(rèn)配置文件不要修改

創(chuàng)建hive-site.xml:/home/hadoop/bigdata/apache-hive/conf/hive-site.xml,替換hive-site.xml中${system:java.io.temp.dir}=/home/hadoop/bigdata/apache-hive。

7、配置Hive元數(shù)據(jù)庫

Hive使用rdbms存儲(chǔ)元數(shù)據(jù),內(nèi)置derby數(shù)據(jù)庫。在/home/hadoop/bigdata/apache-hive/bin/目錄下初始化schema庫,要啟動(dòng)hadoop集群:

Schematool --initSchema -dbType derby

hive啟動(dòng)

進(jìn)入hive shell

$hive啟動(dòng)后如下圖。

Hive元數(shù)據(jù)庫mysql使用及常用命令

Hive配置

Hive常見命令類似于mysql,本例子用mysql作為hive元數(shù)據(jù)庫,首先配置hive-sxit.xml的mysql數(shù)據(jù)庫驅(qū)動(dòng)信息。

<property>

? ? <name>javax.jdo.option.ConnectionURL</name>

? ? <value>jdbc:mysql://192.168.0.100:3306/hivedb</value>

? ? <description>

? ? ? JDBC connect string for a JDBC metastore.

? ? ? To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.

? ? ? For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.

? ? </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>

? ? <name>javax.jdo.option.ConnectionUserName</name>

? ? <value>root</value>

? ? <description>Username to use against metastore database</description>

? </property>

<property>

? ? <name>javax.jdo.option.ConnectionPassword</name>

? ? <value>123456789</value>

? ? <description>password to use against metastore database</description>

? </property>

? </property>

Mysql數(shù)據(jù)庫配置

1)創(chuàng)建數(shù)據(jù)庫hivedb

2)賦予hive連接mysql用戶的權(quán)限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456789' WITH GRANT OPTION

將mysql的驅(qū)動(dòng)包放到hive下

放在/home/hadoop/bigdata/apache-hive/lib/下

4)使用schematool初始化元數(shù)據(jù)。

schematool --initSchema -dbType mysql

HDFS存儲(chǔ)位置配置

Hive配置文件里要用到HDFS的一些路徑,需要先手動(dòng)創(chuàng)建。

hadoop fs -mkdir -p /soft/hive/warehouse

hdfs dfs -mkdir -p /soft/hive/tmp

hdfs dfs -mkdir -p /soft/hive/log

hdfs dfs -chmod g+w /soft/hive/warehouse

hdfs dfs -chmod g+w /soft/hive/tmp

hdfs dfs -chmod g+w /soft/hive/log

java連接hive

1)啟動(dòng)hive服務(wù)

/home/hadoop/bigdata/apache-hive/bin目錄下執(zhí)行命令$hive --service hiveserver2 start。

java代碼連接hive到mysql中查詢數(shù)據(jù)

Hive.server2.enable.doAs =false;

Hive.meatstroe.saslenabled=false;

Hive.server2.authentication=none

6、關(guān)于電腦配置

電腦配置低了帶不動(dòng)啊!12GB內(nèi)存都快用滿了。

電腦配置如下都還可以,但是至少比下圖中的要高才行。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,556評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,778評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,218評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,436評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,969評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,795評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,993評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,229評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評(píng)論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,687評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,990評(píng)論 2 374