1. 程式人生 > >hadoop2.7.3完全分散式安裝-docker-hive1.2.1-hiveserver2-weave1.9.3

hadoop2.7.3完全分散式安裝-docker-hive1.2.1-hiveserver2-weave1.9.3

0.環境介紹:

1)ubuntu14.04 docker映象

地址:https://github.com/gaojunhao/ubuntu14.04

2)hadoop2.7.3

地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7.3-src.tar.gz

3)JDK1.8

這裡下載的是jdk-8u74-Linux-x64.gz

地址:http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

4)docker 17.03.0-ce for ubuntu

地址:https://store.docker.com/editions/community/docker-ce-server-ubuntu?tab=description

5)hive1.2.1

地址:http://www-eu.apache.org/dist/hive/hive-1.2.1/

6)mysql 5.5.54

7)weave1.9.3

地址:https://www.weave.works/docs/net/latest/installing-weave/

1.安裝

1)docker 安裝

apt-get install -y curl
curl -sSL https://get.docker.com/|sh
usermod -aG docker $(whoami)

2)執行ubuntu14.04映象

docker run -it -h master ubuntu:14.04

3)安裝jdk1.8

docker cp /jdk-8u74-linux-x64.gz containerid:/home/ubuntu/jdk-8u74-linux-x64.gz

tar -zxvf jdk-8u74-linux-x64.gz

3.1)配置環境變數

vim /etc/profile

export JAVA_HOME=/home/ubuntu/jdk1.8.0_74
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

3.2)jdk測試

source /etc/profile

java -version

顯示以下則配置正確

Javaversion "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)

4)hadoop2.7.3安裝

docker cp /hadoop-2.7.3-src.tar.gz containerid:/home/ubuntu/hadoop-2.7.3-src.tar.gz

tar -zxvf hadoop-2.7.3-src.tar.gz

4.1)環境變數配置

vim /etc/profile

export HADOOP_HOME=/soft/apache/hadoop/hadoop-2.7.3
export HADOOP_CONFIG_HOME=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

source /etc/profile

4.2)hosts檔案

vim /etc/host-tmp

新增以下:

127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2        master
172.17.0.3        slaver1
172.17.0.4        slaver2

儲存後

vim /init.sh

新增以下:

#!/bin/sh
rm /etc/hosts
cat /etc/host-tmp >> /etc/hosts
/etc/init.d/networking restart

4.3)ssh免密登入

參照:http://blog.csdn.net/ab198604/article/details/8250461

本文摘取該博文ssh免密登入設定部分

SSH主要通過RSA演算法來產生公鑰與私鑰,在資料傳輸過程中對資料進行加密來保障數

據的安全性和可靠性,公鑰部分是公共部分,網路上任一結點均可以訪問,私鑰主要用於對資料進行加密,以防他人盜取資料。總而言之,這是一種非對稱演算法,想要破解還是非常有難度的。Hadoop叢集的各個結點之間需要進行資料的訪問,被訪問的結點對於訪問使用者結點的可靠性必須進行驗證,hadoop採用的是ssh的方法通過金鑰驗證及資料加解密的方式進行遠端安全登入操作,當然,如果hadoop對每個結點的訪問均需要進行驗證,其效率將會大大降低,所以才需要配置SSH免密碼的方法直接遠端連入被訪問結點,這樣將大大提高訪問效率。

(1)     每個結點分別產生公私金鑰。

鍵入命令:

以上命令是產生公私金鑰,產生目錄在使用者主目錄下的.ssh目錄中,如下:

Id_dsa.pub為公鑰,id_dsa為私鑰,緊接著將公鑰檔案複製成authorized_keys檔案,這個步驟是必須的,過程如下:

用上述同樣的方法在剩下的兩個結點中如法炮製即可。

(2)     單機迴環ssh免密碼登入測試

即在單機結點上用ssh進行登入,看能否登入成功。登入成功後登出退出,過程如下:

注意標紅圈的指示,有以上資訊表示操作成功,單點回環SSH登入及登出成功,這將為後續跨子結點SSH遠端免密碼登入作好準備。

用上述同樣的方法在剩下的兩個結點中如法炮製即可。

