当前位置:   article > 正文

hadoop伪分布平台hive搭建_hadoop伪分布式hive

hadoop伪分布式hive
  • 版本信息:
  •                   linux 版本: Centos 6.5
  •                   hadoop版本:hadoop 2.7.3
  •                   jkd版本: jdk 1.8

一、配置linux系统:

       -》修改网卡文件
        - vi /etc/sysconfig/network-scripts/ifcfg-eth0
          vi /etc/sysconfig/network-scripts/ifcfg-ens33(centos 7)
            - ONBOOT=yes 表示开机自动启动网卡服务
            - BOOTPROTO=static    静态IP
            - IPADDR=192.168.109.12
            - NETMASK=255.255.255.0
            - DNS1=192.168.109.2
            - GATEWAY=192.168.109.2
        - 保存按住shift + zz
        - 重启网卡服务
            - service network restart
              systemctl restart network (centos 7)
    -》修改主机名文件
        - vi /etc/sysconfig/network
          vi /etc/hostname(centos7)
    -》配置ip映射
        - vi /etc/hosts

    -》用root用户创建一个普通用户,利用命令:  visudo   将用户添加到 sudo 列表中
    -》配置完以上信息使用reboot命令重启一下
    -》windows的hosts也要做一下ip映射

二、安装JDK:

    -》检查系统是否自带了oracle jdk,如果带了就删除掉
        - rpm -qa | grep 'java'    查询centos安装了哪些rpm软件包
        - rpm -e --nodeps ...        卸载rpm包,--nodeps是卸载的时候不考虑依赖
        - rpm -ivh    软件包的路径    安装rpm包
    -》sudo yum install -y lrzsz    安装上传下载工具,方便windows和linux之间的文件传输
                  -》使用rz命令把windows上的jdk软件包上传到linux系统
                  -》使用tar -zxvf jdk-8u151-linux-x64.tar.gz -C /opt/modules命令解压安装包
                  -》使用vi /etc/profile命令编辑这个文件,修改内容如下:
                       export JAVA_HOME=/opt/modules/jdk1.8.0_151
                       export PATH=$PATH:$JAVA_HOME/bin
                  -》使用shift + zz保存并退出 profile文件
                  -》使用source /etc/profile命令使profile文件生效


    -》使用java -version命令验证,如果显示如下,说明配置成功:
        java version "1.8.0_151"
        Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
        Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

