??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
Hadoop2.7.3 Hbase1.1.9集群搭建教程

转载   2018-04-24   浏览量:187


一、

1. 搭建三个Ubuntu系统

(master,node1,node2节点都要操作)

1.修改主机名:

gedit/etc/hostname 改为master/node1/node2


2.将普通用户改为root用户

执行sudo passwdroot,执行后会提示你设置密码,请自行设置需要的密码,切记一定要记住设置的密码,如下图所示:

\

此步为额外步骤,可以不做(目的是使用root用户登录,方便之后的操作)输入以下命令cd /usr/share/lightdm/lightdm.conf.d/进入目录/usr/share/lightdm/lightdm.conf.d下,然后执行命令sudo gedit 50-unity-greeter.conf(注执行完该命令会弹出一个文本编辑窗口,见下图),对50-unity-greeter.conf文件进行编辑

在打开的文本编辑窗口中,添加以下信息,来设置登陆时可以选择的用户登录,如下图所示:

\

user-session=ubuntu
greeter-show-manual-login=true

all-guest=false

二、

1.配置ip

(master,node1,node2节点都要操作)

gedit /etc/hosts 编辑为:

\

重启

三、

1. jdk,hadoop配置:

在home下创建一个文件夹hadoop:用于存放jdk,hadoop,hbase:

在hadoop目录下安装jdk:apt-get install jdk8

在hadoop下解压hadoop-2.7.3.tar.gz:tar -zxvf hadoop-2.7.3.tar.gz

对hadoop进行配置:

编辑hadoop-env.sh(修改JAVA_HOME的配置)

sudo gedit hadoop-env.sh

export JAVA_HOME=/home/hadoop/tools/jdk7

export HADOOP_PID_DIR=/home/hadoop/pids

编辑yarn-env.sh,在底部增加

export JAVA_HOME=/home/hadoop/tools/jdk7

export YARN_PID_DIR=/home/hadoop/pids

编辑slaves文件,在底部增加

master

slave1

slave2

 

编辑core-site.xml

fs.defaultFS

hdfs://master:9000

 

hadoop.tmp.dir

/home/hadoop/temp

 

 

 

编辑hdfs-site.xml

dfs.replication

3

 

 

dfs.namenode.name.dir

file:/home/hadoop/dfs/name

true

 

 

dfs.datanode.data.dir

file:/home/hadoop/dfs/data

 

 

 

编辑yarn-site.xml

yarn.nodemanager.aux-services

mapreduce_shuffle

 

 

yarn.nodemanager.aux-services.mapreduce.shuffle.class

org.apache.hadoop.mapred.ShuffleHandler

 

 

yarn.resourcemanager.hostname

master

 

 

 

编辑mapred-site.xml

默认没有该文件

mapreduce.framework.name

yarn

true

 

 

 

 

 

 

 

配置用户环境变量

sudo gedit~/.bashrc

在末尾加上:

 

#Hadoop

exportHADOOP_PREFIX="/home/hadoop/tools/hadoop2.6"

exportPATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

exportHADOOP_COMMON_HOME=${HADOOP_PREFIX}

exportHADOOP_HDFS_HOME=${HADOOP_PREFIX}

exportHADOOP_MAPRED_HOME=${HADOOP_PREFIX}

exportHADOOP_YARN_HOME=${HADOOP_PREFIX}

 

#setjava environment

exportJAVA_HOME=/home/hadoop/tools/jdk7

exportJRE_HOME=/home/hadoop/tools/jdk7/jre

 

exportMAHOUT_HOME=/home/hadoop/tools/mahout-distribution-0.9

exportMAVEN_HOME=/home/hadoop/tools/maven3.2

exportPATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$MAHOUT_HOME/bin:$PATH

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

exportSCALA_HOME=/home/hadoop/tools/scala2.10

exportPATH=.:$PATH:$SCALA_HOME/bin

 

exportSPARK_HOME=/home/hadoop/tools/spark1.4

exportPATH=.:$PATH:$SPARK_HOME/bin:$SPARK_HOME:sbin

 

exportHBASE_HOME=/home/hadoop/tools/hbase1