(3)     讓主結點(master)能通過SSH免密碼登入兩個子結點(slave

為了實現這個功能,兩個slave結點的公鑰檔案中必須要包含主結點的公鑰資訊,這樣

master就可以順利安全地訪問這兩個slave結點了。操作過程如下:

如上過程顯示了node1結點通過scp命令遠端登入master結點,並複製master的公鑰檔案到當前的目錄下,這一過程需要密碼驗證。接著,將master結點的公鑰檔案追加至authorized_keys檔案中,通過這步操作,如果不出問題,master結點就可以通過ssh遠端免密碼連線node1結點了。在master結點中操作如下:

由上圖可以看出,node1結點首次連線時需要,“YES”確認連線,這意味著master結點連線node1結點時需要人工詢問,無法自動連線,輸入yes後成功接入,緊接著登出退出至master結點。要實現ssh免密碼連線至其它結點,還差一步,只需要再執行一遍ssh node1,如果沒有要求你輸入”yes”,就算成功了,過程如下:

如上圖所示,master已經可以通過ssh免密碼登入至node1結點了。

node2結點也可以用同樣的方法進行,如下圖:

Node2結點複製master結點中的公鑰檔案

 

Master通過ssh免密碼登入至node2結點測試:

第一次登入時:

 

第二次登入時:

表面上看,這兩個結點的ssh免密碼登入已經配置成功,但是我們還需要對主結點master也要進行上面的同樣工作,這一步有點讓人困惑,但是這是有原因的,具體原因現在也說不太好,據說是真實物理結點時需要做這項工作,因為jobtracker有可能會分佈在其它結點上,jobtracker有不存在master結點上的可能性。

master自身進行ssh免密碼登入測試工作:

 

至此,SSH免密碼登入已經配置成功。

4.4)修改hadoop配置檔案

cd $HADOOP_HOME/etc/hadoop/

4.4.1.hadoop-env.sh

export JAVA_HOME=/home/ubuntu/jdk1.8.0_74

4.4.2.slaves

新增以下:

localhost
slaver1
slaver2

4.4.3.core-site.xml

新增以下:

<property>
            <name>hadoop.tmp.dir</name>
            <value>/soft/apache/hadoop/hadoop-2.7.3/tmp</value>
            <description>A base for other temporary directories.</description>
    </property>

4.4.4.hdfs-site.xml

新增以下:

<property>
        <name>dfs.namenode.name.dir</name>
        <value>/soft/apache/hadoop/hadoop-2.7.3/namenode</value>
        <final>true</final>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/soft/apache/hadoop/hadoop-2.7.3/datanode</value>
        <final>true</final>
    </property>

4.5)儲存docker映象

docker ps 檢視當前啟動的映象id

docker commit containerid hadoop:master

docker commit containerid hadoop:slaver1

docker commit containerid hadoop:slaver2

4.6)格式化namenode

docker run -it -h master hadoop:master

docker run -it -h slaver1 hadoop:slaver1

docker run -it -h slaver2 hadoop:slaver2

在master節點

hadoop namenode -format

上面只要出現successfully formatted則格式化成功了.

4.7)啟動hadoop

start-dfs.sh

start-yarn.sh

4.8)jps檢測後臺程式是否啟動成功

jps

master節點

[email protected]:/# jps
201 NameNode
1264 Jps
1108 ResourceManager
526 SecondaryNameNode
316 DataNode
1224 NodeManager

slaver節點

[email protected]:/# jps
276 NodeManager
401 Jps
109 DataNode

[email protected]:/# jps
276 NodeManager
401 Jps
109 DataNode

如果namenode datanode節點沒有啟動

參照:http://blog.csdn.net/lu8000/article/details/46313231

http://blog.csdn.net/asia_kobe/article/details/50902812

http://www.cnblogs.com/kinglau/p/3796274.html

4.9)hadoop pi 測試

cd $HADOOP_HOME

[email protected]:/soft/apache/hadoop/hadoop-2.7.3/share/hadoop/mapreduce# hadoop jar hadoop-mapreduce-examples-2.7.3.jar pi 10 10

如果遇到run job一直執行不下去,檢查下磁碟使用率是不是超過了90%,可以增大一些可用磁碟率.

5)hive安裝

5.0)安裝情況介紹

master節點作為server,slaver節點作為client

master節點安裝mysql hive,slaver節點安裝hive

5.1)mysql安裝

5.1.1.sudo apt-get install mysql-server

