Hadoop 2.6.0+Hbase1.12+mahout0.9 集群搭建

---恢复内容开始---

建议配置1台,克隆两台,修改/etc/hostname即可

创建hadoop用户组和用户

创建用户组

sudo addgroup hadoop

创建用户

sudo adduser -ingroup hadoop hadoop

给hadoop用户添加权限,打开/etc/sudoers文件

sudo gedit /etc/sudoers

在root ALL=(ALL)ALL行下添加ALL=(ALL:ALL) ALL。如果不添加这行,hadoop将不能执行sudo操作。

1. 配置jdk

进入在存放jdk文件夹的当前目录,将解压好的jdk1.7.0_10文件夹用最高权限复移动到/home/hadoop/tools目录里,此时即使没有tools目录也可以执行如下命令,tools文件夹将得到创建。

sudo mv jdk1.7.0_45.tar.gz /home/hadoop/tools/

接下来需要设置环境变量,进入当前用户名的主文件夹,修改.profile文件。注意,该文件是当前用户的配置文件,如果要对使用计算机的所有用户生效,那么需要设置的文件应该是 /etc/profile。

解压

tar -zxvf  jdk1.7.0_45.tar.gz

重命名:

mv jdk1.7.0_45  jdk7

mv  apache-maven-3.2.2  maven3.2

mv  hadoop-2.6.0  hadoop2.6

mv  hbase-1.1.2   hbase1

配置hadoop用户环境变量

sudo gedit ~/.bashrc

在末尾加上:

# Hadoop

export HADOOP_PREFIX="/home/hadoop/tools/hadoop2.6"

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

export HADOOP_COMMON_HOME=${HADOOP_PREFIX}

export HADOOP_HDFS_HOME=${HADOOP_PREFIX}

export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}

export HADOOP_YARN_HOME=${HADOOP_PREFIX}

#set java environment

export JAVA_HOME=/home/hadoop/tools/jdk7

export JRE_HOME=/home/hadoop/tools/jdk7/jre

export MAHOUT_HOME=/home/hadoop/tools/mahout-distribution-0.9

export MAVEN_HOME=/home/hadoop/tools/maven3.2

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

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export SCALA_HOME=/home/hadoop/tools/scala2.10

export PATH=.:$PATH:$SCALA_HOME/bin

export SPARK_HOME=/home/hadoop/tools/spark1.4

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

export HBASE_HOME=/home/hadoop/tools/hbase1

export PATH=.:$PATH:$HBASE_HOME/bin

然后保存关闭,此时在命令行输入java -version将会仍然显示java没有安装。此时,需要使用source更新下.bashrc文件:

source  ~/.bashrc

再次使用java -version命令可以看到如下输出:

到此,已经将jdk配置完成。如果之前系统里面已经安装了openjdk,可以使用如下方法将默认jdk更改过来:

3.采用桥接模式获得静态虚拟机ip

ip addr 获得该节点ip地址

在三台主机上分别设置:/etc/hosts 和/etc/hostname

hosts这个文件用于定义主机名和IP地址之间的映射关系。

(修改hostname后重启虚拟机生效)

4.关闭防火墙

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

5.换源

 若出现ssh等软件无法安装,进行换源操作

1、首先备份Ubuntu14.04源列表

sudo cp  /etc/apt/sources.list  /etc/apt/sources.list.backup (备份下当前的源列表)

2、修改更新源

sudo gedit  /etc/apt/sources.list (打开Ubuntu 14.04源列表文件)

在后面添加:

deb http://ubuntu.cn99.com/ubuntu/ precise main restricted universe multiverse

deb http://ubuntu.cn99.com/ubuntu/ precise-updates main restricted universe multiverse

deb http://ubuntu.cn99.com/ubuntu/ precise-security main restricted universe multiverse

deb http://ubuntu.cn99.com/ubuntu/ precise-backports main restricted universe multiverse

deb http://ubuntu.cn99.com/ubuntu-cn/ precise main restricted universe multiverse

3、sudo apt-get update  更新

6.安装SSH服务(建立无密码登陆本机)

安装openssh-server;

sudo apt-get install ssh

首先要转换成hadoop用户,执行以下命令:

su   hadoop

1.创建ssh-key,这里我们采用rsa方式;

ssh-keygen -t rsa

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

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

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

3. 登录localhost(master);

ssh (localhost)master

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

4. 执行退出命令;

exit

