2019年4月11日木曜日

Druid起動時エラー

  • このエントリーをはてなブックマークに追加


AmbariでDruidをインストールして起動すると以下のエラーが出力されます。

resource_management.core.exceptions.ExecutionFailed: Execution of '/usr/java/default/bin/java -cp /usr/lib/ambari-agent/DBConnectionVerification.jar:/usr/hdp/current/druid-historical/extensions/mysql-metadata-storage/mysql-connector-java-8.0.15-1.el7.noarch.rpm org.apache.ambari.server.DBConnectionVerification 'jdbc:mysql://localhost:3306/druid?createDatabaseIfNotExist=true' druid [PROTECTED] com.mysql.jdbc.Driver' returned 1. ERROR: Unable to connect to the DB. Please check DB connection properties.
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

mysql-connect jarが見つからないためのエラーです。

以下のようにambari-serverコマンド実行する

ambari-server setup --jdbc-db=mysql --jdbc-driver=<location where you downloaded mysql connector>



Evernote はあなたがすべてを記憶し、手間をかけずに整理できるようにお手伝いします。Evernote をダウンロードする

2019年4月10日水曜日

BeelineでHiveに接続する際のエラー

  • このエントリーをはてなブックマークに追加


KerberosされたHadoop環境でbeelineでHiveに接続するときのエラーと対処法をご紹介します。
beeline -u "jdbc:hive2://hostname:10000/default" で接続する
Error 1
ERROR org.apache.thrift.server.TThreadPoolServer: [HiveServer2-Handler-Pool: Thread-40]: Error occurred during processing of message.java.lang.RuntimeException: org.apache.thrift.transport.TTransportException: Unsupported mechanism type PLAIN

対処法
Kerberosされた環境で接続URLにprincipalを指定する必要がある。


beeline -u "jdbc:hive2://hostname:10000/default;principal=user1@HADOOP" で接続する

Error 2
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000/default;principal=user1@HADOOP: Kerberos principal should have 3 parts: user1@HADOOP (state=08S01,code=0)

対処法
principalにはuser/hostname@REALM User、Hostname、Realm3つのPartが必要

Error 3
Caused by: org.ietf.jgss.GSSException: No valid credentials provided (Mechanism level: Server not found in Kerberos database (7) - LOOKING_UP_SERVER)
Caused by: sun.security.krb5.KrbException: Server not found in Kerberos database (7) - LOOKING_UP_SERVER
Caused by: sun.security.krb5.Asn1Exception: Identifier doesn't match expected value (906)

対処法
principalには hive/hiveserver2_hostname@REALM のように、user HiveとHiveserver2のホスト名を指定することが必要
beeline -u "jdbc:hive2://192.168.10.154:10000/default;principal=hive/ip-192-168-10-154.ap-northeast-1.compute.internal@HADOOP"

参考
Evernote はあなたがすべてを記憶し、手間をかけずに整理できるようにお手伝いします。Evernote をダウンロードする

2018年12月28日金曜日

2018年振り返り

  • このエントリーをはてなブックマークに追加


--- ---

2018年振り返り

久しぶりにブログを書きます。
いろいろがあって(書く時間がないか、書くものがないか、書きたい気分ではないか、どっちもあると思います)、あまりかけてないのがこの一年半でした。

2018年はいろんな意味で有意義な一年になりました。

  • 大学卒業10年、来日も10年
    10年、長いか、短いか、どっちも言えますが、この10年特に大きな挫折がなく過ごしてきました。家庭、仕事、子供などなど。二、三年おきに大きなイベントありました。人生三分の一は日本にいます。こう考えると長いと感じています。
    これからも、おそらくずっと日本にいます。三分の一は二分の一、四分の三、という感じに変わっていくだろう。今後は自分どうなるかあまり想像していないが、未来より現在を大事にするのが今までのポリシーで、これからも変わらないと思います。むしろ変えたくないです。

  • サイバーエージェント退職しHortonworksに入社
    今まで、JBS、GMOクリック証券、CyberAgentで貴重な経験させていただきました。
    JBS時代は、主にMicrosoftサーバー製品(Windows Server[AD, DNS, File Server…], Exchange Server, SharePoint Server, Office 365, Hyper-V、System Center製品群などなど)をベースにしたソリューション設計、構築をやってました。社内向けのサポート、製品検証、ちょっとしたツール開発などもやりました。

    GMOクリック証券時代は、インフラエンジニアとして一年ちょっとくらいやってました。土曜にデータセンターでの作業が多かったです。ハードラッキング、OSいれて、ミドル入れて、開発に渡すみたいな感じでした。障害対応もチーム内でローテーションでやってました。アラートメールが来たときにドキドキ感が今でも覚えています。
    GMOの後半2年くらいは、開発やってました。Java、GoLang、Scala、PHPなどでいくつかプロジェクトやってました。海外のトレーディングシステムのコア部分のテストも経験しました。
    もう一つ重要なプロジェクトは社内のビッグデータ基盤の運用でした。HortonworksのHDPを使ってました。

    サイバーエージェント時代は、主に社内ビッグデータ基盤周りの開発と運用業務でした。プロトタイプのHadoopクラスタ管理ツール開発したり、Kuduによるファストデータ活用で、Kafka, Flume, Kudu, Prestoなどを検証し、本番導入したりしました。ClouderaのCDHを使ってました。

    そして縁があってHortonworksにSEとして入社しました。BigData関連のソリューションアーキテクトとして、お客さんに提案する立場になりました。いかに製品や技術をわかりやすい言葉でお客さんに紹介するか、実践しながらコツを掴んできています。最初は緊張やうまく表現できない部分もありましたが、じょじょに慣れてつまづいたときも臨機応変で対応できるようになりつつある。これからも更に進化していきたいと思います。
    来年はHortonworksは長年競争してきたClouderaと合併します。2強が一つになって、それぞれいいところ(製品など)をとって更に進化したプロダクトがリリースされることを期待しています。BigData、AI業界もますます盛り上がるのではないかと思っています。

  • 最後に来年三人目の子供が生まれる予定
    名前を考え中です。笑)

