Hive-2.1.1+Hue-4.6+HBase-2.2.6搭建

前提要有Hadoop环境,可以看我上一篇《Apache hadoop 2.7.7 搭建》
https://blog.csdn.net/Beginner_G/article/details/115935972

Apache Hive搭建

环境

Hive下载路径
http://archive.apache.org/dist/hive/hive-2.1.1/

用到的包:
apache-hive-2.1.1-bin.tar.gz	#主程序安装包
apache-hive-2.1.1-src.tar.gz	#Hwi Web管理安装包
apache-ant-1.9.15-bin.tar.gz	#Ant是用来编译Hwi Web UI内部
mysql-connector-java-8.0.23.jar	#jar依赖包

apt-get安装mysql-server

ip、节点名、环境:
192.168.0.97 192-168-0-97	Ubuntu 16.04.7 LTS

1、配置Mysql数据库

在192.168.0.97节点上搭建

#命令1 更新源
sudo apt-get update
#命令2 安装mysql服务
sudo apt-get install mysql-server
#初始化数据库
sudo mysql_secure_installation
选择N ,不会进行密码的强校验
输入密码 
再次输入密码
选择N,不删除匿名用户
选择N,允许root远程连接
选择N,不删除test数据库
选择Y,修改权限立即生效

#开启远程访问
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf #找到 bind-address 修改值为 0.0.0.0(如果需要远程访问)
sudo systemctl restart mysql	

#进入mysql修改规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root密码';		#使用mysql_native_password修改加密规则

mysql> UPDATE user SET host = '%' WHERE user = 'root';	#开启远程访问

mysql> flush privileges;	#刷新cache中配置 刷新权限
mysql> exit

2、配置Hive

#解压、分配目录
cd /opt
sudo tar -zxvf /opt/apache-hive-2.1.1-bin.tar.gz .
sudo mv apache-hive-2.1.1-bin /data/hadoop/hive

#添加环境变量
sudo vim /etc/profile 
#Hive
export HIVE_HOME=/data/hadoop/hive
export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile

#创建hive-site.xml
cd /data/hadoop/hive/conf/
sudo vim hive-site.xml

写入以下:

<configuration>
<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
     <description>
          Enforce metastore schema version consistency.
          True: Verify that version information stored in metastore matches with one from Hive jars.  Also disable automatic
          schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures
          proper metastore schema migration. (Default)
          False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
      </description>
    </property>

    <!-- 存储在hdfs上的数据路径,需要创建 -->
    <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>
  <property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive</value>
    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
  </property>

    <!-- 本地mysql -->
  <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://localhost:3306/hive</value>
                <description>JDBC connect string for a JDBC metastore</description>
                <!-- 如果 mysql 和 hive 不在同一个服务器节点,那么请更改 localhost 为 hadoop02 -->
        </property>
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.cj.jdbc.Driver</value>
                <description>Driver class name for a JDBC metastore</description>
        </property>
        <property>
            	<!-- 底下两对 value 中间写上 mysql 的用户名与密码 -->
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
                <description>username to use against metastore database</description>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>密码</value>
        <description>password to use against metastore database</description>
        </property>
</configuration>

注意不同版本的数据库对应不同数据库的驱动类名称
新版本8.0版本的驱动为com.mysql.cj.jdbc.Driver
旧版本5.x版本的驱动为com.mysql.jdbc.Driver

#在hadoop上创建两个对应目录并赋予权限(hadoop需运行)
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir -p /tmp/hive
hadoop fs -chmod -R 777 /user/hive/warehouse
hadoop fs -chmod -R 777 /tmp/hive
hadoop fs -ls /

#配置hive-env.sh文件
cd /data/hadoop/hive/conf/
sudo cp hive-env.sh.template hive-env.sh
sudo vim hive-env.sh	#加入以下路径
...
export HADOOP_HOME=/data/hadoop/hadoop	#HADOOP_HOME路径
export HIVE_CONF_DIR=/data/hadoop/hive/conf	#HIVE_CONF_DIR路径

#将JDBC的jar包拷贝在/data/hadoop/hive/lib
cd /opt
tar zxvf mysql-connector-java-8.0.23.tar.gz
sudo cp mysql-connector-java-8.0.23/mysql-connector-java-8.0.23.jar  /data/hadoop/hive/lib/

#执行Hive与mysql初始化
schematool -dbType mysql -initSchema
schematool -dbType mysql -info
hive
hive --service hiveserver2 &
#进入 mysql 可以看到新的数据库 myhive ,该数据库底下57个表

