hadoop相关(包含hbase)伪分布式环境搭建


1  环境准备

1.1     JDK安装

1.1.1         版本

         使用1.7或1.7以上版本的JDK

1.1.2         安装

         解压环境包:tar -zxvf jdk-7.tgz

         移动到/data/下:mvjdk1.7  /data/jdk

1.1.3         环境变量

         执行命令 vi /etc/profile, 添加变量:

         export JAVA_HOME=/data/jdk

         export PATH=$PATH:$JAVA_HOME/bin

         exportCLASSPATH=.:$JAVA_HOME/jre/lib/:$JAVA_HOME/lib/

        

         执行命令: source /etc/profile使修改后的profile文件生效。

1.1.4         验证

执行命令:java -version  成功显示java版本,则没有问题。

1.2     设置host

执行命令 vi /etc/hosts,添加下面内容:

         192.168.4.100  corenode

1.3     ssh免密码设置

1.3.1         安装

         执行下面的命令:

         ssh-keygen -t dsa -P '' -f~/.ssh/id_dsa

         解释:ssh-keygen 代表生成密钥;-t 表示指定生成的密钥类型;dsa 是dsa密钥认证的意思; -P 用于提供密语(接着后面是两个单引号,不要打错);-f 表示指定生成密钥文件。

 

         这条命令完成后,会在当前文件夹下面的 .ssh 文件夹下创建 id_dsa和 id_dsa.pub 两个文件,这是 SSH 的一对私钥和公钥,把id_dsa.pub (公钥)追加到授权的key 中去,输入如下命令:

         cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

1.3.2         验证

         输入口令用ssh登录corenode:

         ssh corenode

        

         显示登录成功信息即可。

1.4     zookeeper

1.4.1         版本

zookeeper-3.4.5

1.4.2         安装

解压环境包: tar -xvfzookeeper-3.4.5.tar.gz

移动到/data/下: mv zookeeper-3.4.5 /data/zookeeper

创建默认配置文件: cp/data/zookeeper/conf/zoo_sample.cfg /data/zookeeper/conf/zoo.cfg

1.4.3         添加环境变量

执行命令 vi /etc/profile,添加变量:

exportZOOKEEPER_HOME=/data/zookeeper

exportPATH=$PATH:$ZOOKEEPER_HOME/bin

执行命令: source/etc/profile使修改后的profile文件生效       

1.4.4         添加host

执行命令: vim /etc/hosts 添加每台地址主机名:

192.168.3.201  corenode

192.168.3.202  datanode01

192.168.3.203  datanode02

1.4.5         创建myid文件

在${dataDir}目录中执行命令: echo ""1"" > myid ,其中""1""表示此服务器的编号.

该数字必须和zoo.cfg文件中的server.X中的X一一对应.

集群安装时,每个节点上都要生成myid的文件,且编号不能相同.

例: 假如刚才设置的是节点1上的.那么:

节点2上: #echo ""2"" >/data/zookeeper/myid

节点3上: #echo ""3"" >/data/zookeeper/myid

 

1.4.6         关键配置参数(zoo.cfg)        

配置文件在conf文件夹中,将zoo_sample.cfg改名为zoo.cfg,并对其做如下修改:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/data/zookeeper/data

dataLogDir=/data/zookeeper/logs

clientPort=2181

maxClientCnxns=300 (根据zookeeper管理的服务多少确定,默认值是60)

autopurge.snapRetainCount=3

autopurge.purgeInterval=1

#server.A=B:C:D

# A是一个数字,表示这是第几号服务器

#B是当前服务器的ID或者主机名

#C是Follower服务器与Leader服务器交换信息的端口

#D是当Leader挂掉时,重新选举Leader所使用的端口

server.1=corenode:2888:3888

server.2=datanode01:2888:3888

server.3=datanode02:2888:3888

1.4.7         启动zk

执行命令: ./zkServer.shstart &

1.4.8         验证安装是否成功