2018年の振り返り書きながら、過去10年みたいな振り返りになってしまいました。
過去の記憶や経験を思い出しながら、現在の毎日を大切にして、未来を迎えたいと思います。
今後もいいことがたくさんあるように。

2017年6月27日火曜日

CentOS Pamでケルベロス認証 グループ制限

  • このエントリーをはてなブックマークに追加


CentOS Pamでケルベロス認証 グループ制限 Pamでケルベロス認証のための設定をメモしておきます。
グループでログイン制御することもできます。
参考情報
https://www.linux.iastate.edu/content/using-pam-kerberos-authentication-and-group-access-control
/etc/pam.d/system-authのサンプル
testgroup以外のユーザーはログインできないようにする
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
# only allow auth for member of testgroup
auth        requisite    pam_succeed_if.so user ingroup testgroup
auth        requisite     pam_succeed_if.so uid >= 500 quiet
# for kerberos
auth        sufficient    pam_krb5.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
# for kerberos
account     [default=bad success=ok user_unknown=ignore] pam_krb5.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
# for kerberos
password    sufficient    pam_krb5.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
# for kerberos
session     optional      pam_krb5.so
グループ制御ではingroup, notingroupというのがあります。
ingroupはグループ内のユーザーしかログインできない
notingroupはグループに所属していないユーザーしかログインできない。

2017年6月15日木曜日

Hortonworks ODBCでHIVEServerに接続する設定手順

  • このエントリーをはてなブックマークに追加


HortonWorks ODBCでHIVEServerに接続する設定手順 ODBCでHIVEに接続する手順をメモしておきます。

HortonWorksサイトからODBCドライバーをダウンロード

https://jp.hortonworks.com/downloads/
Hortonworks ODBC Driver for Apache Hive (v2.1.7)

ODBCドライバーをインストール

 $ sudo rpm -ivh hive-odbc-native-2.1.7.1010-1.el6.x86_64.rpm

 インストール先確認
 $ ls /usr/lib/hive/lib/native

.odbc.iniを作成

 $ cd /usr/lib/hive/lib/native/Linux-amd64-64
 $ cat .odbc.ini
 ---------------------------------------------------------------
 [ODBC]

 [ODBC Data Sources]
 HIVE

 [HIVE]
 Driver=/usr/lib/hive/lib/native/Linux-amd64-64/libhortonworkshiveodbc64.so
 #環境ごとに変更
 HOST=srv.example.com
 PORT=10000
 Schema=
 ServiceDiscoveryMode=0
 ZKNamespace=
 HiveServerType=2
 #kerberos認証にするため、AuthMechを1に設定
 AuthMech=1
 ThriftTransport=1
 UseNativeQuery=0
 UID=hue
 #環境ごとに変更
 KrbHostFQDN=srv.example.com
 KrbServiceName=hive
 #環境ごとに変更
 KrbRealm=example.com
 SSL=0
 TwoWaySSL=0
 ClientCert=
 ClientPrivateKey=
 ClientPrivateKeyPassword=
 ---------------------------------------------------------------
 権限変更、しないとエラーが出る可能性があります。
 $ chmod 777 .odbc.ini
サンプルファイルは以下にあります。
 /usr/lib/hive/lib/native/hiveodbc/Setup/odbc.ini

環境変数設定

xport ODBCINI=/usr/lib/hive/lib/native/Linux-amd64-64/.odbc.ini
 or
/etc/profileにexport ODBCINI=/usr/lib/hive/lib/native/Linux-amd64-64/.odbc.ini を追加

参考Kerberos設定

$ cat /etc/krb5.conf
# Configuration snippets may be placed in this directory as well
#includedir /etc/krb5.conf.d/

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 30d
 renew_lifetime = 7d
 forwardable = true

# for One-Way Trust with Active Directory
 permitted_enctypes   = des-cbc-crc des-cbc-md5 arcfour-hmac aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha1-96
 udp_preference_limit = 1

[realms]
 EXAMPLE.COM = {
  kdc = or
hostname> admin_server = or hostname> } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM

ERROR

Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
  File "/tmp/hound/hound/tbx/hoover/_hoover_price.py", line 75, in fetch_hoover_price
    verbose=verbose
  File "/tmp/hound/hound/tbx/odbc/_odbc.py", line 55, in execute
    autocommit=True
pyodbc.Error: ('08001', '[08001] [unixODBC][Hortonworks][ODBC] (10380) Unable to establish a connection with data source. Missing settings: {[Host] [Port]} (10380) (SQLDriverConnect)')
  • 解決
    .odbc.iniファイルの権限を見直す 777にするとか