文档章节

hadoop的安装,主从设置及结合php的应用

bengozhong
 bengozhong
发布于 2016/02/26 10:29
字数 1092
阅读 76
收藏 0
最近又机会接触hadoop,顺便分享一下同事的记录

一、主服务器设置
1.创建用户
#useradd hadoop
2.设置密码
#passwd hadoop
3.切换hadoop登录
#su - hadoop
4.解压hadoop压缩包
#tar zxvf hadoop-1.0.3.tar.gz
5.设置目录权限
#chown -R hadoop.hadoop hadoop-1.0.3
6.编辑环境变量
#vim hadoop-1.0.3/conf/hadoop-env.sh
编辑“JAVA_HOME”路径:
export JAVA_HOME=/usr/local/jdk1.7.0_05
增加一行(取消过时警告):
export HADOOP_HOME_WARN_SUPPRESS=1
7.编辑系统环境变量(使用root用户)
#vim /etc/profile
追加如下内容:
export JAVA_HOME=/usr/local/jdk1.7.0_05
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/home/hadoop/hadoop-1.0.3
export PATH=$PATH:$HADOOP_HOME/bin
8.执行环境设置
#source /etc/profile
9.设置主IP
#vim hadoop-1.0.3/conf/masters
把localhost替换成192.168.1.247
10.设置从IP
#vim hadoop-1.0.3/conf/slaves
把localhost替换成192.168.1.248
11.设置hdfs
#vim hadoop-1.0.3/conf/hdfs-site.xml
增加如下内容:
<configuration>
    <property>
        <name>dfs.name.dir</name>
        <value>/home/hadoop/hadoop-1.0.3/name</value>
    </property>
     <property>
        <name>dfs.data.dir</name>
        <value>/home/hadoop/hadoop-1.0.3/data</value>
    </property>
     <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>
12.配置任务
#vim hadoop-1.0.3/conf/mapred-site.xml
增加如下内容:
<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value> 192.168.1.247:9001</value>
    </property>
    <property>
        <name>mapred.local.dir</name>
        <value>/home/hadoop/hadoop-1.0.3/var</value>
    </property>
</configuration>
13.配置核心文件
#vim hadoop-1.0.3/conf/core-site.xml
<configuration>
    <property>
        <name> fs.default.name</name>
        <value>hdfs:// 192.168.1.247:9000</value>
    </property>
    <property>
        <name>fs.checkpoint.period</name>
        <value>3600</value>
    </property>
    <property>
        <name>fs.checkpoint.size</name>
        <value> 67108864</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop-1.0.3/tmp</value>
    </property>
</configuration>
14.实现主从自动登录(单方向)
创建公钥:
#ssh-keygen -t rsa
自己可以ssh:
#cat .ssh/id_rsa.pub >> .ssh/authorized_keys
设置文件权限:
#chmod 700 .ssh/authorized_keys
测试一下,不需要密码就表示成功
#ssh localhost
#exit
二、从服务器设置
1.创建用户
#useradd hadoop
2.设置密码
#passwd hadoop
3.编辑系统环境变量(使用root用户)
#vim /etc/profile
追加如下内容:
export JAVA_HOME=/usr/local/jdk1.7.0_05
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/home/hadoop/hadoop-1.0.3
export PATH=$PATH:$HADOOP_HOME/bin
4.执行环境设置
#source /etc/profile
5.解压缩hadoop压缩包
#tar zxvf hadoop-1.0.3.tar.gz
6.设置目录权限
#chown -R hadoop.hadoop hadoop-1.0.3
 
三、回到主服务器
1.切换hadoop用户
#su - hadoop
2.复制公私到从服务器
#ssh-copy-id -i .ssh/id_rsa.pub  hadoop@192.168.1.248
3.测试
#ssh 192.168.1.248
配置正确的话是不需要密码就能登录的
4.向从服务器发送配置文件
#scp -r hadoop-1.0.3/conf hadoop@192.168.1.248:/home/hadoop/hadoop-1.0.3
5.格式化分布式文件系统
#hadoop-1.0.3/bin/hadoop namenode -format
6.启动hadoop服务
#hadoop-1.0.3/bin/start-dfs.sh
#hadoop-1.0.3/bin/start-mapred.sh
7.查看运行情况
web查询界面: http://192.168.1.247:50030
 
四、安装hive(主服务器)
1.压缩包装包(hadoop用户)
#tar zxvf hive-0.9.0.tar.gz
#mv hive-0.9.0 hadoop-1.0.3
2.配置hive环境变量
#cp hadoop-1.0.3/hive-0.9.0/conf/hive-env.sh.template hadoop-1.0.3/hive-0.9.0/conf/hive-env.sh
#vim hadoop-1.0.3/hive-0.9.0/conf/hive-env.sh
增加一行:
HADOOP_HOME=$HADOOP_HOME
3.配置hive元数据保存到mysql
建立数据数用户,数据库使用latin1字符集:
mysql>CREATE DATABASE hive CHARACTER SET latin1;
mysql>GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hivepasswd';
修改配置文件:
#cp hadoop-1.0.3/hive-0.9.0/conf/hive-default.xml.template hadoop-1.0.3/hive-0.9.0/conf/hive-site.xml
#vim hadoop-1.0.3/hive-0.9.0/conf/hive-site.xml
修改四个地方:
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>
  <description>username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hivepasswd</value>
  <description>password to use against metastore database</description>
