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

1、集羣安裝與配置

centos爲例,首先創建4臺虛擬機,分別命名爲hp001hp002hp003hp004

安裝成功後,然後分別修改主機名(hp002hp003hp004hp001)。

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

hostname hp001

cat /etc/sysconfig/network    

cat /etc/sysconfig/network   

NETWORKING=yes

HOSTNAME=hp001

image.png

再修改/etc/hosts文件(hp002hp003hp004hp001),本機IP對應主機名。

image.png

二、shell腳本編寫

1、配置ssh

注意在root賬號下創建,否則沒有權限。

1)安裝ssh

yum apt-get install ssh

2)生成密鑰對

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

cd  ~/.ssh

3)導入公鑰數據到授權庫中

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)登錄其他機器:

ssh  hp002

Ifconfig

2scp

3rsync 遠程同步工具 主要備份和鏡像支持鏈接,設備。

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

4、自定義腳本xsync,在集羣上分發文件,循環複製文件到所以節點的相同目錄下,

hp001主機上/usr/loca/bin下創建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腳本,在所有主機上執行相同的命令。

例如:xcall rm rf /soft/jdk

hp001主機上/usr/loca/bin下創建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 =====================

 

三、各主機jdk安裝

1、下載jdk上傳到hp001

jdk_1.8.0_131.tar.gz

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

然後用xsync命令分別在hp002hp003hp004創建/usr/local/jdk目錄,用xcall

命令分別複製到hp002hp003hp004

2、配置jdk環境變量,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命令分別複製到hp002hp003hp004etc/profile文件中。

3、驗證安裝是否成功

image.png


四、Hadoop集羣搭建

1本機集羣機器:四臺對應hadoop1hadoop2hadoop3hadoop4

hadoop1       node1作爲名稱節點

hadoop2   node2作爲輔助名稱節點

hadoop3   node3作爲數據節點

hadoop4   node4作爲數據節點

2、安裝hadoop

創建目錄/home/hadoop/bigdata/下載hadoop-2.7.2.tar.gz,上傳解壓tar -zxvf hadoop-2.7.2.tar.gz。用xcall命令分別複製到hp002hp003hp004

3配置環境變量etc/profile文件中

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

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

xcall命令分別複製到hp002hp003hp004etc/profile文件中。

4、驗證安裝成功

hadoop version

image.png

5、hadoop集羣配置

完全分佈式配置方式:配置文件/home/hadoop/bigdata/hadoop-2.7.2/etc/hadoop/下的四個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

在集羣上分發以上5個文件

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、首次啓動hadoop

1)格式化文件系統

$>hadoop namenode -format

2)啓動所有進程

$>start-all.sh

3)查詢進程

$>xcall jps

image.png

4)停止所有進程

$>stop-all.sh

5)查看文件系統

$hadoop fs -ls

6)創建文件系統

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

$>hadoop fs ls R /

7Hadoop包含三個模塊

1)Hadoop common

支持其他模塊的工具模塊

2)Hadoop Distributed File System (HDFS)

分佈式文件系統,提供了對應用程序數據的高吞吐量訪問。

進程:

NameNode   名稱節點NN

DataNode  數據節點DN

SecondaryNamenode   輔助名稱節點2ndNN

3)Hadoop YARN

作業調度與集羣資源管理的框架。

進程

ResourceManager               資源管理 — RM

NodeManager                  節點管理器—NM

4)Hadoop MapReduce:

基於yarn系統的對大數據集進行並行處理技術。

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、配置環境變量etc/profile文件中

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

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

4、查看是否安裝成功

hive --version

image.png

6、配置hive

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

image.png

/home/hadoop/bigdata/apache-hive/conf/hive-default.xml.template 默認配置文件不要修改,創建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元數據庫

Hive使用rdbms存儲元數據,內置derby數據庫。在/home/hadoop/bigdata/apache-hive/bin/目錄下初始化schema庫,要啓動hadoop集羣:

Schematool --initSchema -dbType derby

8、hive啓動

1、進入hive shell

$hive啓動後如下圖。

image.png

2、Hive元數據庫mysql使用及常用命令

Hive配置

Hive常見命令類似於mysql,本例子用mysql作爲hive元數據庫,首先配置hive-sxit.xmlmysql數據庫驅動信息。

<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數據庫配置

1)創建數據庫hivedb

2)賦予hive連接mysql用戶的權限

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

3) mysql的驅動包放到hive

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

4)使用schematool初始化元數據。

schematool --initSchema -dbType mysql

image.png

HDFS存儲位置配置

Hive配置文件裏要用到HDFS的一些路徑,需要先手動創建。

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

3、java連接hive

1)啓動hive服務

/home/hadoop/bigdata/apache-hive/bin目錄下執行命令$hive --service hiveserver2 start

2) java代碼連接hivemysql中查詢數據

Hive.server2.enable.doAs =false;

Hive.meatstroe.saslenabled=false;

Hive.server2.authentication=none

image.png


 六、關於電腦配置

電腦配置低了帶不動啊!12GB內存都快用滿了。

image.png

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

 

image.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章