ハイブ2.0.1インストールの配備

環境:VMwareの11、Ubuntuの15.10、Hadoopの2.7.1

ハイブは、静的なバッチのHadoopに基づいて構築され、Hadoopが通常より長い待ち時間を持っており、ジョブの投入とスケジューリング時のオーバーヘッドの多くを必要とします。したがって、ハイブは、大きなデータセット上で低レイテンシの高速クエリには適していません。たとえば、オンライン・トランザクション処理(OLTP)。ハイブクエリ操作プロセスは、厳密にHadoopのMapReduceジョブの実行モデルを遵守し、ハイブは通訳、ジョブを実行し、ユーザにジョブの実行結果に戻るには、Hadoopの監視プロセスを通じてのHadoopクラスタのMapReduceジョブに提出し、ユーザーのHiveQL文を変換します。

ハイブは、大規模なデータセット、例えば、Webログ解析バッチジョブの最良の使用です。

ハイブは、デフォルトで組み込まれたことにより、使用されているダービーのデータベースが、データベースは、ファイルにアクセスすることができますので、他のリレーショナル・データベースの代わりに使用することが必要であるダービーここで、実証MysqlのPostgreSQLのインストールを。

1.1インストールのMysql

  1. ダウンロード:sudo apt-get install mysql-server mysql-client libmysqlclient-devインストールプロセスは、パスワードを入力するように求められます時に、入力することを忘れないでください。

ここでの説明を入力します。

  1. :インストールが成功したチェックsudo netstat -tap | grep mysqlに成功インストールした場合。

ここでの説明を入力します。

またはEnter sudo service mysql statusビュー:

ここでの説明を入力します。

  1. 使用するmysql -u root -pMySQLデータベースにログイン

    ON ALL権限を付与* * GRANT OPTION付き'ルート' @ '%'をTO;

    GRANT ON * * 'ROOT' @ '%'をGRANT OPTION付き'ROOTPASSWD BY' IDENTIFIED TO ALL PRIVILEGES;。
    此处%表示任意のホスト

  2. 作成==ハイブ== == ==ハイブデータベースとユーザー

    MySQLの使用
    ユーザINTO INSERT(ホスト、ユーザ、パスワード)の値(「%」、「ハイブ」、パスワード(「ハイブ」));すなわち、ユーザが//ホストは、MySQL%リモートアクセス時間を使用することができ

ここでの説明を入力します。

  1. 変更mysqld.cnf設定ファイルをsudo vim /etc/mysql/mysql.conf.d/mysqld.cnfbind-address = 127.0.0.1コメントアウトまたは修正bind-address=0.0.0.0再起動する必要がmysqlの:、sudo service mysql restartその後することができますリモートでアクセスmysqlの

    ここでの説明を入力します。
    見つけることができる、MySQLのプロセスのホストが変更されました

  2. シェルを使用してデータベースをログに記録するシステム・ユーザーを作成します

    sudo adduserのハイブ

ここでの説明を入力します。

ここでの説明を入力します。

  1. 完全に削除MySQLを

    APT-GET自動的削除-purgeはsudoのMySQL-サーバー
    sudoが、これは非常に重要です//共通の削除のMySQL-APT-GET
    のdpkg -l | grepを^ RC | awkの '{$ 2印刷}' | sudoをxargsのはdpkg -P // 残留データをクリーンアップ

PostgreSQLの1.2のインストール

  1. ダウンロードsudo apt-get install postgresl-9.4
  2. デフォルトのユーザーのログインを使用してsudo -u postgres psql postgres、Adminpackを作成します。CREATE EXTENSION adminpack;

ここでの説明を入力します。

  1. 使用password postgres、デフォルトのユーザーを設定する==のpostgres ==パスワード、利用q終了pgsqlのシェル:

ここでの説明を入力します。

  1. ==ハイブ==データベース:データベースユーザー==ハイブ==(ハイブパスワード)を作成します。

    -u -d -P PostgresのCREATEUSERハイブ-A sudoの
    ユーザ名をハイブに-O //最初のハイブをCREATEDBにsudo -u Postgresのハイブを

ここでの説明を入力します。

  1. シェルを使用してデータベースをログに記録するシステム・ユーザーを作成します

    sudo adduserのハイブ

    ここでの説明を入力します。

  2. 設定にpg_hba.confpostgresql.confのを

    南あなたは/etc/postgresql/9.4/main/pg_hba.conf
    あなたが/etc/postgresql/9.4/main/postgresql.conf南

    ここでの説明を入力します。
    192.168.8.0ローカルIPで、他の項目もに改正されなければならないのMD5検証

    ここでの説明を入力します。
    唯一、デフォルトではPostgreSQLのネイティブアクセス、設定したいのでlisten_addressをします*

    サービスを再起動し、完全に有効にする装備

    sudoのsystemctl再起動PostgreSQLの
    或者
    sudoのサービスPostgreSQLの再起動

参考:
http://www.unixmen.com/install-postgresql-9-4-and-phppgadmin-on-ubuntu-15-10/
https://help.ubuntu.com/lts/serverguide/mysql.html

2インストールハイブ

