分布式Hadoop和HBase整合
环境:
CentOS 6.6 hadoop-2.6.0 hbase-0.98.10.1
HBase1 192.168.1.4 Master
HBase2 192.168.1.5 Slave1
HBase3 192.168.1.6 Slave2
准备工作:
新建hadoop账户
每台主机都需要设置
useradd hadoop passwd hadoop
切换到hadoop用户,以下操作全部使用hadoop用户,所有目录的user和group均为hadoop,如果不是,手动改为hadoop
设置JAVA环境
每台主机都需要设置
参考文章:http://www.cnblogs.com/xs104/p/4478096.html
设置hosts
每台主机都需要设置
vi /etc/hosts 127.0.0.1 localhost
192.168.1.4 HBase1
192.168.1.5 HBase2
192.168.1.6 HBase3
设置无密码ssh访问子节点
在Master机器上(HBase1)执行:
1.在/home/hadoop目录下新建文件夹.ssh,设置权限为700
2.生成密钥
ssh-keygen -t rsa
连续输入三次回车,则在.ssh文件夹内生成了id_rsa、id_rsa.pub两个密钥文件
3.在其他两台机器上新建.ssh目录并将id_rsa.pub公钥文件复制到.ssh文件中
在其他两台机器上新建文件夹
ssh hadoop@192.168.1.5 "mkdir /home/hadoop/.ssh;chmod 700 /home/hadoop/.ssh"
ssh hadoop@192.168.1.6 "mkdir /home/hadoop/.ssh;chmod 700 /home/hadoop/.ssh"
将密钥复制到其他两台机器的.ssh文件夹
scp /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.5:/home/hadoop/.ssh/id_rsa.pub
scp /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.6:/home/hadoop/.ssh/id_rsa.pub
执行第三步的时候,需要远程连接其他两台机器,所以会提示需要输入hadoop账户的密码
在三台机器上分别执行:
touch /home/hadoop/.ssh/authorized_keys
这样就新建了一个authorized_keys文件,需要注意,该文件的权限为600,如果不是,手动更改
将Master上的id_rsa.pub文件添加到authorized_keys中
cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys
这时候回到Master机器上,就可以无密码ssh连接自己和子节点了
ssh 192.168.1.4
ssh 192.168.1.5
ssh 192.168.1.6
有时候第一连接的时候会需要输入密码,第二次就不需要了,如果确保前面的操作没有错误,第二次还需要密码的话,尝试关闭防火墙,要是还不行,尝试关闭SELinux
chkconfig iptables off
#关闭selinux
编辑/etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
至此,准备工作已经完成,开始部署hadoop。
Hadoop
在正式配置hadoop之前,需要在master本地文件系统创建以下文件夹:
/home/hadoop/dfs/name
/home/hadoop/dfs/data
/home/hadoop/tmp
开始配置,所有配置文件均在hadoop的etc/hadoop目录下
1. hadoop-env.sh
export JAVA_HOME=你的jdk目录
2. yarn-env.sh
export JAVA_HOME=你的jdk目录
3. slaves
填写所有子节点
4. core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.4:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<property>
<name>io.native.lib.available</name>
<value>true</value>
</property>
</configuration>
5. hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.1.4:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
6. mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.1.4:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.1.4:19888</value>
</property>
</configuration>
7. yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.1.4:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.1.4:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.1.4:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.1.4:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.1.4:8088</value>
</property>
</configuration>
配置完成之后,将hadoop复制到两台子节点中
sudo scp -r /usr/local/hadoop2./ hadoop@192.168.1.5:/usr/local/ sudo scp -r /usr/local/hadoop2./ hadoop@192.168.1.6:/usr/local/
至此,所有配置完成,剩下的就是启动验证了
格式化hadoop
bin/hdfs namenode -format
启动
sbin/start-all.sh
启动之后,在Master上使用jps命令会显示有“Jps、NameNode、SecondaryNameNode、ResourceManager”四个进程。在slave上使用jps命令会显示有“DataNode、Jps、 NodeManager”三个进程。
HBase
安装需要注意以下几点:
1. 已经配置JDK环境
2. hadoop已经正确安装
3. ssh必须安装启动
4. 各个主机时间必须相同(可容易些许的不一致)
sudo ntpdate time.nist.gov
开始配置HBase
1. 在每个节点创建hbase的临时目录和zookeeper目录
2. 配置hbase-env.sh文件
修改JAVA环境
export JAVA_HOME=/usr/local/jdk1.
启动HBase自动的zookeeper
export HBASE_MANAGES_ZK=true
3. 配置hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.1.4:8020/hbase</value>
<description>The directory shared by region servers.</description>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://192.168.1.4:60000</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/hadoop/hbaseTmp</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>HBase1,HBase2,HBase3</value>
</property>
</configuration>
至此,HBase安装完成
启动hbase
bin/start-hbase.sh
最新文章
- ARM汇编指令调试方法
- 准确率P 召回率R
- sqlserver 动态行转列
- <;转>;下一代Asp.net开发规范OWIN(1)—— OWIN产生的背景以及简单介绍
- Python开发库
- WCF例子
- mybatis insert 如何返回主键
- 20141109--SQL 练习题-1
- JSON Helper
- C++编程命名规范
- 报表打印错误:Forcing NLS_NUMERIC_CHARACTERS to: &#39;.,&#39; for XDO processing
- python识别图片
- 【linux总结】zsl
- vue中filter的用法
- 每日linux命令学习-rpm命令
- Android的.so文件、ABI和CPU的关系
- 题目1446:Head of a Gang(并查集操作)
- python3学习笔记(1)_string
- 快速排序-C
- Cookie和session的简单理解和应用