zoukankan      html  css  js  c++  java
  • 新手安装 hadoop、hive和hbase 笔记

    系统是ubuntu 12.04 , hadoop版本是1.2.1 , hive版本是0.12 , hbase版本我忘记了,不好意思
    首先是配置好hostname
    vi /etc/hosts
    写入你要配置的ip 和它的hostname
    这里我写入了
    192.168.19.129 ubuntu

    给要部署hadoop的机器都互相配置信任关系,具体怎么玩,自己谷歌
    测试一下ssh user@hostname , 做到无需输入密码即可登录

    给所有需要配置hadoop集群的机器,关闭防火墙
    service iptables stop

    (下面的hadoop版本是1.2.1 , hive版本是0.12 , hbase版本是0.94.12)
    修改$HADOOP_HOME/conf/hadoop-env.sh文件
    搜索JAVA_HOME
    将前面的#去掉,取消注释
    写入你的JAVA_HOME路径(方式是在shell上执行:echo $JAVA_HOME , 如果为空,那么你就自己再配置一下JDK吧,囧)

    修改$HADOOP_HOME/conf/core-site.xml文件
    在<configuration></configuration>之间加入

    <property> 
       <name>fs.default.name</name> 
       <value>hdfs://yourHostName(localhost/ubuntu):9000</value> 
    </property>
    <property>
       <name>hadoop.tmp.dir</name>
       <value>your tmp director in hdfs</value>
    </property>

    注意:yourHostName建议写你自己设置的hostname,不建议写localhost,因为到多节点时候很容易会出错,甚至你可以写ip地址。

    另外,hadoop.tmp.dir的标签的值不是本地文件系统的地址,而是对应HDFS上的临时目录,它是在跑MapReduce程序时产生的临时文件的存放地址。

    修改$HADOOP_HOME/conf/mapred-site.xml文件
    在<configuration></configuration>之间加入

    <property>
       <name>mapred.job.tracker</name>
       <value>yourHostName(localhost/ubuntu):9001</value>
    </property>
    <property>
       <name>dfs.permissions</name>
       <value>false</value>
    </property>
    <property>
       <name>mapred.child.java.opts</name>
       <value>-Xmx512m</value>
    </property>

    注意:同理,这里也不建议yourHostName写localhost

    修改$HADOOP_HOME/conf/hdfs-site.xml文件
    在<configuration></configuration>之间加入

    <property> 
       <name>dfs.name.dir</name> 
       <value>/usr/local/hadoop/datalog</value> 
    </property> 
    <property> 
       <name>dfs.data.dir</name> 
       <value>/usr/local/hadoop/data</value> 
    </property> 
    <property> 
       <name>dfs.replication</name> 
       <value>1</value> 
    </property> 

    在$HADOOP_HOME/conf/master 和 $HADOOP_HOME/conf/slaves文件写入的写master机器的hostname和slaves的hostname,保存退出

    格式化master机器的namenode节点
    执行:
    $HADOOP_HOME/bin/hadoop namenode -format

    启动整个hadoop集群环境
    $HADOOP_HOME/bin/start-all.sh


    *******************************************************************************

    hive搭建
    解压好hive的包,给$HIVE_HOME/conf/hive-default.xml.template 拷贝成$HIVE_HOME/conf/hive-site.xml

    修改hive的配置,因为默认的配置文件有问题

    <value>auth<auth>修改为<value>auth</value>,保存退出
    这个hive和hadoop的简单对接已经完成,后面会加上mysql来作为数据类型存储源

    *******************************************************************************

    hive 与 mysql对接
    允许其他机器访问mysql服务
    修改mysql配置文件/etc/mysql/my.cnf
    >skip-networking => # skip-networking //其实就是注释这一条配置选项

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    在网上下载一个mysql的java驱动,将其放到$HIVE_HOME/lib底下即可
    修改$HIVE_HOME/conf/hive-site.xml文件

    修改hive的配置,hive.metastore.schema.verification默认为true,修改为false

    <property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>
    </property>

    localhost 写你的ip地址或者hostname
    3306是mysql默认的通信端口
    hive是你所使用mysql里面的database名字,这个database 一定是你自己手动创建的,否则hive会报错

    <property>
       <name>javax.jdo.option.ConnectionURL</name>
       <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNoExist=true</value>
    </property>

    mysql驱动类名

    <property>
       <name>javax.jdo.option.ConnectionDriverName</name>
       <value>com.mysql.jdbc.Driver</value>
    </property>


    所使用mysql的用户名

    <property>
       <name>javax.jdo.option.ConnectorUserName</name>
       <value>hive</value>
    </property>

     mysql用户的密码

    <property>
       <name>javax.jdo.option.ConnectionPassword</name>
       <value>hive</value>
    </property>

    如果你不希望使用hive这个用户,也可以自行在mysql上建立用户

    mysql> CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
    mysql> CREATE user 'hive'@'localhost' IDENTIFIED BY 'hive'; mysql
    > GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost' with grant option; mysql
    > flush privileges;

    执行上面三行命令,就给mysql创建了hive这个用户了,用户名和密码都是hive

    在shell里面登陆mysql的hive用户试验
    mysql -uhive -phive

    如果在执行上面的命令出现ERROR 1045(28000)错误,那么你就需要执行

    /etc/init.d/mysql stop
    mysqld_safe --user=root --skip-grant-tables --skip-networking & (这个就是降低mysql 的安全系数启动mysql 服务,是的用户无需密码就能登陆mysql 的root 用户)
    /etc/init.d/mysql restart

    此方法参考:http://blog.sina.com.cn/s/blog_4d0aa5f30100fobu.html中的方法一

    如果忘记mysql 的root 密码,可以参考这篇博客:http://www.blogjava.net/wiflish/archive/2006/12/23/89655.html

    登陆后,给hive用户创建一个名字叫hive的数据库

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    启动hive
    show databases; 不出错,说明hive和mysql打通了

    ***************************************************************************

    hbase搭建

    修改$HBASE_HOME/conf/hbase_env.sh文件
    export JAVA_HOME=your java_home
    export HBASE_MANAGES_ZK=true
    如果使用独立的zookeeper的话,$HBASE_MANAGES_ZK=false

    修改$HBASE_HOME/conf/hbase-site.xml

    <configuration> 
      <property> 
         <name>hbase.master</name> 
         <value>yourHostName:60000</value> 
      </property> 
      <property> 
         <name>hbase.rootdir</name> 
         <value>hdfs://yourHostName:9000/hbase</value> 
      </property> 
      <property> 
         <name>hbase.cluster.distributed</name> 
         <value>true</value> 
      </property> 
      <property>
         <name>hbase.zookeeper.property.clientPort</name>
         <value>2181</value> 
      </property> 
      <property> 
         <name>hbase.zookeeper.quorum</name> 
         <value>yourHostName</value> 
      </property> 
    </configuration>

    yourHostName 都不要简单地填写localhost,要写成其他的hostname,或者是ip也行

    启动hbase

    $HBASE_HOME/bin/start-hbase.sh


    停止hbase

    $HBASE_HOME/bin/stop-hbase.sh

    可以在web查看hbase的状态
    http://hostname:60010

    再进击
  • 相关阅读:
    nano编辑器__vi常用命令
    pyCharm最新2018激活方式(记录)
    一、centos7.4安装docker
    C#备份及还原数据库的实现
    System.Drawing.image 与ImageSource 互转
    Socket 异步通信
    图片与base64的互转
    程序中编写log日志
    SQLHelper
    Cond
  • 原文地址:https://www.cnblogs.com/chenfool/p/3574789.html
Copyright © 2011-2022 走看看