1. 程式人生 > >HadoopDB叢集配置方法

HadoopDB叢集配置方法

Author:謝

本文介紹在2個節點上安裝配置HadoopDB方法。各節點的名稱分別為Cluster01(192.168.0.1),Cluster02(192.168.0.2)。

以下若是用 [email protected]:~ 代表 Cluster01 ~ Cluster02 都要做的.

1  首先在各節點上安裝Hadoop-0.20.2, 參考此文 。

2  各節點安裝設定 PostgreSQL:

  • 安裝併為資料庫建立 hadoop 帳號,假定使用密碼為 1234
  • [email protected]:~$ sudo apt-get install postgresql
  • [email protected]
    :~$ sudo vim /etc/postgresql/8.4/main/pg_hba.conf
    • #local   all         all                               ident
      local   all         all                               trust
      # IPv4 local connections:
      #host    all         all         127.0.0.1/32          md5
      host    all         all         127.0.0.1/32          password
      host    all         all         192.168.0.1/24          password            # 加上Cluster 機器 IP 範圍
      # IPv6 local connections:
      #host    all         all         ::1/128               md5
      host    all         all         ::1/128               password
  • [email protected]:~$ sudo /etc/init.d/postgresql-8.4 restart
  • [email protected]:~$ sudo su - postgres
  • [email protected]:~$ createuser hadoop
    • Shall the new role be a superuser? (y/n) y
      [email protected]:~$ psql
      psql (8.4.2)
      Type "help" for help.

      postgres=# alter user hadoop with password '1234';
      ALTER ROLE
      postgres=# /q
  • 測試其他機器可否連線
    • [email protected]:~$ createdb testdb
    • [email protected]:~$ psql -h Cluster01 testdb 
      • 如果能夠連線上,則出現以下提示:
        • 口令:
          psql (8.4.2)
          SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
          Type "help" for help.

          testdb=#

3 設定HadoopDB 

[email protected]:~$ cp hadoopdb.jar HADOOP_HOME/lib/ [email protected]:~$ cp postgresql-8.4-701.jdbc4.jar HADOOP_HOME/lib/ [email protected]:~$ vim HADOOP_HOME/conf/core-site.xml
  • core-site.xml 檔案中新增以下內容:
    <property>
    <name>hadoopdb.config.file</name>
    <value>HadoopDB.xml</value>
    <description>The name of the HadoopDB cluster configuration file</description>
    </property>

    <property>
    <name>hadoopdb.fetch.size</name>
    <value>1000</value>
    <description>The number of records fetched from JDBC ResultSet at once</description>
    </property>

    <property>
    <name>hadoopdb.config.replication</name>
    <value>false</value>
    <description>Tells HadoopDB Catalog whether replication is enabled.
    Replica locations need to be specified in the catalog.
    False causes replica information to be ignored.</description>
    </property>
[email protected]:~$ vim nodes.txt 將叢集中的所有節點IP寫入此檔案:
  • 192.168.0.1
  • 192.168.0.2
[email protected]:~$ vim  Catalog.properties
  • #Properties for Catalog Generation
    ##################################
    nodes_file=nodes.txt
    # Relations Name and Table Name are the same
    relations_unchunked=raw
    relations_chunked=poi
    catalog_file=HadoopDB.xml
    ##
    #DB Connection Parameters
    ##
    port=5432
    username=hadoop
    password=1234
    driver=org.postgresql.Driver
    url_prefix=jdbc/:postgresql/://
    ##
    #Chunking properties
    ##
    # the number of databases on a node
    chunks_per_node=2
    # for udb0 ,udb1 ( 2 nodes = 0 ~ 1 )
    unchunked_db_prefix=udb
    # for cdb0 ,cdb1, ... , cdb5 (2 nodes x 3 chunks = 0~5 )
    chunked_db_prefix=cdb
    ##
    #Replication Properties
    ##
    dump_script_prefix=/root/dump_
    replication_script_prefix=/root/load_replica_
    dump_file_u_prefix=/mnt/dump_udb
    dump_file_c_prefix=/mnt/dump_cdb
    ##
    #Cluster Connection
    ##
    ssh_key=id_rsa-gsg-keypair
