{"id":852,"date":"2019-02-09T12:32:10","date_gmt":"2019-02-09T03:32:10","guid":{"rendered":"https:\/\/dong1lkim.oboki.net\/?p=852"},"modified":"2020-06-23T01:50:38","modified_gmt":"2020-06-22T16:50:38","slug":"hive-%ec%84%a4%ec%b9%98","status":"publish","type":"post","link":"https:\/\/oboki.net\/workspace\/data-engineering\/hadoop\/hive-%ec%84%a4%ec%b9%98\/","title":{"rendered":"[Hadoop] Hive \uc124\uce58"},"content":{"rendered":"<h1>Hive \uc124\uce58<\/h1>\n<blockquote><p>\n  Hive\ub97c \uc774\uc6a9\ud558\uba74 HDFS\uc5d0 \uc800\uc7a5\ub41c \ub370\uc774\ud130\ub97c HiveQL\uc774\ub77c\ub294 SQL-Like \uc5b8\uc5b4\ub85c \ucffc\ub9ac\ud560 \uc218 \uc788\ub2e4.\n<\/p><\/blockquote>\n<h2>\uc0ac\uc804 \uc900\ube44<\/h2>\n<h3>JDK<\/h3>\n<h3>Hadoop<\/h3>\n<p>Hadoop \ud30c\uc77c\uc2dc\uc2a4\ud15c\uc5d0 \ub370\uc774\ud130\ud30c\uc77c\uc744 \uc800\uc7a5\ud558\uae30 \ub54c\ubb38\uc5d0 \ud30c\uc77c \uc800\uc7a5\uc18c\ub85c\uc11c \ud558\ub461\uc774 \ud544\uc218\uc801\uc774\uace0, Hive\uac00 \uc124\uce58\ub418\ub294 \uc11c\ubc84\uc5d0 Hadoop Client\uac00 \uc124\uce58\ub3fc \uc788\uc5b4\uc57c \ud55c\ub2e4. (Hadoop \uc11c\ubc84\uc758 \ub514\ub809\ud1a0\ub9ac\ub97c \ud1b5\ucc44\ub85c \ubcf5\uc0ac\ud574\ub193\uc73c\uba74 \ub41c\ub2e4.) \ucc38\uace0 : <a href=\"https:\/\/oboki.net\/workspace\/bigdata\/hadoop\/%EA%B0%80%EC%9A%A9%EC%84%B1%EC%9D%84-%EA%B3%A0%EB%A0%A4%ED%95%9C-hadoop-2-x-cluster-%EC%84%A4%EC%B9%98\/\">Hadoop \uc124\uce58<\/a><\/p>\n<h3>MySQL<\/h3>\n<p>metastore db\ub85c mysql\uc744 \uc774\uc6a9\ud558\uae30 \uc704\ud574 \uc0ac\uc804\uc5d0 \uc124\uce58\uac00 \ub3fc \uc788\uc5b4\uc57c \ud55c\ub2e4. \ucc38\uace0 : <a href=\"https:\/\/oboki.net\/workspace\/database\/mysql\/mysql-mysql-%EC%84%A4%EC%B9%98\/\">mysql \uc124\uce58<\/a><\/p>\n<p>\uc5ec\uae30\uc5d0\uc11c\ub294 \uc124\uce58\ub41c mysql \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc544\ub798\uc640 \uac19\uc740 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \uc0ac\uc6a9\uc790\ub97c \uc0dd\uc131\ud574\uc11c \uc774\uc6a9\ud55c\ub2e4.<\/p>\n<pre><code class=\"sql\">create database hive;\ncreate user hive@localhost identified by 'hive';\ngrant all privileges on hive.* to hive@localhost;\n<\/code><\/pre>\n<h2>Hive \uc124\uce58<\/h2>\n<h3>hive \uc2dc\uc2a4\ud15c \uc720\uc800 profile<\/h3>\n<p><code>vi ~\/.bash_profile<\/code><\/p>\n<pre><code class=\"bash\"># Hive\nexport JAVA_HOME=\/app\/jdk\nexport HIVE_HOME=\/app\/hive\nexport PATH=$JAVA_HOME\/bin:$HIVE_HOME\/bin:$PATH\n<\/code><\/pre>\n<h3>\ubc14\uc774\ub108\ub9ac \ub2e4\uc6b4\ub85c\ub4dc \ubc0f \uacbd\ub85c \uc124\uc815<\/h3>\n<pre><code class=\"bash\">wget https:\/\/archive.apache.org\/dist\/hive\/hive-2.3.0\/apache-hive-2.3.0-bin.tar.gz\ntar -xvzf apache-hive-2.3.0-bin.tar.gz -C \/app\/hive\/.\nmv \/app\/hive\/apache-hive-2.3.0-bin \/app\/hive\/2.3.0\nfind \/app\/hive\/2.3.0 -mindepth 1 -maxdepth 1 -type d | xargs -I {} ln -s {} \/app\/hive\/.\n<\/code><\/pre>\n<h3>Hive \uc124\uc815 \ud30c\uc77c \uc218\uc815<\/h3>\n<p><code>cd \/app\/hive\/conf; cp hive-env.sh.template hive-env.sh<\/code><\/p>\n<h4>hive-env.sh<\/h4>\n<p><code>vi hive-env.sh<\/code><\/p>\n<p>Hadoop \uc124\uc815 \ud30c\uc77c\uc774 \uc788\ub294 \uacbd\ub85c\ub85c \uc218\uc815\ud574\uc900\ub2e4.<\/p>\n<pre><code class=\"conf\">HADOOP_HOME=\/app\/hadoop\n<\/code><\/pre>\n<h4>hive-site.xml<\/h4>\n<p><code>vi hive-site.xml<\/code> \ud30c\uc77c\uc744 \uc0c8\ub85c \uc0dd\uc131\ud558\uc5ec \uc544\ub798\uc640 \uac19\uc774 \uc124\uc815\ud55c\ub2e4.<\/p>\n<pre><code class=\"xml\">&lt;configuration&gt;\n        &lt;property&gt;\n                &lt;name&gt;hive.metastore.local&lt;\/name&gt;\n                &lt;value&gt;false&lt;\/value&gt;\n        &lt;\/property&gt;\n        &lt;property&gt;\n                &lt;name&gt;javax.jdo.option.ConnectionURL&lt;\/name&gt;\n                &lt;value&gt;jdbc:mysql:\/\/localhost:3306\/hive?createDatabaseifNotExist=true&amp;useSSL=false&lt;\/value&gt;\n        &lt;\/property&gt;\n        &lt;property&gt;\n                &lt;name&gt;javax.jdo.option.ConnectionDriverName&lt;\/name&gt;\n                &lt;value&gt;com.mysql.jdbc.Driver&lt;\/value&gt;\n        &lt;\/property&gt;\n        &lt;property&gt;\n                &lt;name&gt;javax.jdo.option.ConnectionUserName&lt;\/name&gt;\n                &lt;value&gt;hive&lt;\/value&gt;\n        &lt;\/property&gt;\n        &lt;property&gt;\n                &lt;name&gt;javax.jdo.option.ConnectionPassword&lt;\/name&gt;\n                &lt;value&gt;hive&lt;\/value&gt;\n        &lt;\/property&gt;\n        &lt;property&gt;\n                &lt;name&gt;hive.metastore.urls&lt;\/name&gt;\n                &lt;value&gt;thrift:\/\/node5.dat:10000&lt;\/value&gt;\n        &lt;\/property&gt;\n&lt;\/configuration&gt;\n<\/code><\/pre>\n<ul>\n<li>&amp;useSSL=false\n<ul>\n<li>mysql \uc811\uc18d\uc2dc\uc5d0 SSL \uc0ac\uc6a9 \ud558\uc9c0 \uc54a\ub3c4\ub85d \uc9c0\uc815\ud55c\ub2e4.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>mysql driver<\/h3>\n<p>\uae30\ubcf8\uc801\uc73c\ub85c jdbc \ub4dc\ub77c\uc774\ubc84\uac00 \ud3ec\ud568\ub3fc \uc788\uc9c0 \uc54a\uc73c\ubbc0\ub85c \uc544\ub798 URL\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc\ud55c \ub4a4 \uc5c5\ub85c\ub4dc\ud55c\ub2e4. \uc624\ub77c\ud074\ub85c \ub118\uc5b4\uac00\uace0\ub098\uc11c\ubd80\ud130 \ubc14\ub85c \ub2e4\uc6b4\ub85c\ub4dc\uac00 \uc548 \ub418\ub294\ub4ef.<\/p>\n<p><a href=\"https:\/\/dev.mysql.com\/downloads\/connector\/j\/5.1.html\">https:\/\/dev.mysql.com\/downloads\/connector\/j\/5.1.html<\/a><\/p>\n<p>\ub2e4\uc6b4\ub85c\ub4dc \ud55c jdbc driver\ub97c <code>$HIVE_HOME\/lib<\/code> \uacbd\ub85c\uc5d0 \uc704\uce58\uc2dc\ud0a8\ub2e4.<\/p>\n<pre><code class=\"bash\">mv mysql-connector-java.jar \/app\/hive\/lib\/.\n<\/code><\/pre>\n<h3>metastore \uc2a4\ud0a4\ub9c8 \uc0dd\uc131.<\/h3>\n<p>\ub2e4\uc74c \uba85\ub839\uc73c\ub85c mysql\uc5d0 \uae30\ubcf8 \uc2a4\ud0a4\ub9c8\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/p>\n<p><code>schematool -initSchema -dbType mysql --verbose<\/code><\/p>\n<h2>Hive \uae30\ub3d9<\/h2>\n<p>\uba3c\uc800 hiveserver2 \ub97c \uc2e4\ud589\ud558\uace0,<\/p>\n<p><code>hive --service hiveserver2 &amp;<\/code><\/p>\n<p>metastore\ub97c \uc2e4\ud589\ud558\uba74 \ub05d.<\/p>\n<p><code>hive --service metastore &amp;<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hive \uc124\uce58 Hive\ub97c \uc774\uc6a9\ud558\uba74 HDFS\uc5d0 \uc800\uc7a5\ub41c \ub370\uc774\ud130\ub97c HiveQL\uc774\ub77c\ub294 SQL-Like \uc5b8\uc5b4\ub85c \ucffc\ub9ac\ud560 \uc218 \uc788\ub2e4. \uc0ac\uc804 \uc900\ube44 JDK Hadoop Hadoop \ud30c\uc77c\uc2dc\uc2a4\ud15c\uc5d0 \ub370\uc774\ud130\ud30c\uc77c\uc744 \uc800\uc7a5\ud558\uae30 \ub54c\ubb38\uc5d0 \ud30c\uc77c \uc800\uc7a5\uc18c\ub85c\uc11c \ud558\ub461\uc774 \ud544\uc218\uc801\uc774\uace0, Hive\uac00 \uc124\uce58\ub418\ub294 \uc11c\ubc84\uc5d0 Hadoop Client\uac00 \uc124\uce58\ub3fc \uc788\uc5b4\uc57c \ud55c\ub2e4. (Hadoop \uc11c\ubc84\uc758 \ub514\ub809\ud1a0\ub9ac\ub97c \ud1b5\ucc44\ub85c \ubcf5\uc0ac\ud574\ub193\uc73c\uba74 \ub41c\ub2e4.) \ucc38\uace0 : Hadoop \uc124\uce58 MySQL metastore db\ub85c mysql\uc744 \uc774\uc6a9\ud558\uae30 \uc704\ud574 \uc0ac\uc804\uc5d0 \uc124\uce58\uac00 \ub3fc \uc788\uc5b4\uc57c \ud55c\ub2e4. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71],"tags":[98,101,50],"class_list":["post-852","post","type-post","status-publish","format-standard","hentry","category-hadoop","tag-hadoop","tag-hive","tag-50"],"_links":{"self":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/comments?post=852"}],"version-history":[{"count":2,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/852\/revisions"}],"predecessor-version":[{"id":1355,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/852\/revisions\/1355"}],"wp:attachment":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/media?parent=852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/categories?post=852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/tags?post=852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}