执行命令:jps  查看是否有QuorumPeerMain进程,如没有,则启动未成功。 查看/data/zookeeper/bin/目录上的zookeeper.out文件,排查未成功原因。

2  HADOOP

2.1     版本

到官方网站下载Hadoop稳定版本安装包:https://hadoop.apache.org。

目前使用的版本是:hadoop-2.5.2.tar.gz

2.2     安装

解压命令再啰嗦下:tar  -zxvf  hadoop-2.5.2.tar.gz

然后重命名:cp  hadoop-2.5.2  /data/hadoop

2.3     文件句柄信息配置

执行如下的命令:

echo'*  -  nofile 65535' >> /etc/security/limits.conf
ulimit -n 65535
ulimit -n

2.4     环境变量

2.4.1         profile

执行命令 vi /etc/profile, 添加变量:

         exportHADOOP_HOME=/data/hadoop

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

        

         执行命令: source/etc/profile使修改后的profile文件生效。

2.4.2         hadoop-env.sh

执行命令 vi {HADOOP_HOME}/etc/hadoop/hadoop-env.sh,修改变量:

         exportJAVA_HOME="/data/jdk" #设置java环境变量

export HADOOP_SSH_OPTS="-p 22080"  #如果修改了SSH登录端口,一定要修改此配置。

2.5     验证

执行命令:hadoop version 成功展示hadoop的版本信息,则没有问题。

2.6     修改配置文件

{HADOOP_HOME}/etc/hadoop目录下伪分布的两个置文件:

core-site.xml:全局配置文件。

hdfs-site.xml:HDFS配置文件。

2.6.1         core-site.xml

 <configuration>

    <property>

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

       <value>/data/hadoop/tmp</value>

   </property>

   <property>

       <name>fs.defaultFS</name>

       <value>hdfs://corenode:9000</value>

   </property>

   <property>

       <name>io.file.buffer.size</name>

       <value>65536</value>

   </property>

         <property>

                  <name>fs.trash.interval</name>   

                  <value>1440</value>   

         </property>

 </configuration>

2.6.2         hdfs-site.xml

<configuration>

 <property>

   <name>dfs.replication</name>

   <value>1</value>

 </property>

 <property>

   <name>dfs.blocksize</name>

   <value>268435456</value>

 </property>

 <property>

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

   <value>/data/hadoop/dfs/name</value>

 </property>

 <property>

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

   <value>/data/hadoop/dfs/data</value>

 </property>

</configuration>

2.6.3         格式化namenode

执行命令:hdfs namenode -format

成功的话,会看到“successfully formatted”和 “Exittingwith status 0”的提示,若为 “Exittingwith status 1”则是出错。如下图:

 

如果在这一步时提示 Error: JAVA_HOME is not set and could not be found. 的错误,则说明之前设置JAVA_HOME 环境变量那边就没设置好,请按教程先设置好 JAVA_HOME 变量,否则后面的过程都是进行不下去的。

2.7     启动HADOOP

执行命令:start-dfs.sh

若出现如下SSH提示,输入yes即可。

启动时可能会出现如下 WARN 提示:WARN util.NativeCodeLoader: Unable to load native-hadoop library foryour platform… using builtin-java classes where applicable。该 WARN 提示可以忽略,并不会影响正常使用(该 WARN 可以通过编译 Hadoop 源码解决)。

 