3、Hwi Web配置

#解压apache-hive-2.1.1-src.tar.gz
sudo tar -zxvf apache-hive-2.1.1-src.tar.gz

sudo -i		#root权限
cd /opt/apache-hive-2.1.1-src/hwi/web
jar -cvf hive-hwi-2.1.1.war *		#打包目录所有为hive-hwi-2.1.1.war
mv hive-hwi-2.1.1.war  /data/hadoop/hive/lib/

sudo cp /data/hadoop/jdk-8/lib/tools.jar  /data/hadoop/hive/lib/


#修改hive-site.xml
sudo vim /data/hadoop/hive/conf/hive-site.xml

末尾加入:

    <!-- 配置hwi web管理 --> 
    <!--监听主机ip 192.168.0.97 -->
<property>
        <name>hive.hwi.listen.host</name>
        <value>192.168.0.97</value>
</property>
        <!-- 监听端口 -->
<property>
        <name>hive.hwi.listen.port</name>
        <value>9999</value>
</property>
        <!--war文件的目录-->
<property>
        <name>hive.hwi.war.file</name>
        <value>lib/hive-hwi-2.1.1.war</value>
</property>

4、Ant 配置

#解压apache-ant-1.9.15-bin.tar.gz
cd /opt
tar -zxvf apache-ant-1.9.15-bin.tar.gz
sudo mv apache-ant-1.9.15 /data/hadoop/ant

#配置环境变量
sudo vim /etc/profile	#末尾加入
#Ant
export ANT_HOME=/data/hadoop/ant
export PATH=$PATH:$ANT_HOME/bin

source /etc/profile
ant -version

#运行Hwi 
hive --service hwi >/dev/null &

#URL打开验证 
http://192.168.0.97:9999/hwi

注:已完成Hive Web搭建,进入页面刷新5次,如果重装需要删除数据库myhive

Apache Hue搭建

环境

依赖包:
ant gcc g++ libkrb5-dev libffi-dev libmysqlclient-dev libssl-dev libsasl2-dev libsasl2-modules-gssapi-mit libsqlite3-dev libxml2-dev libxslt-dev make libldap2-dev python-dev python-setuptools libgmp3-dev npm

需要的tar包:
apache-maven-3.6.3-bin.tar.gz

官网下载hue:
https://docs.gethue.com/releases/release-notes-4.6.0/
#下载tar包名:hue-4.6.0.tgz

ip、节点名、环境:
192.168.0.97 192-168-0-97	Ubuntu 16.04.7 LTS

1、配置hue

#安装依赖包
sudo apt-get install ant gcc g++ libkrb5-dev libffi-dev libmysqlclient-dev libssl-dev libsasl2-dev libsasl2-modules-gssapi-mit libsqlite3-dev libxml2-dev libxslt-dev make libldap2-dev python-dev python-setuptools libgmp3-dev npm 

#升级npm到5.6.0版本
sudo npm -g install npm@5.6.0

#查看资料发现,可能需要增加--unsafe-perm,即
sudo npm install node-sass --unsafe-perm --save-dev

#配置maven
cd /opt
sudo tar -zxvf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3-bin /data/hadoop/hue/maven

#编译Hue (root)
cd /opt
tar -zxvf hue-4.6.0.tgz
cd hue-4.6.0
make apps	#安装时间很漫长,看设备性能和网络,安装无报错则为成功

#添加环境变量
sudo vim /etc/profile
#Hue Ui
export HUE_HOME=/data/hadoop/hue
export PATH=$PATH:$HUE_HOME/build/env/bin/

#Maven
export MAVEN_HOME=/data/hadoop/hue/maven
export PATH=$PATH:$MAVEN_HOME/bin

source /etc/profile

#进入mysql创建hue数据库
CREATE DATABASE hue;
GRANT ALL PRIVILEGES ON hue.* TO "hadoop"@"%" IDENTIFIED BY "168$Xiulian";
flush privileges; 

#编写配置文件
cd /data/hadoop/hue/desktop/conf
cp hue.ini hue.ini.bak
vim hue.ini

填写以下