5.1.2.apt-get isntall mysql-client

5.1.3.sudo apt-get install libmysqlclient-dev

5.1.4.啟動mysql服務

service mysql start

5.1.5.登入mysql

mysql -uroot -phivepass(username=root,password=hivepass)

5.2)hive安裝

5.2.1.hive安裝

docker cp /apache-hive-1.2.1-bin.tar.gz containerid:/usr/local/

tar -zxvf apache-hive-1.2.1-bin.tar.gz

5.2.2.環境變數配置

vim /etc/profile

新增以下:

export HIVE_HOME=/usr/local/apache-hive-1.2.1-bin
export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile

5.2.3.hive配置檔案

5.2.3.1配置檔案重新命名

cd $HIVE_HOME/conf

cp hive-default.xml.template hive-site.xml
5.2.3.2修改hive-site.xml

修改以下項:

<property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive</value>
    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
  </property>
  <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/tmp</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/tmp</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>

<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>hivepass</value>
    <description>password to use against metastore 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>

<property>
    <name>hive.server2.thrift.bind.host</name>
    <value>172.17.0.2</value>
    <description>Bind host on which to run the HiveServer2 Thrift service.</description>
  </property>

5.2.4.hive 元資料

mysql-connector-java-5.1.39.jar下載地址:

https://dev.mysql.com/downloads/connector/j/

將 mysql-connector-java-5.1.39.jar 放入 $HIVE_HOME/lib 下

5.2.5.為hive建立hdfs目錄

在 Hive 中建立表之前需要使用以下 HDFS 命令建立 /tmp 和 /user/hive/warehouse (hive-site.xml 配置檔案中屬性項 hive.metastore.warehouse.dir 的預設值) 目錄並給它們賦寫許可權

hdfs dfs -mkdir /tmp
hdfs dfs -mkdir /usr/hive/warehouse
hdfs dfs -chmod g+w /tmp
hdfs dfs -chmod g+w /usr/hive/warehouse
5.2.6.執行hive

5.2.6.1先執行 schematool 命令來執行初始化操作

schematool -dbType mysql -initSchem
5.2.6.2啟動mysql server服務

service mysql start

5.2.6.3啟動hive

輸入hive

出現如下則hive安裝成功

Logging initialized using configuration in file:/usr/local/apache-hive-1.2.1-bin/conf/hive-log4j.properties
hive>

5.2.7slaver節點安裝hive

1)hive安裝

docker cp /apache-hive-1.2.1-bin.tar.gz containerid:/usr/local/

tar -zxvf apache-hive-1.2.1-bin.tar.gz

2)環境變數配置

vim /etc/profile

新增以下:

export HIVE_HOME=/usr/local/apache-hive-1.2.1-bin
export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile

3)hive配置檔案

3.1)配置檔案重新命名

cd $HIVE_HOME/conf

cp hive-default.xml.template hive-site.xml
3.2)修改hive-site.xml

修改以下項:

<property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive</value>
    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
  </property>
  <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/tmp</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/tmp</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://172.17.0.2:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>

<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>hivepass</value>
    <description>password to use against metastore 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>

<property>
    <name>hive.server2.thrift.bind.host</name>
    <value>172.17.0.2</value>
    <description>Bind host on which to run the HiveServer2 Thrift service.</description>
  </property>

<property>
      <name>hive.metastore.uris</name>
    <value>thrift://172.17.0.2:9083</value>
    </property>

4)hive 元資料

mysql-connector-java-5.1.39.jar下載地址:

https://dev.mysql.com/downloads/connector/j/

將 mysql-connector-java-5.1.39.jar 放入 $HIVE_HOME/lib 下

5)為hive建立hdfs目錄

在 Hive 中建立表之前需要使用以下 HDFS 命令建立 /tmp 和 /user/hive/warehouse (hive-site.xml 配置檔案中屬性項 hive.metastore.warehouse.dir 的預設值) 目錄並給它們賦寫許可權

hdfs dfs -mkdir /tmp
hdfs dfs -mkdir /usr/hive/warehouse
hdfs dfs -chmod g+w /tmp
hdfs dfs -chmod g+w /usr/hive/warehouse

5.2.7啟動metastore

參照:http://blog.csdn.net/reesun/article/details/8556078

master節點

service mysql start