三、安装hadoop平台:

    1、安装hadoop平台与HDFS分布式系统:

            1、解压Hadoop到指定目录下
                 tar -zxvf hadoop-2.5.0.tar.gz -C /opt/modules/

  
            2.     清理Hadoop的目录,将hadoop/share/doc目录删除,节省磁盘空间,通过这个命令查看df -h,第一次安装

                    不用考虑。
    
            3.     修改hadoop/etc/hadoop/hadoop-env.sh文件
                    修改hadoop/etc/hadoop/mapred-env.sh文件
                    修改hadoop/etc/hadoop/yarn-env.sh文件
                    指定Java安装路径
                    export JAVA_HOME=/opt/modules/jdk1.7.0_67         ---------------------- 根据自己的路径

            4.    注意:hadoop中的四个核心模块对应四个默认配置文件
                              指定默认的文件系统为HDFS,文件系统的访问入口,namenode所在的机器
                              9000端口是早期Hadoop 1.x使用的,现在Hadoop 2.x使用的是8020
                              端口号用于节点直接内部通信,使用RPC通信机制

            5.    在 /opt/modeules/hadoop   文件夹下创建 data/tmp 文件夹      ----------- HDFS的NameNode和

                    datanode的工作目录

                        修改hadoop/etc/hadoop/core-site.xml文件:
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://您的主机名:8020</value>
        </property>
        <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/modules/hadoop-2.7.3/data/tmp</value>         
        </property>


        
             6.    注意:/tmp表示临时存储目录,系统每次重启会按照脚本预先设置好的删除里面的文件
                              重新自定义系统生成的文件路径,/tmp会被清空,无法保证数据文件安全性
        
             7.    修改hadoop/etc/hadoop/hdfs-site.xml文件
                    指定HDFS文件存储的副本数个数,默认是3个,这里是单台机器就设置为1,这个数字要小于datanode的节点数
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>

             8.    修改hadoop/etc/hadoop/slaves文件
                     指定从节点的机器位置,添加主机名即可
                     hostname 比如本机名: coder

             9.    格式化namenode
                    bin/hdfs namenode -format     ----------- hadoop 文件夹下执行

 

             10.    启动命令
                     sbin/hadoop-daemon.sh start namenode
                     sbin/hadoop-daemon.sh start datanode

                     sbin/hadoop-daemon.sh start secondarynamenode

               11.    查看HDFS外部UI界面
                     bigdata-04或者IP地址 跟上50070端口号,外部通信http
                     dfs.namenode.http-address 50070

                    -------- 注意:如果无法打开 ?

                              请关闭 防火墙与防火墙的自启服务

               12.    测试HDFS环境
                     创建文件夹,HDFS中有用户主目录的概念,和Linux一样
                     bin/hdfs dfs -mkdir -p wordcount/iuput
         
                13.    上传文件到HDFS
                     bin/hdfs dfs -put etc/hadoop/core-site.xml /              ---------- 后面的  / 不能省略
        
                14.    读取HDFS的文件
                     bin/hdfs dfs -text /core-site.xml
        
                 15.    下载文件到本地(指定下载到哪里,同时可以重命名成get-site.xml)
                      bin/hdfs dfs -get /core-site.xml /home/beifeng/get-site.xml

    2、配置yarn资源管理器          

             1.    首先找到hadoop/etc/hadoop/mapred-site.xml.template文件,重名为mapred-site.xml
                    修改hadoop/etc/hadoop/mapred-site.xml文件
        
        <!--指定mapreduce程序运行在yarn平台上-->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>

            2.    修改hadoop/etc/hadoop/yarn-site.xml文件
    
        <!--指定启动运行mapreduce上的nodemanager的运行服务-->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    
        <!--指定resourcemanager主节点机器,可选项,不一定要配置,默认是本机,但是指定了之后在其他机器上启动,就会报错-->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>主机名</value>
        </property> 

           3.    启动yarn
        sbin/yarn-daemon.sh start resourcemanager
        sbin/yarn-daemon.sh start nodemanager 

   

         4、 查看yarn外部web界面
        bigdata-04或者IP地址 跟上8088端口号,外部通信http

                 例: http://ai07-server1:8088

 3、MapReduce  historyserver(历史服务)

  1. 1、历史服务器:查看已经运行完成的应用
  2. 修改mapred-site.xml
  3. 指定historyserver的地址,内部和外部通信端口号,如果不指定默认是本机
  4. historyserver是一个轻量级的服务,可以部署在任意一台节点上
  5. 2、配置(在mapred-site.xml中):
  6. 注意:这里的端口号不能随便修改
  7. <property>
  8. <name>mapreduce.jobhistory.address</name>
  9. <value>主机名:10020</value>
  10. </property>
  11. <property>
  12. <name>mapreduce.jobhistory.webapp.address</name>
  13. <value>主机名:19888</value>
  14. </property>
  15. 3、 重新启动 yarn 平台服务( 关闭 > 启动 )

 

     4、日志聚合功能

  1. 1.修改yarn-site.xml
  2. 指定开启聚合功能
  3. 指定日志存放在HDFS上的时间期限,一般建议3-7天左右,存放在HDFS的/tmp/logs/username之下
  4. <property>
  5. <name>yarn.log-aggregation-enable</name>
  6. <value>true</value>
  7. </property>
  8. <property>
  9. <name>yarn.log-aggregation.retain-seconds</name>
  10. <value>106800</value>
  11. </property>
  12. 2.重启yarn进程 sbin/yarn-daemon.sh .........
  13. 3.启动历史日志服务命令: sbin/mr-jobhistory-daemon.sh start historyserver

       5、取消HDFS权限检测功能:根据情况

  1. 取消HDFS权限检测功能:让HDFS所有的用户都能访问所有的HDFS文件,默认是 <value>true</value>
  2. 1.修改hdfs-site.xml
  3. <property>
  4. <name>dfs.permissions.enabled</name>
  5. <value>false</value>
  6. </property>

       6、ssh免密登陆:

                        https://blog.csdn.net/qq_16555103/article/details/87949563  ------------ 第二节