[desktop]
  http_host=0.0.0.0				#也可以写本机ip
  http_port=8000				#web登录端口
  time_zone=Asia/Shanghai		#时间
  
  server_user=hadoop			#服务器用户
  server_group=hadoop			#服务器用户组
  default_user=hadoop			#默认用户
  default_hdfs_superuser=hadoop	#HDFS用户
  
  [[database]]
    # Database engine is typically one of:
    # postgresql_psycopg2, mysql, sqlite3 or oracle.
    #
    # Note that for sqlite3, 'name', below is a path to the filename. For other backends, it is the database name.
    # Note for Oracle, options={"threaded":true} must be set in order to avoid crashes.
    # Note for Oracle, you can use the Oracle Service Name by setting "host=" and "port=" and then "name=<host>:<port>/<service_name>".
    # Note for MariaDB use the 'mysql' engine.

    engine=mysql
    host=192.168.0.97
    port=3306
    user=hadoop
    password=168$Xiulian
    name=hue
    
    ## engine=sqlite3
    ## host=
    ## port=
    ## user=
    ## password=

[hadoop]
  [[hdfs_clusters]]		#根据hadoop的配置来
    [[[default]]]
      # Enter the filesystem uri
      fs_defaultfs=hdfs://192-168-0-97:9000

      # NameNode logical name.
      logical_name=192-168-0-97

      # Use WebHdfs/HttpFs as the communication mechanism.
      # Domain should be the NameNode or HttpFs host.
      # Default port is 14000 for HttpFs.
      webhdfs_url=http://192-168-0-97:50070/webhdfs/v1

      # Directory of the Hadoop configuration
      # 添加
      hadoop_conf_dir=/data/hadoop/hadoop/etc/hadoop
      hadoop_hdfs_home=/data/hadoop/hadoop/hdfs
      hadoop_bin=/data/hadoop/hadoop/bin

  [[yarn_clusters]]

    [[[default]]]
      # Enter the host on which you are running the ResourceManager
      resourcemanager_host=192-168-0-97

      # Whether to submit jobs to this cluster
      submit_to=True

      # URL of the ResourceManager API
      resourcemanager_api_url=http://192-168-0-97:18088

      # URL of the ProxyServer API
      proxy_api_url=http://192-168-0-97:18088

      # URL of the HistoryServer API
      history_server_api_url=http://192-168-0-97:19888

[beeswax]		#配置hive

  # Host where HiveServer2 is running.
  # If Kerberos security is enabled, use fully-qualified domain name (FQDN).
  hive_server_host=192-168-0-97

  # Port where HiveServer2 Thrift server runs on.
  hive_server_port=10000

  # Hive configuration directory, where hive-site.xml is located
  hive_conf_dir=/data/hadoop/hive/conf
  
  #避免hue页面告警 thrift_version 过高
  thrift_version=7

2、配置hadoop(所有节点)

①新增core-site.xml
sudo vim /data/hadoop/hadoop/etc/hadoop/core-site.xml

新增:新增ubuntu、hadoop、hue、httpfs、hdfs用户权限

<!-- 添加hue配置 -->
<property>
               <name>hadoop.proxyuser.ubuntu.hosts</name>
               <value>*</value>
</property>
<property>
               <name>hadoop.proxyuser.ubuntu.groups</name>
               <value>*</value>
</property>
<property>
               <name>hadoop.proxyuser.hadoop.hosts</name>
               <value>*</value>
</property>
<property>
               <name>hadoop.proxyuser.hadoop.groups</name>
               <value>*</value>
</property>
</property>
<property>
               <name>hadoop.proxyuser.hue.hosts</name>
               <value>*</value>
</property>
<property>
               <name>hadoop.proxyuser.hue.groups</name>
               <value>*</value>
</property>
<property>
               <name>hadoop.proxyuser.httpfs.hosts</name>
               <value>*</value>
</property>
<property>
               <name>hadoop.proxyuser.httpfs.groups</name>
               <value>*</value>
</property>
<property>
               <name>hadoop.proxyuser.hdfs.hosts</name>
               <value>*</value>
</property>
<property>
               <name>hadoop.proxyuser.hdfs.groups</name>
               <value>*</value>
</property>                 
②新增httpfs-site.xml
sudo vim /data/hadoop/hadoop/etc/hadoop/httpfs-site.xml
httpfs.sh start 	#配置完成启动

新增:

<configuration>
        <property>
               <name>httpfs.proxyuser.hue.hosts</name>
               <value>*</value>
        </property>
        <property>
               <name>httpfs.proxyuser.hue.groups</name>
               <value>*</value>
        </property>
</configuration>
③新增hdfs-site.xml
sudo vim /data/hadoop/hadoop/etc/hadoop/hdfs-site.xml

新增:hue上web管理hdfs

         <property>
                 <name>dfs.webhdfs.enabled</name>
                 <value>true</value>
         </property>
         <property>
                 <name>dfs.permissions</name>
                 <value>false</value>
         </property>

注:所有节点都添加。