启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode”和 “SecondaryNameNode”(如果SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。

 

成功启动后,可以访问 Web 界面 http://corenode:50070 查看 NameNode 和 Datanode 信息,还可以在线查看HDFS 中的文件。

 

至此,hdfs已经可以使用。不启动yarn也可以,不会影响程序执行。

3  YARN

         YARN是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性。

         上述通过./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。

3.1     修改配置文件

以下两个配置文件均在{HADOOP_HOME}/etc/hadoop目录下。

3.1.1         mapred-site.xml

执行命令:

mv  mapred-site.xml.template  mapred-site.xml

vim mapred-site.xml,添加下面配置:

<configuration>

     <property>

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

          <value>yarn</value>

     </property>

</configuration>

3.1.2         yarn-site.xml

vim yarn-site.xml,添加下面配置:

<configuration>

         <property>

       <name>yarn.resourcemanager.hostname</name>

       <value>corenode</value>

   </property>

   <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

   </property>

         <property>

       <name>yarn.nodemanager.resource.cpu-vcores</name>

       <value>4</value>

   </property>

</configuration>

3.2     启动YARN

执行命令:

start-yarn.sh      # 启动YARN

mr-jobhistory-daemon.sh starthistoryserver  #开启历史服务器,才能在Web中查看任务运行

 

开启后通过 jps 查看,可以看到多了 NodeManager 和 ResourceManager 两个后台进程。

 

启动 YARN 之后,运行实例的方法还是一样的,仅仅是资源管理方式、任务调度不同。观察日志信息可以发现,不启用 YARN 时,是“mapred.LocalJobRunner”在跑任务,启用 YARN 之后,是“mapred.YARNRunner”在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况:http://corenode:8088/cluster。

 

但 YARN 主要是为集群提供更好的资源管理与任务调度,然而这在单机上体现不出价值,反而会使程序跑得稍慢些。因此在单机上是否开启 YARN 就看实际情况了。

4  HBASE

4.1     版本

目前使用的版本是:hbase-0.98.17-hadoop2-bin.tar.gz

4.2     安装

解压:tar  -zxvf  hbase-0.98.17-hadoop2-bin.tar.gz

然后重命名:cp  hbase-0.98.17-hadoop2/data/hbase

4.3     环境变量

执行命令 vi /etc/profile,在文件最后添加变量:

         exportHBASE_HOME=/data/hbase

         exportPATH=$PATH:$HBASE_HOME/bin

        

         执行命令:source/etc/profile使修改后的profile文件生效。

4.4     修改配置文件

4.4.1         hbase-env.sh

执行命令 vi { HBASE_HOME}/conf/hbase-env.sh,修改变量:

         exportJAVA_HOME="/data/jdk" #设置java环境变量

         exportHBASE_HEAPSIZE=4000 #默认是 1000

         exportHBASE_OPTS="-XX:+UseConcMarkSweepGC"

export HBASE_SSH_OPTS="-p 22080"  #如果修改了SSH登录端口,一定要修改此配置。

         exportHBASE_PID_DIR=/data/hbase/pids

         exportHBASE_MANAGES_ZK=false

4.4.2         hbase-site.xml

   <property>

     <name>hbase.rootdir</name>

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

          <description> corenode:9000,需与core-site.xml中的fs.defaultFS一致!</description>

   </property>

   <property>

     <name>hbase.zookeeper.property.dataDir</name>

     <value>/data/hbase/zookeeperdata</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>data80</value>

  </property>

   <property>

     <name>hbase.hregion.max.filesize</name>

     <value>536870912000</value>

  </property>  

  <property>

     <name>hbase.hregion.memstore.flush.size</name>

     <value>67108864</value>

  </property>

  <property>

      <name>hbase.hstore.compaction.min</name>

      <value>3</value>

  </property>

  <property>

      <name>hbase.hstore.compaction.max</name>

      <value>4</value>

  </property>

  <property>

      <name>hbase.hregion.majorcompaction</name>

      <value>0</value>

  </property>

  <property>

      <name>hbase.regionserver.restart.on.zk.expire</name>

      <value>true</value>

  </property>

  <property>

      <name>zookeeper.session.timeout</name>

      <value>180000</value>

  </property>

4.5     启动HBASE

执行命令:start-hbase.sh

执行命令后,执行jps 命令会有HMaster和HRegionServer两个进程存在。

 

关闭命令:stop-hbse.sh

启动顺序:先启动Hadoop–>再启动HBase,关闭顺序:先关闭HBase–>再关闭Hadoop。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值