四、Hive的环境搭建与部署

  1. 1、必须要有Hadoop伪分布式环境
  2. 2、首先把hive的安装包上传到/opt/softwares/,并解压到/opt/modules/
  1. 3、复制一份 hive/conf目录 hive-env.sh.template文件,并重命名为 hive-env.sh,操作如下
  2. -》cp /etc/modules/hive-1.2.1-bin/conf/hive-env.sh.template /etc/modules/hive-1.2.1-bin/conf/hive-env.sh
  3. 4、配置hive-env.sh文件,内容如下:
  4. # Set HADOOP_HOME to point to a specific hadoop install directory
  5. HADOOP_HOME=/opt/modules/hadoop-2.7.3 # hadoop的目录路径
  6. # Hive Configuration Directory can be controlled by:
  7. export HIVE_CONF_DIR=/opt/modules/hive-1.2.1-bin/conf # hive配置文件目录 conf 路径

 

  1. 5、接下来在HDFS上创建2个目录,命令如下:
  2. 执行下面的命令,要启动下HDFS,使用命令:sbin/start-dfs.sh
  3. bin/hdfs dfs -mkdir /tmp -------- 目录已存在无需创建
  4. bin/hdfs dfs -mkdir -p /user/hive/warehouse --------- 创建Hive默认的工作目录
  5. 下面命令在赋予文件的用户组写权限
  6. bin/hdfs dfs -chmod -R g+w /tmp
  7. bin/hdfs dfs -chmod -R g+w /user/hive/warehouse
  8. 6、设置hive显示当前使用的数据库,并打印表头等相关信息
  9. 永久生效:
  10. 一、
  11. 1)进入hive安装目录的conf目录下,创建如下 .hiverc 隐藏文件。
  12. 2)编辑 .hiverc文件,输入如下命令:
  13. set hive.cli.print.current.db=true;
  14. set hive.cli.print.header=true;
  15. 3)重新启动 hive会话界面即可显示使用数据库名称 ,打印信息显示了相关字段。
  16. 二、本章后面详情

 

 

  1. 启动hadoop:hadoop目录下
  2. sbin/start-all.sh ------ 需要ssh免密登陆
  3. sbin/mr-jobhistory-daemon.sh start historyserver
  4. 启动Hive:Hive目录下
  5. bin/hive

