AWS EC2에 Hive 설치

8711 단어 hadoophivedatalake
전제 조건: AWS EC2에 sqoop을 설치하는 방법


홈 폴더로 이동
cd ~
다운로드 하이브
wget https://dlcdn.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
홈 폴더에서 추출
tar -xvf apache-hive-3.1.3-bin.tar.gz
/usr/lib 폴더로 이동하여 hive라는 폴더를 만듭니다.
sudo mkdir hive
추출된 폴더를 홈에서/usr/lib/hive로 이동합니다.
cd ~mv apache-hive-3.1.3-bin /usr/lib/hive
.bashrc에 HIVE_HOME 환경 변수 추가
sudo nano ~/.bashrc
다음을 추가하십시오
export HIVE_HOME=/usr/lib/hive/apache-hive-3.1.3-bin
그리고 PATH 변수를 다음과 같이 수정합니다.
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SQOOP_HOME/bin:$HIVE_HOME/bin
그리고 변수를 로드합니다.
source .bashrc
그런 다음 hadoop 파일 시스템에서 하이브용 폴더를 만들어야 합니다.
hdfs dfs -mkdir -p /bigdata/tmphdfs dfs -mkdir -p /bigdata/hive/warehouse
그런 다음 권한 부여
hdfs dfs -chmod g+w /bigdata/tmphdfs dfs -chmod g+w /bigdata/hive/warehouse
그런 다음 $HIVE_HOME/conf 폴더로 이동합니다.
cd $HIVE_HOME/conf
그런 다음 hive-env.sh 파일을 다음과 같이 편집합니다.
sudo nano hive-env.sh
export HIVE_CONF_DIR=/usr/lib/hive/apache-hive-3.1.3-bin/conf
export HADOOP_HOME=/usr/lib/hadoop/hadoop-2.9.0
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64


그런 다음 시스템에 mysql 서버가 없으면 설치하십시오.
sudo apt-get install mysql-server
그런 다음 'metastore'라는 데이터베이스를 만들고 그 안에 테이블을 채웁니다.

CREATE DATABASE metastore;

USE metastore;

SOURCE /usr/lib/hive/apache-hive-3.1.3-bin/scripts/metastore/upgrade/mysql/hive-schema-3.1.0.mysql.sql;


암호가 hivepassword인 hiveuser라는 사용자를 만듭니다.

CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword';

GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';

flush privileges;


하이브의 conf 디렉토리로 이동하여 hive-site.xml을 생성합니다.

cd $HIVE_HOME/conf

sudo nano hive-site.xml


그리고 다음 구성을 추가합니다.

<configuration> 
   <property> 
      <name>javax.jdo.option.ConnectionURL</name> 
      <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value> 
      <description>metadata is stored in a MySQL server</description> 
   </property> 
   <property> 
      <name>javax.jdo.option.ConnectionDriverName</name> 
      <value>com.mysql.jdbc.Driver</value> 
      <description>MySQL JDBC driver class</description> 
   </property> 
   <property> 
      <name>javax.jdo.option.ConnectionUserName</name> 
      <value>hiveuser</value> 
      <description>user name for connecting to mysql server</description> 
   </property> 
   <property> 
      <name>javax.jdo.option.ConnectionPassword</name> 
      <value>hivepassword</value> 
      <description>hivepassword for connecting to mysql server</description> 
   </property>
   <property> 
        <name>hive.metastore.warehouse.dir</name> 
        <value>/bigdata/hive/warehouse</value> 
        <description>location of default database for the warehouse</description> 
    </property> 
    <property> 
        <name>hive.metastore.uris</name> 
        <value>thrift://localhost:9083</value> 
        <description>Thrift URI for the remote metastore.</description> 
    </property> 
    <property> 
        <name>hive.server2.enable.doAs</name> 
        <value>false</value> 
    </property>
</configuration>


그런 다음 mysql 커넥터 8 jar를/usr/share/java/디렉토리에서 $HIVE_HOME/lib로 복사합니다.

cd  /usr/share/java/
cp mysql-connector-java-8.0.30.jar $HIVE_HOME/lib


하이브 명령을 입력하여 하이브가 작동하는지 확인
hiveexit;
그런 다음 이 명령으로 metastore 서비스를 시작합니다.
hive --service metastore
그런 다음 나중에 사용할 수 있도록 서비스를 만듭니다.
sudo nano /etc/systemd/system/hive-meta.service
다음을 추가하십시오

[Unit]
Description=Hive metastore
After=network.target

[Service]
User=ubuntu
Group=www-data
ExecStart=/usr/lib/hive/apache-hive-3.1.3-bin/bin/hive --service metastore

[Install]
WantedBy=multi-user.target


그런 다음 서비스를 시작하십시오.sudo systemctl start hive-meta
그런 다음 다음에 재부팅할 때 서비스가 자동으로 실행되도록 서비스를 활성화합니다.
sudo systemctl enable hive-meta
그런 다음 다음 명령을 사용하여 hdfs에서 sqoop에 의해 이전에 생성된 폴더를 제거합니다.
hdfs dfs -rm -r -f /user/ubuntu/hr_users
그런 다음 특종 가져오기를 다시 수행하십시오. 명령 끝에 --hive-import만 추가하면 됩니다.
sqoop import --connect jdbc:mysql://your_rds_dns_address/yourdatabase --table hr_users --username something --password 'something' --hive-import
그러면 default.hr_users 테이블을 하이브에 가져올 것입니다.
하이브 내부에서 확인할 수 있습니다.
hive
use default;
select * from hr_users limit 1;

좋은 웹페이지 즐겨찾기