[email protected]:~$ java -cp lib/hadoopdb.jar edu.yale.cs.hadoopdb.catalog.SimpleCatalogGenerator Catalog.properties
  • 產生的 HadoopDB.xml 類似下面:
  • <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

        <Nodes Password="1234" Username="hadoop" Driver="org.postgresql.Driver" Location="
     192.168.0.1 ">
            <Relations id="raw">
                <Partitions url="jdbc:postgresql://
     192.168.0.1 :5432/udb0" id="0"/>
            </Relations>
            <Relations id="poi">
                <Partitions url="jdbc:postgresql://
     192.168.0.1 :5432/cdb0" id="0"/>
                <Partitions url="jdbc:postgresql://
     192.168.0.1 :5432/cdb1" id="1"/>
            </Relations>
        </Nodes>
        <Nodes Password="1234" Username="hadoop" Driver="org.postgresql.Driver" Location="
     192.168.0.2 ">
            <Relations id="raw">
                <Partitions url="jdbc:postgresql://
     192.168.0.2 :5432/udb1" id="1"/>
            </Relations>
            <Relations id="poi">
                <Partitions url="jdbc:postgresql://
     192.168.0.2 :5432/cdb2" id="2"/>
                <Partitions url="jdbc:postgresql://
     192.168.0.2 :5432/cdb3" id="3"/>
            </Relations>
        </Nodes>
    </DBClusterConfiguration>
將HadoopDB.xml放入HDFS中: [email protected]:~$ hadoop dfs -put HadoopDB.xml HadoopDB.xml

4 資料載入

在此以 raw 這個 talbe 當作例子進行講解。根據前面HadoopDB.xml的內容,叢集中的兩個節點,第一個節點的資料庫名稱為udb0 ,第二個節點為udb1,首先分別建立這兩個資料庫: 在對應資料庫上建立raw 這個table:
  • [email protected]:~$ psql udb0
    udb0=# 
    CREATE TABLE raw (
    ID int,
    NAME varchar(300)
    );
  • 同理如 Cluster02
先將本地檔案系統中的資料put到HDFS中: $ hadoop fs -put  localfile  input_in_hdfs/ 資料切割: 使用 HadoopDB 所提供的切割工具將資料切割成n份(一般,n是叢集有節點數目),以下例子中:n=2,每一份資料的分割符是'/n':
$ hadoop jar lib/hadoopdb.jar edu.yale.cs.hadoopdb.dataloader.GlobalHasher input_in_hdfs out_in_hdfs 2 '/n' 0 在各個節點上,將切割後的資料,從hdfs中傳到各個節點的本地檔案系統中: $ hadoop fs -get out_in_hdfs/part-00000 /home/hadoop/p0 將本地檔案載入到資料庫中:
[email protected]:~$ psql udb0 
udb0=# COPY RAW FROM '/home/hadoop/p0' WITH DELIMITER E'/t' ;
同理如 Cluster02

5 SMS安裝配置

    第3步下載的hadoopdb解壓後包含SMS_dist.tar.gz資料夾。

    SMS的安裝方法很簡單:首先將其解壓,然後開啟bin目錄下的hive-config.sh檔案,再最後加上一句:

    export HADOOP_HOME="此處寫hadoop的安裝路徑"。