五、centos6.5 安装mysql、配置元数据库

               centos7安装mysql :   https://blog.csdn.net/qq_16555103/article/details/88076369

  1. 1、检查系统是否已经安装了mysql
  2. -》sudo rpm -qa | grep 'mysql'
  3. 2、如果已经安装了mysql,那么卸载掉
  4. -》sudo rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
  5. 3、从yum源安装mysql
  6. -》sudo yum install -y mysql-server
  7. 4、启动mysql服务进程
  8. -》sudo service mysqld start
  9. -》sudo chkconfig mysqld on 设置mysql的服务开机自动启动
  10. 5、启动mysqld服务的时候,有以下提示信息:
  11. PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
  12. To do so, start the server, then issue the following commands:
  13. /usr/bin/mysqladmin -u root password 'new-password'
  14. /usr/bin/mysqladmin -u root -h ai7-server1 password 'new-password'
  15. 6、设置mysql的root用户的登录密码
  16. -》mysqladmin -u root password '123456'
  17. 7、登录mysql
  18. -》mysql -uroot -p123456
  19. 8、为mysql设置远程用户登录的权限
  20. -》show databases;
  21. -》use mysql;
  22. -》select user,host from user;
  23. -》grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
  24. 任何节点以root用户身份都可以使用123456这个密码登录mysql,允许访问mysql下的任何库的任意表
  25. -》 delete from user where host='localhost';
  26. delete from user where host='ai7-server1';
  27. delete from user where host='127.0.0.1';
  28. -》删除后的结果:
  29. - select user,host from user;
  30. +------+------+
  31. | user | host |
  32. +------+------+
  33. | root | % |
  34. +------+------+
  35. 1 row in set (0.00 sec)
  36. -》刷新信息
  37. - flush privileges;
  38. -》mysql的服务重新启动
  39. - sudo service mysqld restart(在linux命令行使用,先退出mysql)
  1. 配置mysql为hive元数据库的原因:hive 默认将元数据存储到derby中,derby不支持所用户同时访问
  2. 配置MYSQL作为Hive的元数据库
  3. -----------------------------------------------------------------
  4. 1、可以参考官网文档配置:https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration
  5. 2、cd /opt/modules/hive-1.2.1-bin/conf 这个目录下
  6. 3、cp hive-default.xml.template hive-site.xml 复制文件并重命名
  7. 4、修改hive-site.xml配置文件,修改内容如下:
  8. <!--指定MYSQL所在节点的地址-->
  9. <property>
  10. <name>javax.jdo.option.ConnectionURL</name>
  11. <value>jdbc:mysql://ai7-server1/meta?createDatabaseIfNotExist=true</value>
  12. </property> ------- 其中 meta是mysql中管理元数据的库名,可以自定义
  13. <!--MYSQL驱动包的包名-->
  14. <property>
  15. <name>javax.jdo.option.ConnectionDriverName</name>
  16. <value>com.mysql.jdbc.Driver</value>
  17. </property>
  18. <!--MYSQL的用户名-->
  19. <property>
  20. <name>javax.jdo.option.ConnectionUserName</name>
  21. <value>root</value>
  22. </property>
  23. <!--设置MYSQL的密码-->
  24. <property>
  25. <name>javax.jdo.option.ConnectionPassword</name>
  26. <value>123456</value>
  27. </property>
  28. <!--显示正在使用的数据库-->
  29. <property>
  30. <name>hive.cli.print.current.db</name>
  31. <value>true</value>
  32. </property>
  33. <!--显示表的列名-->
  34. <property>
  35. <name>hive.cli.print.header</name>
  36. <value>true</value>
  37. </property>

 

  1. 5、把MYSQL的驱动jar包放到/opt/modules/hive-1.2.1-bin/lib这个目录下
  2. -》cp mysql-connector-java-5.1.27-bin.jar /opt/modules/hive-1.2.1-bin/lib/

 

  1. 6、配置hive log日志的目录
  2. -》创建log目录:hive目录下 mkdir logs
  3. -》cd /opt/modules/hive-1.2.1-bin/conf/
  4. -》cp hive-log4j.properties.template hive-log4j.properties
  5. 修改 hive-log4j.properties 文件 -------- 指定logs的目录路径
  6. -》hive.log.dir=/opt/modules/hive-1.2.1-bin/logs

 

  1. 7、重启hive:   
  2.     hive目录下:bin/hive
  1. ------------------------------------------------- 完全 卸载mysql ------------------------------------------------
  2. 完全卸载mysql步骤
  3. -》rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
  4. -》删除3个配置文件:
  5. - /var/lib/mysql
  6. - /usr/bin/mysql
  7. - /etc/my.cnf

 

六、完全分布式创建

             注意:在搭建完 伪分布式的前提下

            https://blog.csdn.net/qq_16555103/article/details/88042766    

 

 

 

 

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

闽ICP备14008679号