[email protected]:/# hive --service metastore
Starting Hive Metastore Server

slaver節點

輸入hive

[email protected]:/tmp/root# hive

Logging initialized using configuration in file:/usr/local/apache-hive-1.2.1-bin/conf/hive-log4j.properties
hive>

5.2.8啟動hiveserver2

master節點

service mysql start

slaver節點

[email protected]:/# beeline
Beeline version 1.2.1 by Apache Hive
beeline> !connect jdbc:hive2://172.17.0.2:10000/default
Connecting to jdbc:hive2://172.17.0.2:10000/default
Enter username for jdbc:hive2://172.17.0.2:10000/default: root
Enter password for jdbc:hive2://172.17.0.2:10000/default:
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://172.17.0.2:10000/default>

出現以上則證明hiveserver2正常啟動

6)weave安裝

使用weave進行真正的完全分散式安裝

6.1weave安裝

要求:網路已翻牆

master slaver節點均需要安裝

1.sudo wget -O /usr/local/bin/weave https://raw.githubusercontent.com/zettio/weave/master/weave
2.sudo chmod a+x /usr/local/bin/weave

6.2weave啟動
1.master節點所在主機
weave launch
2.slaver節點所在主機
weave launch master_ip
3.檢查
netstat -na | grep 6783
6.3載入映象
docker import hiveClient.tar
docker import hiveServer.tar
6.4執行容器
1.slaver節點
weave run 10.0.0.3/24 -it -h slaver1 --net=none hive:client
weave run 10.0.0.4/24 -it -h slaver2 --net=none hive:client
docker attach containerid
./init.sh
2.master節點
weave run 10.0.0.2/24 -it -h master --net=none hive:server
docker attach containerid
./init.sh
6.5暴露主機埠
weave expose 10.0.0.100/24(將本機加入weave子網)
6.6啟動dfs yarn
start-dfs.sh
start-yarn.sh
jps

注意:不要使用172.17.0.2等docker使用的ip,防止衝突,所以前面設定的172.17.0.2等需要改為10.0.0.2等.

相關推薦

hadoop2.7.3完全分散式安裝-docker-hive1.2.1-hiveserver2-weave1.9.3

0.環境介紹: 1)ubuntu14.04 docker映象 地址:https://github.com/gaojunhao/ubuntu14.04 2)hadoop2.7.3 地址:http://www.apache.org/dyn/closer.cgi/hadoop/c

hadoop2.7.4 完全分散式搭建(4臺)

1. 叢集的規劃 描述:hadoop HA機制的搭建依賴與zookeeper,所以選取三臺當作zookeeper叢集,總共準備了4臺主機,分別是hadoop01,hadoop02,hadoop03,hadoop04,其中hadoop01和hadoop02做namenode主

Hadoop2.7.4完全分散式環境搭建

軟體版本 虛擬機器管理軟體:VMware WorkStation Pro 12.0 作業系統:CentOS 6.7 Hadoop:Hadoop 2.7.4 JDK:jdk-8u65-linux-x64.tar.gz 一、環境準備 1、 修改各個節點主機名:vi /e

hive安裝配置(hive1.2.1)

環境centOS 7 hive的安裝比較簡單,只需要在一臺機器上配置即可。 由於hive的一些功能要藉助資料庫實現,所以要先裝好mysql。 一.安裝MySql 1.下載MySQL # 下載mysql源安裝包 shell> wget http://dev.mys

CentOS7+Hadoop2.7.2(HA高可用+Federation聯邦)+Hive1.2.1+Spark2.1.0 完全分散式叢集安裝

本文件主要記錄了Hadoop+Hive+Spark叢集安裝過程,並且對NameNode與ResourceManager進行了HA高可用配置,以及對NameNode的橫向擴充套件(Federation聯邦) 1VM網路配置 將子網IP設定為192.168.1.0: 將閘道器設定

基於CentOS6.5系統Hadoop2.7.3完全分散式叢集搭建詳細步驟

 前言:本次搭建hadoop叢集使用虛擬機器克隆方式克隆slave節點,這樣做可以省去很多不必要的操作,來縮短我們的搭建時間。 一、所需硬體,軟體要求 使用 VMWare構建三臺虛擬機器模擬真實物理環境 作業系統:CentOS6.5 二、必備條件 hadoop搭建需