然後在hive上建立上面raw這個table對應的資料庫: 假設 Hive 使用的資料將儲存在 HDFS 的 /db [email protected]:~ $ hadoop dfs -mkdir /db [email protected]:~ $ SMS_dist/bin/hive
CREATE EXTERNAL TABLE raw  (
ID int,
NAME string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS
INPUTFORMAT 'edu.yale.cs.hadoopdb.sms.connector.SMSInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION '/db/raw'; /db/raw中的raw是指table的名稱

5  以上設定完後,即可在一臺機器上(Ex: Cluster1) 執行 $ SMS_dist/bin/hive 看看成果

相關推薦

HadoopDB叢集配置方法

Author:謝 本文介紹在2個節點上安裝配置HadoopDB方法。各節點的名稱分別為Cluster01(192.168.0.1),Cluster02(192.168.0.2)。 以下若是用 [email protected]:~ 代表 Cluster01 ~ C

NGINX+TOMCAT搭建高效能負載均衡叢集 配置方法

一、       工具   nginx   apache-tomcat     二、    目標   實現高效能負載均衡的Tomcat叢集:  

Resin 多站點叢集配置方法

                          Resin 多站點叢集配置方法   轉載:http://www.open-open.com/doc/

weblogic tomcat 叢集配置方法(轉)軟體層次上的分散式與叢集

       叢集與分散式一直是我想學習的東西.可惜沒有實踐的機會       分散式強調的同一個業務被分拆成不同的子業務,被部署在不同的伺服器上(可能是效能的問題,也可能是安全的問題,也可能是模組對伺服器的需求不同的問題將業務進行分解),伺服器可以跨域也可以同域。 而

centos7.5+mysql主主叢集+keepalived+郵件報警 配置方法

centos7.5+mysql主主叢集+keepalived+郵件報警 配置方法 一、環境說明 作業系統: CentOS Linux release 7.5.1804 Mysql版本:mysql-5.7.23 Keepalived版本: v1.3.5 Mysql-vip:192.

hadoop叢集配置無密碼登陸 啟動關閉namenode輸入密碼的解決方法

最近做hadoop學習,按網上的資料照本宣科做的,發現死活搞不懂為啥在啟動和關閉namenode的時候都要輸入密碼。上網查詢半天都沒摸到頭腦,後來仔細研究了下ssh後才發現,原來是一直沒在namenode主機上加入ssh本地免驗證authorized_keys檔案,ssh

springmvc和json整合配置方法

repl bin blank converter htm spring配置 tpm port 三方 配置方法一 1、導入第三方的jackson包,jackson-mapper-asl-1.9.7.jar和jackson-core-asl-1.9.7.jar。 2、spri

Linux操作系統下/etc/hosts文件配置方法

主機名 進行 問題 解釋 很快 中一 linux 同時 包括 1、關於/etc/host,主機名和IP配置文件   Hosts - The static table lookup for host name(主機名查詢靜態表)   hosts文件是Linux系統中一個負責

j2ee監聽器的實現及配置方法

tin sta j2ee bsp 對象 配置方法 clas http ont j2ee中存在的監聽器有八種,其中四種有關於session 可以分為以下幾類: 生命周期類:監聽對象的創建和銷毀 Interface  ServletRequestListener Interfa

phpunit 生成三種日誌文件的配置方法

complete spa php style highlight bin 方法 cnblogs nco #目錄結構 windows bin目錄下 ├── phpunit.phar ├── phpunit.cmd ├──

Python的Flask框架使用Redis做數據緩存的配置方法

num pre 設置 span run type con sudo python flask配置redis 首先得下載flask的緩存插件Flask-Cache,使用pip下載。 sudo pip install flask_cache 為應用擴展flask_ca

Windows訪問Linux下的共享目錄的配置方法

cat tab all samb dha server nbsp lan eno user安全級別 第一步:安裝samba3(如果已經安裝就跳過這一步) [[email protected]/* */ /]# yum groupinstall "CIFS

【STORAGE】Qlogic FC存儲交換機cmd配置方法

dmi bsp pos add rac .net edi csdn clu *************************************************************** ****原文: blog.csdn.net/clark_xu

Spring之AOP在XML中的配置方法

字段 object 代理 [] ger 編程 調用 加載器 bsp AOP 即 Aspect Oriental Program 面向切面編程 先來一個栗子: <aop:config> <aop:pointcut id="

PPP的兩種配置方法(pap和chap)

pap chapPAP的配置R1上的配置[R1]int s4/0/0[R1-Serial4/0/0]ppp authentication-mode pap[R1-Serial4/0/0]q[R1]aaa[R1-aaa]local-user huawei password cipher 123456Info:

mongodb切片配置方法

-s 查看 conf init collect 架構圖 切片 創建索引 () ---------------------------------切片架構圖------------------------------------------------------------

cmake安裝mysql及多實例配置方法

end transacti per 企業 erro mysql con 初始 root 一、安裝mysql 1、 生產環境如何選擇MySQL版本 1. 選擇社區版的穩定GA版本2. 可以選擇5.1或5.5.互聯網公司主流5.5, 其次是5.1和5.63. 選擇發布後6個月以

Spring-boot之jQuery File Upload後臺配置方法

文件上傳 query jquer highlight origin exc exist int alt 文件上傳在Spring-boot中本身配置起來非常簡單,但是有個多文件傳遞和單個傳遞的問題。 兩者配置是略有不同的,而且還有一些讓我這個技術小白很容易踩坑的地方。 重

mysql-5.7.13-winx64 免安裝版配置方法

comm 免密 install 免密碼登錄 命令 logs detail itl target 1.下載MySQL Community Server 5.7.13 解壓MySQL壓縮包 2.修改 my-default.ini skip-grant-

Spring+Quartz實現定時任務的配置方法

detail 包含 範例 empty beans ref tail 可選 creat 1、Scheduler的配置 <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"&g