AWS認定試験で必要な身分証明書

CertMetricsで管理されている。


とりあえず何か試験を選ぶ。
schedule.jpg

そうすると必要な身分証明書の一覧がでてくる。HTMLタグが崩れてるのはご愛敬か?
cert_list.jpg

AWS EMRのJupyterからHiveへアクセス

awsのEMRはマネージドで自分で構成要素の設定を行う必要はほぼありませんが、EMR起動時のJupyterを指定してもそのままでは、Jupyter NotebookからHiveにアクセスすることができません。
と、いうことで一番簡単であろうpyhiveを利用したアクセスの設定を。

手順としては、
1. jupyterhub dockerに必要なpkgをインストール
2. materノードのhost側(jupyter dockerでない)にpkgをインストール
3. materノードのhiveserver2の設定&再起動
4. pythonのコードからアクセス

1. jupyterhub dockerに必要なpkgをインストール

dockerのコンテナ名は「jupyterhub 」になってるので、まずdockerに入る。
$ sudo docker exec -i -t jupyterhub bash

次にpkgを入れる。jupyterhubのdockerはUbuntuなのでapt-getで。build-essentialを入れる理由は、thrift系のpkgを入れるときにC/C++系のbuildが走るため。OSに必要なもの入れた後は、pipでpyhiveを。
$ sudo apt-get update
$ sudo apt-get install build-essential libsasl2-dev
$ sudo pip install sasl thrift_sasl pyhive

2. materノードのhost側(jupyter dockerでない)にpkgをインストール

後で書きますが、一旦入れる。
$ sudo yum install cyrus-sasl cyrus-sasl-md5 cyrus-sasl-devel

3. materノードのhiveserver2の設定&再起動

hive-site.xmlに下記を追加。
<property>
  <name>hive.server2.authentication</name>
  <value>NOSASL</value>
</property>

HS2をリスタート。
$ sudo start hive-server2

4. pythonのコードからアクセス

import thrift, thrift_sasl
from pyhive import hive

conn = hive.Connection(
    host="masterのEC2のIPアドレス", port=10000, auth="NOSASL"
)
cursor = conn.cursor()
cursor.execute("クエリー")

print (str(cursor.fetchall()))

HS2の設定で、NOSASLを指定しているのに、pyhiveで接続する時にはsasl系のパッケージをmasterに入れないとダメな理由がわかりませんが、とりあえず接続できたのでOK。
kerberos等、他の認証方法を使う場合はそれに合わせてhive-site.xmlとpythonコードを修正する。
prestoに接続する場合は、
from pyhive import presto
cursor = presto.connect("masterのEC2のIPアドレス", port="8889", schema="hive").cursor()
cursor.execute("クエリー")
クエリーはとりあえず"show tables"とか、prestoなら"show schemas"とかで接続テストするといいかと。


カテゴリ

Amazon

アクセスランキング

[ジャンルランキング]
コンピュータ
226位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
37位
アクセスランキングを見る>>

RSSリンクの表示

QRコード

QRコード

サイトマップ

Copyright © nopgm