将生成的authorized_keys文件拷贝到两台slave主机相同的文件夹下,命令如下:

scp authorized_keys slave1:~/.ssh/

scp authorized_keys slave2:~/.ssh/

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已经启动了。

7.Hadoop配置

切换为hadoop用户

su hadoop

解压hadoop到/home/hadoop/tools/

tar -zxvf hadoop-2.6.0.tar.gz  /home/hadoop/tools/

将hadoop-2.6.0 改名为hadoop2.6

mv hadoop-2.6.0  hadoop2.6

进入etc下修改配置文件

cd /home/hadoop/tools/hadoop2.6/etc/hadoop

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

sudo gedit hadoop-env.sh

export JAVA_HOME=/home/hadoop/tools/jdk7

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

export JAVA_HOME=/home/hadoop/tools/jdk7

编辑slaves文件,在底部增加

master

slave1

slave2

编辑core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/temp</value>

</property>

</configuration>

编辑hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<!—该数值为slave节点数 -->

<value>3</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<!-- 注意创建相关的目录结构 -->

<value>file:/home/hadoop/dfs/name</value>

<final>true</final>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<!-- 注意创建相关的目录结构 -->

<value>file:/home/hadoop/dfs/data</value>

</property>

</configuration>

编辑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.hostname</name>

<!--  resourcemanager hostname或ip地址-->

<value>master</value>

</property>

</configuration>

编辑mapred-site.xml

默认没有该文件

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

<final>true</final>

</property>

</configuration>

把所有Datanode节点设置可写权限(防止启动服务的时候出错)

sudo chown -R  hadoop:hadoop  /home/hadoop/

启动hadoop

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

bin/hdfs namenode -format

2.在master启动服务

sbin/start-all.sh

3.在master 验证启动进程:

4.在slave 验证启动进程:

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

6. 打开浏览器输入:http://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:

Hi Michael welcome to Hadoop

more see micmiu.com

上传三个文件

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

启动wordcount

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

查看结果输出out文件

bin/ hdfs dfs -cat /user/micmiu/wordcount/out/part-r-00000

8.安装HBase1.1.2

首先登陆官网:

http://apache.fayea.com/hbase/stable/

下载最新版本,这里选取的是hbase1.1.2版本,切换为hadoop用户

su hadoop

解压hadoop到/home/hadoop/tools/

tar -zxvf hbase-1.1.2-bin.tar.gz  /home/hadoop/tools/

将hbase-1.1.2 改名为hbase1

mv hbase-1.1.2  hbase1

进入etc下修改配置文件

cd /home/hadoop/tools/hbase1/conf

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

# The java implementation to use.  Java 1.7+ required.

export JAVA_HOME=/home/hadoop/tools/jdk7

export HBASE_MANAGES_ZK=true

export HBASE_PID_DIR=/home/hadoop/pids

编辑regionservers文件,在底部增加

master

slave1

slave2的IP地址:

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

<configuration>

<property>

<name>hbase.rootdir</name>

<value>hdfs://master:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.master</name>

<value>192.168.16.128:60010</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>192.168.16.128, 192.168.16.129, 192.168.16.130</value>

</property>

<property>

<name>zookeeper.znode.parent</name>

<value>/hbase</value>

</property>

</configuration>

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

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

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

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

每次namenode format会重新创建一个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中指定了如下配置:

<property>
    <name>hadoop.tmp.dir</name>
    <value>/tmp/hadoop/hadoop-${user.name}</value>
  </property>

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

<property>
    <name>hadoop.tmp.dir</name>
    <value>/var/hadoop/hadoop-${user.name}</value>
  </property>

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

重启后即可。

3. 运行wordcount时权限不足

解决方案:

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

<property>

<name>dfs.permissions.enabled</name>

<value>false</value>

</property>

4. 解除安全模式

解决方案:

hadoop dfsadmin -safemode leave

---恢复内容结束---

时间: 2024-08-25 19:40:29

Hadoop 2.6.0+Hbase1.12+mahout0.9 集群搭建的相关文章

Kafka 0.9+Zookeeper3.4.6集群搭建、配置,新Client API的使用要点,高可用性测试,以及各种坑 (转载)

Kafka 0.9版本对java client的api做出了较大调整,本文主要总结了Kafka 0.9在集群搭建.高可用性.新API方面的相关过程和细节,以及本人在安装调试过程中踩出的各种坑. 关于Kafka的结构.功能.特点.适用场景等,网上到处都是,我就不再赘述了,直接进入正文 Kafka 0.9集群安装配置 操作系统:CentOS 6.5 1. 安装Java环境 Zookeeper和Kafka的运行都需要Java环境,所以先安装JRE,Kafka默认使用G1垃圾回收器,如果不更改垃圾回收器