3、启动hue

#转移初始化数据库
sudo /data/hadoop/hue/build/env/bin/hue syncdb --noinput 
sudo /data/hadoop/hue/build/env/bin/hue migrate

#启动
/data/hadoop/hue/build/env/bin/supervisor >/dev/null &
或者
supervisor >/dev/null &
信息:
如果显示安全模式可用,退出hadoop安全模式
hadoop dfsadmin -safemode leave

HBase搭建

我这里是单机版的,服务器数量的问题

环境:

tar包:
hbase-2.2.6-bin.tar.gz	#兼容hadoop2.1.0+

ip、节点名、环境:
192.168.0.97 192-168-0-97	Ubuntu 16.04.7 LTS

1、HBase数据库配置:

#解压并且移动目录
cd /opt
sudo tar -zxvf hbase-2.2.6-bin.tar.gz
sudo mv hbase-2.2.6 /data/hadoop/hbase

#添加环境变量
sudo vim /etc/profile
#写入以下
#HBase
export HBASE_HOME=/data/hadoop/hbase
export PATH=$PATH:$HBASE_HOME/bin

source /etc/profile


#配置文件修改
cd /data/hadoop/hbase/conf
sudo vim hbase-env.sh 
#写入以下
export JAVA_HOME=/data/hadoop/jdk-8/
export HBASE_HOME=/data/hadoop/hbase
export HBASE_CLASSPATH=/data/hadoop/hadoop/etc/hadoop
export HBASE_PID_DIR=/data/hadoop/hbase/pids
export HBASE_MANAGES_ZK=false


sudo vim hbase-site.xml

新增:

 <!-- 存储目录 这里的hdfs可以是单机版的-->
 <property>
  <name>hbase.root.dir</name>
  <value>hdfs://192-168-0-97:9000/hbase</value>
  <description>The directory shared byregion servers.</description>
 </property>
 <property>
  <name>hbase.tmp.dir</name>
  <value>/data/hadoop/hbase/tmp</value>
 </property>
 <!-- false是单机模式,true是分布式模式  -->
 <property>
  <name>hbase.cluster.distributed</name>
  <value>false</value>
 </property>
 <!-- zk主机地址和端口采用默认的,不用配置  -->

2、Hue配置HBase

sudo vim /data/hadoop/hue/desktop/conf/pseudo-distributed.ini
#写入
[hbase]
  hbase_clusters=(Cluster|192-168-0-97:9090)
  hbase_conf_dir=/data/hadoop/hbase/conf
  #Cluster Hue展现的名字;192-168-0-97:9090 hbase启动的thrift主机及端口

3、启动HBase

sudo chmod -R 775  /data/hadoop/hbase	#不加权限启动会报错
start-hbase.sh					#启动HBase
hbase-daemon.sh start thrift	#依赖:需要启动hdfs和hbase,启动thrift组件,启动后支持Hue的Web页面管理

4、测试

http://192.168.0.97:16010/		#HBase的Web页面

在这里插入图片描述

http://192.168.0.97:8000/		#也可以在hue上查看

Hive的管理页面
在这里插入图片描述
Hadoop的文档管理页面
在这里插入图片描述

HBase的管理页面
在这里插入图片描述

5、jps下的进程介绍

ubuntu@192-168-0-97:~# jps
19329 NameNode			#是Master节点,有点类似Linux里的根目录。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;
28641 RunJar			#hive的hiveserver2的进程,用于hue的Web交互
19604 SecondaryNameNode	#保存着NameNode的部分信息(不是全部信息NameNode宕掉之后恢复数据用),是NameNode的冷备份;合并fsimage和edits然后再发给namenode。(防止edits过大的一种解决方案)
11604 ThriftServer		#需要启动hdfs和hbase,才能启动thrift,用于hue的Web交互
13257 Jps				#java进程,用于给其它java的程序封装执行
19788 ResourceManager	#负责集群资源的统一管理和调度,监控我们的NM(NameNode)
11228 HMaster			#HBase的进程,确定运行状态
18157 Bootstrap			#httpfs的进程,用于hue上用户权限

ubuntu@192-168-0-192:~# jps
25857 Jps				#java进程,用于给其它java的程序封装执行
18138 DataNode			#负责存储client发来的数据块block;执行数据块的读写操作。是NameNode的节点。
18303 NodeManager		#NodeManager管理一个YARN集群中的每一个节点。比如监视资源使用情况( CPU,内存,硬盘,网络),跟踪节点健康等。

下一篇《hive & hue 中文乱码的问题》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值