exportPATH=.:$PATH:$HBASE_HOME/bin

使用source更新下.bashrc文件:source ~/.bashrc

 

hbase配置:(master)

在hadoop目录下解压

编辑hbase-env.sh,在底部增加

#The java implementation to use. Java1.7+ required.

exportJAVA_HOME=/home/hadoop/tools/jdk7

exportHBASE_MANAGES_ZK=true

export HBASE_PID_DIR=/home/hadoop/pids

 

编辑regionservers文件,在底部增加

master

slave1

slave2

\

 

编辑hbase-site.sh,在底部增加

hbase.rootdir

hdfs://master:9000/hbase

 

 

hbase.cluster.distributed

true

 

 

hbase.master

master:60010

 

 

hbase.zookeeper.quorum

master,node1,node2

 

 

zookeeper.znode.parent

/hbase

 

 

 

关闭防火墙

sudo ufw disable (关闭防火墙重启虚拟机生效)

 

安装SSH服务(建立无密码登陆本机和其他节点,各节点之间传送文件)

安装openssh-server;(node1,node2,master)

sudoapt-getinstallssh

 

创建ssh-key,这里我们采用rsa方式;(node1,node2,master)

ssh-keygen -trsa

(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

(master)进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的;

cd ~/.ssh

cat id_rsa.pub>> authorized_keys

(node1,node2):将生成的 id_rsa.pub追加的master节点的authorized_keys下,命令如下:

scp ~/.ssh/ id_rsa.pub [email protected]:/home/a.txt将id_rsa.pub 的内容拷贝到a.txt中

cat /home/a.txt >> authorized_keys 再将a.txt的内容追加到 authorized_keys中

注:若scp权限不够,修改/etc/ssh/sshd_config 将PermitRootLogin ***改为PermitRootLogin yes

(master)scp~/.ssh/authorized_keys [email protected]:~/.ssh/

scp~/.ssh/authorized_keys [email protected]:~/.ssh/

3. 登录其他节点;

ssh node1

ssh node2

ssh master

master节点下使用ssh node1可进入node1

\

若不需要密码直接就可以进入,为成功

( 注:当ssh远程登录到其它机器后,现在你控制的是远程的机器,需要执行退出命令才能重新控制本地主机。退出命令;exit)

ssh 必须安装并且保证sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。

附ssh部分命令:

重启SSH

/etc/init.d/ssh restart

确认sshserver是否启动

ps -e | grep ssh

\

如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。

1. 将hadoop传送给node1,node2节点:(在master上操作)

scp -r /home/[email protected]:/home/

scp -r/home/hadoop [email protected]:/home/

启动hadoop(master)

1.1.第一次启动需要在master 执行format

2.bin/hdfs namenode -format

\

2.在master启动服务

sbin/start-all.sh

\

3.在master 验证启动进程:

\

4.在slave 验证启动进程:

5.打开浏览器输入:https:// master:8088 可查看相关的应用运行情况。

\

6. 打开浏览器输入:https:// master:50070 可查看hdfs目录

\

7.测试

bin/hdfs dfs -ls /

bin/hdfs dfs -mkdir /user

bin/hdfs dfs -mkdir -p /user/micmiu/wordcount/in

 

创建三个文件(内容相同)

micmiu-01.txt:

micmiu-02.txt:

micmiu-03.txt:

 

上传三个文件

bin/hdfs dfs -put micmiu*.txt /user/micmiu/wordcount/in

 

启动wordcount

bin/hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jarwordcount/user/micmiu/wordcount/in/user/micmiu/wordcount/out

\

查看结果输出out文件

bin/hdfsdfs -cat/user/micmiu/wordcount/out/part-r-00000

\

启动hbase(master)

在浏览器中输入https://192.168.16.128:16030/rs-status,如图则配置成功:

\

\

 

 

 

1. 附录:遇到的部分问题总结

1. slave节点的DataNode自动关闭问题

原因:Namenode上namespaceID与datanode上namespaceID不一致。

每次namenodeformat会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,所以造成namenode节点上的namespaceID与datanode节点上的namespaceID不一致。启动失败。

解决方案:

(1)停掉集群服务

  (2)在出问题的datanode节点上删除data目录,data目录即是在hdfs-site.xml文件中配置的dfs.data.dir目录,本机器上那个是/var/lib/hadoop-0.20/cache/hdfs/dfs/data/

  (3)格式化namenode.

(4)重新启动集群。

 

2.NameNode结点不能启动

jps查看结点启动情况没有NameNode结点

一种原因是在core-site.xml中指定了如下配置:


hadoop.tmp.dir
/tmp/hadoop/hadoop-${user.name}

但是tmp会在启动的时候清空,而dfs的数据就会变得不一致,导致启动失败,可以重新更改位置:


hadoop.tmp.dir
/var/hadoop/hadoop-${user.name}

然后执行: hadoop namenode -format 命令(由于namenode数据存储目录变更,namenode需要重新格式化)

重启后即可。

3. 运行wordcount时权限不足

解决方案:

在配置hdfs-site.xml中增加配置代码:

dfs.permissions.enabled

false

4. 解除安全模式

解决方案:

hadoop dfsadmin -safemode leave

5.ssh免密不成功:

首先要修改主机 和ssh连接到的远程机 的配置文件:

vi /etc/ssh/sshd_config

(要确保这些字符前无注释符号“#”)

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile.ssh/authorized_keys

PasswordAuthentication yes

PeimitEmptyPasswords yes

然后查看各节点的authorized_keys是否包含三个节点的私钥信息,如果缺失,重新传送

6.环境配置文件添加错误,导致无法进入root,一些操作命令不能执行,解决办法

输入命令exportPATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

之后gedit命令就可以使用了

将错的文件改回来就可以了

注:一个用户下对应着一个自己的环境配置文件,


 



 

转载自:https://www.2cto.com/database/201804/740125.html

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



HBase之Rowkey设计总结及方舟实战篇
一、引言HBase由于其存储和读写的高性能,在OLAP即时分析中越来越发挥重要的作用,在易观精细化运营产品--易观方舟也有广泛的应用。作为Nosql数据库的一员,HBase查询只能通过其Rowkey来查询(Rowkey用来表示唯一一行记录),Rowkey设计的优劣直接影响读写性能。HBase中的数据是按照Rowkey的ASCII字典顺序进行全局排序的,有伙伴可能对ASCII字典序印象不够深刻,下面...
HBase的java编程实例-写入词频统计
下面代码需要新建一个文本文件作为读取内容importjavaioBufferedReader;importjavaioFileReader;importjavautilList;importjavautilArrayList;importorgapachehadoopconfConfigura
Hbase regionserver 逐个挂掉的问题分析
最近遇到一个比较诡异的问题,一个regionserver由于GC的原因,导致与zookeeper链接超时,最终被踢出集群。但是,接下来的现象,才是噩梦的开始?。?!
hbaseshell基本操作简介(代码)
hbaseshell基本操作简介(代码)。之前介绍了hbase的安装,现在来简介下hbase的基本操作:1启动hbase
Hbase操作命令大全
Hbase操作命令大全。一Hbase操作命令;二Namespace操作。
Hbase之Shell基本命令
Hbase之Shell基本命令?;久睿喊沧巴旰罂梢栽阡榔髦惺淙胂旅娴腢RL来测试安装是否成功:http:localhost:60010hbase目录输出日志文件所在位置:$HBASE_HOMElogs进入hbaseshellconsole$HBASE_HOMEbinhbaseshell如果有kerberos认证,需要事先使用相应的ke
HBase:架构,Compaction合并操作
HBase:架构,Compaction合并操作。compaction合并操作:compaction操作将小文件合并成大文件,加快查询速度,减少文件数量,减少资源占用。compaction分为两种:
Hbase对数据表的增删改查和对数据的增删改查
Hbase对数据表的增删改查和对数据的增删改查。
HBase的复制函数CopyToTable
HBase的复制函数CopyToTable。在日常的生产环境中,通常需要将一张已有的hbase表格直接复制给在hbase中的另一张表格,那么可以通过命令行直接调用CopyToTable来实现。首先在hbase中有一张表,如下:
HBase计算表的总count
HBase计算表的总count。