CentOS 6.8平台Oracle 12.1.0.2.0 RAC双节点数据库集群搭建

环境准备 节点一:CentOS 6.8 x86-64 CPU:4c     内存:8g     SWAP:8g 业务ip:192.168.50.20 私网ip:10.98.50.20 节点二:CentOS 6.8 x86-64 CPU:4c     内存:8g     SWAP:8g 业务ip:192.168.60.21 私网ip:10.98.50.21 数据库与集群软件: linuxamd64_12102_grid_1of2.zip linuxamd64_12102_grid_2of2.zip

Ambari 2.6.0 HDP 2.6.3集群搭建

1.安装环境说明 三台机器安装好CentOS-7-x86_64-Minimal-1708.iso 下载地址:https://www.centos.org/download/ 最好在安装时设置好IP和HOSTNAME 三台机器的IP和HOSTNAME下载如下 主 192.168.31.11 SY-001.hadoop 从 192.168.31.12 SY-002.hadoop 从 192.168.31.13 SY-003.hadoop 每个节点设置host [[email protected] ~

Kafka 0.9+Zookeeper3.4.6集群搭建、配置,新版Java Client的使用要点,高可用性测试,以及各种坑(二)

上一节中(点此传送),我们完成了Kafka集群的搭建,本节中我们将介绍0.9版本中的新API,以及Kafka集群高可用性的测试 1. 使用Kafka的Producer API来完成消息的推送 1) Kafka 0.9.0.1的java client依赖: <dependency>     <groupId>org.apache.kafka</groupId>     <artifactId>kafka-clients</artifactId>  

【原创】《从0开始学RocketMQ》—集群搭建

用两台服务器,搭建出一个双master双slave.无单点故障的高可用 RocketMQ 集群.此处假设两台服务器的物理 IP 分别为:192.168.50.1.192.168.50.2. 内容目录 1. 启动 NameServer 集群 2. 启动 Broker 集群 3. RocketMQ 可视化管理控制台:rocketmq-console 4. 集群测试 1. 启动 NameServer 集群 在两台服务器上分别启动 NameServer,可以得到一个无单点故障的 NameServer 服

WAS集群系列(12):集群搭建:步骤10:通过验证程序查看was集群机制

为更好的理解was集群工作机制,让我们在一个节点上将测试程序多刷新几次,来关注一下几个参数:"Local address"."Local port",如下图: 第一次: 第二次: 第三次: 第四次: 将以上结果做一个归纳,会发现规律一目了然,如下图: 刷新次数 Local address Local port server 第一次登陆 10.53.105.63 9080 server1- WIN-PLDC49NNSAA 第二次刷新 10.53.105.66 9081

Ubuntu 12.04下Hadoop 2.2.0 集群搭建(原创)

现在大家可以跟我一起来实现Ubuntu 12.04下Hadoop 2.2.0 集群搭建,在这里我使用了两台服务器,一台作为master即namenode主机,另一台作为slave即datanode主机,增加更多的slave只需重复slave部分的内容即可. 系统版本: master:Ubuntu 12.04 slave:Ubuntu 12.04 hadoop:hadoop 2.2.0 安装ssh服务:sudo apt-get install ssh 有时也要更新一下vim:sudo apt-ge

Ubuntu 12.04下spark1.0.0 集群搭建(原创)

spark1.0.0新版本的于2014-05-30正式发布啦,新的spark版本带来了很多新的特性,提供了更好的API支持,spark1.0.0增加了Spark SQL组件,增强了标准库(ML.streaming.GraphX)以及对JAVA和Python语言的支持: 下面,我们首先进行spark1.0.0集群的安装,在这里我使用了两台服务器,一台作为master即namenode主机,另一台作为slave即datanode主机,增加更多的slave只需重复slave部分的内容即可.: 系统版本

分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建

一.hbase简介 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java.它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,为 Hadoop 提供类似于BigTable 规模的服务.因此,它可以容错地存储海量稀疏的数据.HBase在列上实现了BigTable论文提到的压缩算法.内存操作和布隆过滤器.HBase的表能够作为MapReduce任务的输入和输出,可以通过Java API来存取数据,也可以