環境変数の設定:
ここでの説明を入力します。

2.1 MySQLの/ PostgreSQLのJDBCパッケージをダウンロード

http://dev.mysql.com/downloads/connector/j/
https://jdbc.postgresql.org/download.html
にドライバパッケージハイブここに示されたの== libに==ディレクトリは、あるMySQLの

2.2ハイブの設定

ハイブさん== confの==、次のファイルをコピーします。

CPハイブ-default.xml.templateハイブ-のsite.xml
CPハイブ-env.sh.template hive-env.sh

設定hive-env.sh

      
      
1
2
3
4
5
6
7
8
9
10
      
      
#設定HADOOP_HOMEは、特定のHadoopのインストールディレクトリを指すように
HADOOP_HOME =は/ usr / ローカル / Hadoopの
#ハイブ設定ディレクトリをすることによって制御することができます。
輸出 HIVE_CONF_DIR =は/ usr / ローカル /ハイブ/ confに
ハイブのコンパイル/実行に必要な追加ibrariesを含む#フォルダがで制御することができます。
輸出 HIVE_AUX_JARS_PATH =は/ usr / ローカル /ハイブ/ libに

コンフィギュレーション・ハイブ-site.xmlの
ハイブは、 2つのファイルがロードされたハイブ-default.xmlの、あるハイブ-のsite.xml異なる設定パラメータの2つのファイルが、場合、ファイルハイブは、ユーザーによって設定されますハイブ-site.xmlに勝ちます。だから我々はできる-site.xmlのをハイブのみ、次のパラメータを保持します

      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
      
      
xml version="1.0"?>
xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir </name>
<value>/user/hive/warehouse </value>
<description>location of default database for the warehouse </description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL </name>
<value>jdbc:mysql://node1:3306/hive?characterEncoding=UTF-8 </value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName </name>
<value>com.mysql.jdbc.Driver </value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName </name>
<value>hive </value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword </name>
<value>hive </value>
</property>
</configuration>

2.3 创建必要的目录

hdfs dfs -mkdir /user/
hdfs dfs -mkdir /user/hive/
hdfs dfs -mkdir /user/hive/warehouse
hdfs dfs -mkdir /tmp/
hdfs dfs -mkdir /tmp/hive
hdfs dfs -chmod 777 /user/hive/warehouse
hdfs dfs -chmod 777 /tmp/hive

记得修改文件夹权限,否则在JDBC访问时,可能会出现如下错误:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=anonymous, access=WRITE, inode=”/user/hive/warehouse/loginfo”:phoenix:supergroup:drwxr-xr-x

ここでの説明を入力します。
==loginfo==是使用JDBC创建的Hive表

2.3 启动

hive start

会抛出下面错误:
Exception in thread “main” java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType …) to create the schema. If needed, don’t forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)

由于Hive默认的是 Derby 数据库,所以先要初始化Hive:

      
      
1
2
3
4
      
      
schematool -dbType mysql -initSchema
# 如果初始化过其他类型数据库,先删除/tmp/{usr_name}/metastore_db 文件夹,否则地初始化失败
rm -R metastore_db

ここでの説明を入力します。

ここでの説明を入力します。

ここでの説明を入力します。

MysqlHive库里生成一些元数据表

ここでの説明を入力します。

JDBC接口

配置Hadoopcore-site.xml,以便允许匿名访问Hadoop

      
      
1
2
3
4
5
6
7
8
9
      
      
// 将phoenix替换为你需要的用户名即可
<property>
<name>hadoop.proxyuser.phoenix.hosts </name>
<value>* </value>
</property>
<property>
<name>hadoop.proxyuser.phoenix.groups </name>
<value>* </value>
</property>

否则会遇到如下错误:
org.apache.hadoop.ipc.RemoteException: User: phoenix is not allowed to impersonate anonymous

设置完成后需要重启hadoop,然后运行==hive/bin==下的hiveserver2

在Eclipse项目中的包如下图产,这些jar包可以在==hive/lib==目录下找到,==slf4j==这两个包可以在hadoop中找到:

ここでの説明を入力します。

测试类:

      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
      
      
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class {
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main(String[] args) throws SQLException {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.exit( 1);
}
Connection con = DriverManager.getConnection( "jdbc:hive2://master:10000/default", "", "");
Statement stmt = con.createStatement();
String tableName = "loginfo";
stmt.execute( "drop table if exists " + tableName);
stmt.execute( "create table " + tableName + " (key int, value string)");
System.out.println("テーブルの成功を作成!");
文字列のsql = "ショーのテーブル'" + tableNameの+ "'" ;
System.out.println("実行中:" + SQL)。
ResultSetのRES = stmt.executeQuery(SQL)。
もし (res.next()){
System.out.println(res.getString(1))。
}
}
}

参考:
https://www.shiyanlou.com/courses/document/766
http://blog.csdn.net/nengyu/article/details/51620760
http://www.cnblogs.com/linjiqin/archive/2013/ 03/04 / 2943025.html

オリジナル:ビッグボックス  ハイブ2.0.1インストールの配備


おすすめ

転載: www.cnblogs.com/petewell/p/11606839.html