当前位置:   article > 正文

Hive集群安装(3个节点)-基于Hadoop_hive有多少节点

hive有多少节点

接我上一篇文章《Hadoop集群安装(3个节点)》,写上篇文章以及本篇文章的原因:使用NiFi解决两个需求,

需求一:导出MySQL数据转换为Json串并保存到本地

需求二:导出Hive数据转换为csv并保存到HDFS

需求一还是很容易实现的,只需要安装NiFi(下篇文件介绍安装&使用)、MySQL就可以实现了。

由于是在外做项目(青岛RRS物流),没有在公司那么方便,虽然公司也有机房,有环境,但是资源比较紧张,我就在自己的移动硬盘上安装了3个节点

在做需求二时,发现新搭建的虚拟机集群,只是简易的安装了jdk、NiFi、MySQL,其他的没有了,不具备实现需求二的环境,所以就在3个节点上安装Hadoop集群、hive集群。

下面不废话了,开始介绍hive的安装,顺带介绍一下MySQL的安装

1. 安装hive

安装在hadoop的namenode上(也就是主节点上:node4上),上传安装文件到(可以根据自己的环境,目录可以自定义)/opt/software/apache-hive-2.1.0-bin.tar.gz

解压:

tar –zxvf apache-hive-2.1.0-bin.tar.gz

添加到环境变量

  1. vi /etc/profile
  2. 编辑
  3. #hive
  4. export HIVE_HOME=/opt/module/hive/apache-hive-2.1.0-bin
  5. export PATH=$PATH:$HIVE_HOME/bin
  6. 保存后使其生效:
  7. source /etc/profile

2. 安装MySQL

安装mysql作为hive的Metastore(主节点安装即可

为了yum顺利进行,配置/etc/resolv.conf,删除原来的nameserver,添加

  1. nameserver 192.168.1.1
  2. nameserver 114.114.114.114

安装perl和numactl

  1. yum install -y perl
  2. yum install -y numactl

卸载已有的mysql-libs

  1. rpm -qa | grep mysql
  2. rpm -qa | grep maria
  3. rpm -e --nodeps 【包名】

上传mysql的jar包:rz

解压:

tar xvf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar -C /opt/module/mysql/

因为这里不是”.tar.gz”文件,所以使用参数“xvf”,如果是”.tar.gz”文件,使用“zxvf”

rpm安装mysql

  1. rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm
  2. rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm
  3. rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm
  4. rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm

如果在rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm这一步报错:

(可能是因为我在VMware安装的是最小化版本,所以很多工具没有,需要自己下载)

[root@node4 mysql]# rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm

警告:mysql-community-server-5.7.21-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY

错误:依赖检测失败:

       net-tools 被 mysql-community-server-5.7.21-1.el7.x86_64 需要

下载net-tools即可:

[root@node4 mysql]# yum install net-tools

再次rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm即可成功:

设置开机启动

chkconfig mysqld on

启动mysql服务

service mysqld start

关闭密码校验

echo "validate_password=off" >> /etc/my.cnf

重启mysql服务

service mysqld restart

查看root的初始密码

cat /var/log/mysqld.log | more | grep password

修改 mysql root密码

mysql -uroot -p[查看得到的密码]

  1. [root@localhost ~]# mysql -uroot -p
  2. Enter password:
  3. Welcome to the MySQL monitor.  Commands end with ; or \g.
  4. Your MySQL connection id is 4
  5. Server version: 5.7.21
  6. Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
  7. Oracle is a registered trademark of Oracle Corporation and/or its
  8. affiliates. Other names may be trademarks of their respective
  9. owners.
  10. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  11. mysql> set password='123qwe';
  12. Query OK, 0 rows affected (0.00 sec)
  13. mysql> exit
  14. Bye

mysql默认不可以远程访问,设置远程访问

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;

上面这句远程访问不需要密码,如果需要密码使用下面这句

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123qwe' WITH GRANT OPTION;

使权限生效:

FLUSH PRIVILEGES;

3. 配置hive

1. 在hdfs中新建目录/user/hive/warehouse

  1. hdfs dfs -mkdir /tmp
  2. hdfs dfs -mkdir /user
  3. hdfs dfs -mkdir /user/hive
  4. hdfs dfs -mkdir /user/hive/warehouse
  5. hadoop fs -chmod g+w /tmp
  6. hadoop fs -chmod g+w /user/hive/warehouse

将mysql的驱动jar包mysql-connector-java-5.1.47-bin.jar拷入hive的lib目录下面: /opt/module/hive/apache-hive-2.1.0-bin/lib/ mysql-connector-java-5.1.47.jar

2. 进入hive的conf目录下面复制一下hive-default.xml.template名子命名为:hive-site.xml

  1. cp hive-default.xml.template hive-site.xml
  2. vim hive-site.xml
  3. (1)、<property>
  4.     <name>javax.jdo.option.ConnectionURL</name>
  5.     <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
  6.     <description>JDBC connect string for a JDBC metastore</description>
  7.   </property>
  8. (2)、<property>
  9.     <name>javax.jdo.option.ConnectionDriverName</name>
  10.     <value>com.mysql.jdbc.Driver</value>
  11.     <description>Driver class name for a JDBC metastore</description>
  12.   </property>
  13. (3)、<property>
  14.     <name>javax.jdo.option.ConnectionUserName</name>
  15.     <value>root</value>
  16.     <description>Username to use against metastore database</description>
  17.   </property>
  18. (4)、 <property>
  19.     <name>javax.jdo.option.ConnectionPassword</name>
  20.     <value>123qwe</value>
  21.     <description>password to use against metastore database</description>
  22.   </property>
  23. (5)、<property>
  24.     <name>hive.exec.local.scratchdir</name>
  25.     <value>/opt/module/hive/apache-hive-2.1.0-bin /tmp</value>
  26.     <description>Local scratch space for Hive jobs</description>
  27.   </property>
  28.  (6)、<property>
  29.     <name>hive.downloaded.resources.dir</name>
  30.     <value>/opt/module/hive/apache-hive-2.1.0-bin /tmp/resources</value>
  31.     <description>Temporary local directory for added resources in the remote file system.</description>
  32.   </property>
  33.  (7)、<property>
  34.     <name>hive.querylog.location</name>
  35.     <value>/opt/module/hive/apache-hive-2.1.0-bin /tmp</value>
  36.     <description>Location of Hive run time structured log file</description>
  37.   </property>
  38. (8)、<property>
  39.     <name>hive.server2.logging.operation.log.location</name>
  40.     <value>/opt/module/hive/apache-hive-2.1.0-bin/tmp/operation_logs</value>
  41.     <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
  42.   </property>

3. 复制hive文件到node5、node6节点:

  1. scp –r /opt/module/hive/ node5:/opt/module/
  2. scp –r /opt/module/hive/ node6:/opt/module/

4. 在node4上使用schematool 初始化metastore的schema:

schematool -initSchema -dbType mysql

5. 运行hive

[root@node4 mysql]# hive

mysql/hive字符集问题:hive中文乱码

  1. alter database hive character set latin1;
  2. set character_set_client=latin1;

也可以使用beeline命令,以后有时间再做介绍。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/519331
推荐阅读
相关标签
  

闽ICP备14008679号