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

1、集羣安裝與配置

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

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

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

hostname hp001web

cat /etc/sysconfig/network    sql

cat /etc/sysconfig/network   shell

NETWORKING=yes數據庫

HOSTNAME=hp001apache

image.png

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

image.png

2、shell腳本編寫
centos

一、配置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 =====================

 

3、各主機jdk安裝

一、下載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

二、配置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文件中。

三、驗證安裝是否成功

image.png


4、Hadoop集羣搭建

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

hadoop1       node1做爲名稱節點

hadoop2   node2做爲輔助名稱節點

hadoop3   node3做爲數據節點

hadoop4   node4做爲數據節點

二、安裝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文件中。

四、驗證安裝成功

hadoop version

image.png

五、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

5、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

六、配置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

八、hive啓動

一、進入hive shell

$hive啓動後以下圖。

image.png

二、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

三、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


 6、關於電腦配置

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

image.png

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

 

image.png

相關文章
相關標籤/搜索