hbase1.2.3+zookeeper3.4.9+hadoop2.7.3完全分散式部署遇到的問題

啟動start-hbase.sh 後hbase沒有啟動 檢視日誌如下: ERROR [main] master.HMasterCommandLine: Master exiting java.io.IOException: Could not start ZK with 3

CentOS7下搭建hadoop2.7.3完全分散式

這裡搭建的是3個節點的完全分散式,即1個nameNode,2個dataNode,分別如下: CentOS-master   nameNode   192.168.11.128 CentOS-node1   dataNode    192.168.11.131 Cen

hadoop-2.7.6 完全分散式安裝

準備環境           CentOS 7           jdk1.8 (這裡建議使用1.8版本的jdk 連結:https://www.oracle.com/technetwork/ja

大資料學習環境搭建(CentOS6.9+Hadoop2.7.3+Hive1.2.1+Hbase1.3.1+Spark2.1.1)

node1192.168.1.11node2192.168.1.12node3192.168.1.13備註NameNodeHadoopYY高可用DateNode YYYResourceManager YY高可用NodeManagerYYYJournalNodes YYY奇數個,至少3個節點ZKFC(DFSZK

Hadoop2.9.0+VMware+ubuntu16.04完全分散式安裝指南-超詳細

0.環境概要Linux:Ubuntu 16.04hadoop:Hadoop 2.9.0jdk:1.8.0vmware:14.0 pro1.Linux環境部署1.1第一步配置Vmware NAT網路    vmware虛擬機器的配置,主要是網路配置,選擇NAT網路,Ubuntu

RHEL7.3系統上安裝docker環境及docker的簡單使用

訪問 vim build info 環境 version .html 查看 hub 為RHEL7和Centos7上安裝epel源和docker源以及安裝和檢查 命令安裝 yum -y install epel-release 手動安裝 wget http://

Hadoop完全分散式安裝Hive

   編譯安裝 Hive 如果需要直接安裝 Hive,可以跳過編譯步驟,從 Hive 的官網下載編譯好的安裝包,下載地址為http://hive.apache.org/downloads.html。 Hive的環境配置需要MySQL的支援,所以首先需要安裝MySQL,

Hadoop完全分散式安裝zookeeper

D.1安裝 ZooKeeper D.1.1 下載 ZooKeeper ZooKeeper 是 Apache 基金會的一個開源、分散式應用程式協調服務,是 Google 的 Chubby一個開源的實現。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括配置維護、域名服務、分散式同步、

安裝HBase--單節點、偽分散式完全分散式安裝

1.下載HBase 連結:http://mirrors.cnnic.cn/apache/hbase/ 選擇 stable 目錄,下載 bin 檔案: 在Linux上解壓,部落格中解壓在/home/hadoop 目錄下: 進入解壓目錄: 2.修改配置 修改JD

Hadoop完全分散式安裝2

hadoop簡介:     1.獨立模式(standalone|local)單機模式;所有的產品都安裝在一臺機器上且本地磁碟和副本可以在接下來的xml檔案中         nothing!  &

cdh5.7.0偽分散式叢集之spark-2.2.0安裝

基本環境及軟體: 軟體版本 軟體包 centos-6.4   JDK-1.8 jdk-8u191-linux-x64.tar.gz hadoo

spark-2.4.0-hadoop2.7-高可用(HA)安裝部署

  1. 主機規劃 主機名稱 IP地址 作業系統 部署軟體 執行程序 備註 mini01 172.16.1.11【內網】 10.0.0.11  【外網】

ZooKeeper完全分散式安裝與配置

Apache ZooKeeper是一個為分散式應用所設計開源協調服務,其設計目是為了減輕分散式應用程式所承擔的協調任務。可以為使用者提供同步、配置管理、分組和命名服務。   1.環境說明 在三臺裝有centos6.5(64位)伺服器上安裝ZooKeeper,官網建議至少3個節點,本

Hadoop從入門到精通系列之--3.完全分散式環境搭建

目錄 一 什麼是完全分散式 二 準備伺服器 三 叢集分發指令碼 3.1 scp(secure copy)安全拷貝 3.2 rsync遠端同步 3.3 叢集分發指令碼 四 叢集規劃 4.1 規劃思想 4.2 具體配置 4.3 ssh免密登陸 一 什麼