</property>
5.复制mysql连接库包
#cp mysql-connector-java-5.1.11-bin.jar hadoop-1.0.3/hive-0.9.0/lib
4.启动hive
#hadoop-1.0.3/hive-0.9.0/bin/hive
5.去掉log4j过期警告
#cp hadoop-1.0.3/hive-0.9.0/conf/hive-log4j.properties.template hadoop-1.0.3/hive-0.9.0/conf/hive-log4j.properties
#vim hadoop-1.0.3/hive-0.9.0/conf/hive-log4j.properties
找到“log4j.appender.EventCounter”将他的值变更为:“org.apache.hadoop.log.metrics.EventCounter”
 
五、安装php访问hive数据库插件
1.解压缩thrift包
#tar zxvf thrift-0.8.0.tar.gz
2.不要ruby支持否则会报错
#cd thrift-0.8.0
#./configure --without-ruby
#make && make install
3.后台启动hive
#hadoop-1.0.3/hive-0.9.0/bin/hive --service hiveserver>/dev/null 2>&1 &
4.准备Thrifht库包放在/home/hadoop目录下,这个包可以在网上下载
5.编写php程序
  1. <?  
  2. //php连接hive thrift依赖包路径  
  3. $GLOBALS['THRIFT_ROOT'] = '/home/hadoop/Thrift/';  
  4. //load the required files for connecting to Hive  
  5. require_once $GLOBALS['THRIFT_ROOT'] . 'packages/hive_service/ThriftHive.php';  
  6. require_once $GLOBALS['THRIFT_ROOT'] . 'transport/TSocket.php';  
  7. require_once $GLOBALS['THRIFT_ROOT'] . 'protocol/TBinaryProtocol.php';  
  8. //Set up the transport/protocol/client  
  9. $transport = new TSocket('192.168.1.247', 10000);  
  10. $protocol = new TBinaryProtocol($transport);  
  11. $client = new ThriftHiveClient($protocol);  
  12. $transport->open();  
  13. //run queries, metadata calls etc  
  14. $client->execute('show tables');  
  15. var_dump($client->fetchAll());  
  16. $transport->close();  
  17. ?> 

© 著作权归作者所有

bengozhong
粉丝 21
博文 522
码字总数 539819
作品 0
深圳
技术主管
私信 提问
Apache Hive-2.3.0 快速搭建与使用

Hive 简介 Hive 是一个基于 hadoop 的开源数据仓库工具,用于存储和处理海量结构化数据。它把海量数据存储于 hadoop 文件系统,而不是数据库,但提供了一套类数据库的数据存储和处理机制,并...

PengLei
2017/09/22
0
0
小型分布式LNMP平台架构搭建

小型分布式LNMP平台架构搭建 最近想和几个朋友一起搞一个小网站的项目,作为运维工程师,搭环境的任务自然而然的就落到了我的肩膀上,由于我们的项目还处在幻想阶段,所以就不租服务器了,我...

烟头网管
2015/04/12
0
0
hadoop2.7.2基本配置(yarn)模式

环境配置 a).安装oracle jdk并配置好JAVA_HOME,将如下代码追加到/etc/profile文件末尾 不要忘了source /etc/profile哦! b).创建hadoop用户 切换到hadoop用户下将下载hadoop2.7.2压缩包上...

桃源闲人
2016/06/10
749
0
以容器部署Ganglia并监控Hadoop集群

版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎访问我的博客 https://blog.csdn.net/smooth00/article/details/80495604 网上有很多Ganglia部署的教程,每一个我都觉得繁琐,我的...

smooth00
2018/05/29
0
0
4年php程序员不知道该如何提高,求大神给建议?

接触PHP已经4年半左右了,最近挺长一段时间不知道该怎么学了,感觉一直没什么进步呢,就平时工作而言接触的东西也不少,各种php的框架也用过几个,php、mysql、mongo、redis、memcached等也都...

mu_fan
2016/08/17
1K
15

没有更多内容

加载失败,请刷新页面

加载更多

c++ 虚基类

c++ 虚基类 p556

天王盖地虎626
10分钟前
9
0
Java中的面向对象

一、面向对象 面向对象和面向过程的区别 过程就是函数,就是写方法,就是方法的一种实现。 对象就是将函数,属性的一种封装。用人们思考习惯的方式思考问题。 如何自定义类 修饰符 类名{ //成...

zhiruochujian
18分钟前
3
0
k8s删除Terminating状态的命名空间

背景: 我们都知道在k8s中namespace有两种常见的状态,即Active和Terminating状态,其中后者一般会比较少见,只有当对应的命名空间下还存在运行的资源,但是该命名空间被删除时才会出现所谓的...

Andy-xu
21分钟前
9
0
seata源码阅读笔记

seata源码阅读笔记 本文没有seata的使用方法,怎么使用seata可以参考官方示例,详细的很。 本文基于v0.8.0版本,本文没贴代码。 seata中的三个重要部分: TC:事务协调器,维护全局事务和分支...

东都大狼狗
34分钟前
5
0
Rust:最小化窗口后 CPU占用率高 (winit,glutin,imgui-rust)

最近试着用 imgui-rust 绘制界面,发现窗口最小化后CPU占用会增大。 查询的资料如下: https://github.com/rust-windowing/winit/issues/783 https://github.com/ocornut/imgui/issues/1151 ...

reter
38分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部