安装版本 hadoop-2.0.0-cdh4.2.0hbase-0.94.2-cdh4.2.0hive-0.10.0-cdh4.2.0jdk1.6.0_38 安装前说明 安装目录为/opt 检查hosts文件 关闭防火墙 设置时钟同步 使用说明 安装hadoop、hbase、hive成功之后启动方式为: 启动dfs和mapreduce desktop1上执行start-
安装版本
<code>hadoop-2.0.0-cdh4.2.0hbase-0.94.2-cdh4.2.0hive-0.10.0-cdh4.2.0jdk1.6.0_38</code>
安装前说明
- 安装目录为/opt
- 检查hosts文件
- 关闭防火墙
- 设置时钟同步
使用说明
安装hadoop、hbase、hive成功之后启动方式为:
- 启动dfs和mapreduce desktop1上执行start-dfs.sh和start-yarn.sh
- 启动hbase desktop3上执行start-hbase.xml
- 启动hive desktop1上执行hive
规划
<code> 192.168.0.1 NameNode、Hive、ResourceManager 192.168.0.2 SSNameNode 192.168.0.3 DataNode、HBase、NodeManager 192.168.0.4 DataNode、HBase、NodeManager 192.168.0.6 DataNode、HBase、NodeManager 192.168.0.7 DataNode、HBase、NodeManager 192.168.0.8 DataNode、HBase、NodeManager</code>
部署过程
系统和网络配置
-
修改每台机器的名称
[root@desktop1 ~]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=desktop1
-
在各个节点上修改/etc/hosts增加以下内容:
[root@desktop1 ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.0.1 desktop1192.168.0.2 desktop2192.168.0.3 desktop3192.168.0.4 desktop4192.168.0.6 desktop6192.168.0.7 desktop7192.168.0.8 desktop8
-
配置ssh无密码登陆 以下是设置desktop1上可以无密码登陆到其他机器上。
[root@desktop1 ~]# ssh-keygen [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop2 [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop3 [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop4 [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop6 [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop7 [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop8
- 每台机器上关闭防火墙:
<code> [root@desktop1 ~]# service iptables stop</code>
安装Hadoop
配置Hadoop
将jdk1.6.0_38.zip上传到/opt,并解压缩。 将hadoop-2.0.0-cdh4.2.0.zip上传到/opt,并解压缩。
在NameNode上配置以下文件:
<code>core-site.xml fs.defaultFS指定NameNode文件系统,开启回收站功能。hdfs-site.xml dfs.namenode.name.dir指定NameNode存储meta和editlog的目录, dfs.datanode.data.dir指定DataNode存储blocks的目录, dfs.namenode.secondary.http-address指定Secondary NameNode地址。 开启WebHDFS。slaves 添加DataNode节点主机</code>
- core-site.xml 该文件指定fs.defaultFS连接desktop1,即NameNode节点。
<code>[root@desktop1 hadoop]# pwd/opt/hadoop-2.0.0-cdh4.2.0/etc/hadoop[root@desktop1 hadoop]# cat core-site.xml <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!---ecms -ecms fs.default.name for MRV1 ,fs.defaultFS for MRV2(yarn) --> fs.defaultFS <!---ecms -ecms 这个地方的值要和hdfs-site.xml文件中的dfs.federation.nameservices一致--> hdfs://desktop1fs.trash.interval10080fs.trash.checkpoint.interval10080</code>
- hdfs-site.xml 该文件主要设置数据副本保存份数,以及namenode、datanode数据保存路径以及http-address。
<code>[root@desktop1 hadoop]# cat hdfs-site.xml <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?> dfs.replication 1 hadoop.tmp.dir /opt/data/hadoop-${user.name}dfs.namenode.http-addressdesktop1:50070dfs.namenode.secondary.http-addressdesktop2:50090dfs.webhdfs.enabledtrue</code>
- masters 设置namenode和secondary namenode节点。
<code>[root@desktop1 hadoop]# cat masters desktop1desktop2</code>
- slaves 设置哪些机器上安装datanode节点。
<code>[root@desktop1 hadoop]# cat slaves desktop3desktop4desktop6desktop7desktop8</code>
配置MapReduce
- mapred-site.xml 配置使用yarn计算框架,以及jobhistory的地址。
<code>[root@desktop1 hadoop]# cat mapred-site.xml<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?> mapreduce.framework.name yarn mapreduce.jobhistory.address desktop1:10020 mapreduce.jobhistory.webapp.address desktop1:19888</code>
- yarn-site.xml 主要配置resourcemanager地址以及
yarn.application.classpath
(这个路径很重要,要不然集成hive时候会提示找不到class)
<code>[root@desktop1 hadoop]# cat yarn-site.xml <?xml version="1.0"?> yarn.resourcemanager.resource-tracker.address desktop1:8031 yarn.resourcemanager.address desktop1:8032 yarn.resourcemanager.scheduler.address desktop1:8030 yarn.resourcemanager.admin.address desktop1:8033 yarn.resourcemanager.webapp.address desktop1:8088 Classpath for typical applications. yarn.application.classpath $HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*, $HADOOP_COMMON_HOME/share/hadoop/common/lib/*, $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*, $YARN_HOME/share/hadoop/yarn/*,$YARN_HOME/share/hadoop/yarn/lib/*, $YARN_HOME/share/hadoop/mapreduce/*,$YARN_HOME/share/hadoop/mapreduce/l<div style="color:transparent">本文来源gaodai^.ma#com搞#代!码网</div>ib/* yarn.nodemanager.aux-services mapreduce.shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.nodemanager.local-dirs /opt/data/yarn/local yarn.nodemanager.log-dirs /opt/data/yarn/logs Where to aggregate logs yarn.nodemanager.remote-app-log-dir /opt/data/yarn/logs yarn.app.mapreduce.am.staging-dir /user </code>
同步配置文件
修改.bashrc环境变量,并将其同步到其他几台机器,并且source .bashrc
<code>[root@desktop1 ~]# cat .bashrc # .bashrcalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'# Source global definitionsif [ -f /etc/bashrc ]; then . /etc/bashrcfi# User specific environment and startup programsexport LANG=zh_CN.utf8export JAVA_HOME=/opt/jdk1.6.0_38export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=./:$JAVA_HOME/lib:$JRE_HOME/lib:$JRE_HOME/lib/tools.jarexport HADOOP_HOME=/opt/hadoop-2.0.0-cdh4.2.0export HIVE_HOME=/opt/hive-0.10.0-cdh4.2.0export HBASE_HOME=/opt/hbase-0.94.2-cdh4.2.0export HADOOP_MAPRED_HOME=${HADOOP_HOME}export HADOOP_COMMON_HOME=${HADOOP_HOME}export HADOOP_HDFS_HOME=${HADOOP_HOME}export YARN_HOME=${HADOOP_HOME}export HADOOP_YARN_HOME=${HADOOP_HOME}export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin</code>
修改配置文件之后,使其生效。
<code>[root@desktop1 ~]# source .bashrc </code>
将desktop1上的/opt/hadoop-2.0.0-cdh4.2.0拷贝到其他机器上
启动脚本
第一次启动hadoop需要先格式化NameNode,该操作只做一次。当修改了配置文件时,需要重新格式化
<code>[root@desktop1 hadoop]hadoop namenode -format</code>
在desktop1上启动hdfs:
<code>[root@desktop1 hadoop]#start-dfs.sh</code>
在desktop1上启动mapreduce:
<code>[root@desktop1 hadoop]#start-yarn.sh</code>
在desktop1上启动historyserver:
<code>[root@desktop1 hadoop]#mr-jobhistory-daemon.sh start historyserver</code>
查看MapReduce:
<code>http://desktop1:8088/cluster</code>
查看节点:
<code>http://desktop2:8042/http://desktop2:8042/node</code>
检查集群进程
<code>[root@desktop1 ~]# jps5389 NameNode5980 Jps5710 ResourceManager7032 JobHistoryServer[root@desktop2 ~]# jps3187 Jps3124 SecondaryNameNode[root@desktop3 ~]# jps3187 Jps3124 DataNode5711 NodeManager</code>