终于进入了最核心,同样也是为以后打的最基础的操作——hadoop的集群安装与配置

要问那之前的算什么    emmm

充其量算是虚拟机啦,linux啦,基础环境什么的准备工作

话不多说,正式开始。首先,我们需要去官网下载个hadoop的包,要linux版本的压缩包,应该是以tar.gz为结尾的,至于版本,不要最新的,因为最新的话很可能会出现生态圈开发不完全,与低版本不匹配等情况,我们这里以2.5.2为例

我们将下载好的hadoop-2.5.2.tar.gz通过xshell-xftp传输到master的~/目录下,然后:

        1.解压:tar -xvf hadoop-2.5.2.tar.gz

第二步,修改hadoop的配置文件;我们应该都有所了解过,hadoop大体分及部分:hdfs,yarn,mapreduce,common

        而这几部分都有一个甚至几个专属于自己的配置文件,当然,也就是hadoop的配置文件。根据我们的不同需求,不同形式当然要选择不同的配置,所以这一部分必然是要修改的。我们这里就说一说最简单的,最基本的书写方式,够用,能跑起来就行了!

        1.配置环境变量hadoop-env,sh  :cd /hadoop2.5.2/etc/Hadoop/

                                                              vi hadoop-env.sh     

其中有一段声明JAVA_HOME的代码,改便如下(以我的为例,路径携程你们的JAVA_HOME地址)

# optional.  When running a distributed configuration it is best to
 # set JAVA_HOME in this file, so that it is correctly defined on
 # remote nodes.# The java implementation to use.
 export JAVA_HOME=/root/jdk1.8.0_151/# The jsvc implementation to use. Jsvc is required to run secure data
 nodes.#export JSVC_HOME=${JSVC_HOME}

        2.配置变量yarn-env.sh : vi yarn-env.sh  操作一样,改JAVA_HOME,具体如下:

# resolve links - $0 may be a softlink
 export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"# some Java parameters
 export JAVA_HOME=/root/jdk1.8.0_151/
 if [ "$JAVA_HOME" != "" ]; then
   #echo "run java in $JAVA_HOME"
   JAVA_HOME=$JAVA_HOME
 fi
   
 if [ "$JAVA_HOME" = "" ]; then
   echo "Error: JAVA_HOME is not set."
   exit 1
 fi

        3.配置核心组件core-site.xml : 这里要放一个hdfs的路径地址什么的,所以需要在别处随意选个目录来盛放HDFS,我就另建一个hadoopdata文件夹了

        cd

        mkdir hadoopdata

        cd hadoop2.5.2/etc/hadoop/

        vi core-site.xml  : 添加内容具体如下:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/root/hadoopdata</value>
    </property>
</configuration>

        4.配置文件系统hdfs-site.xml : vi hdfs-site.xml  这里设置每个节点中的数据一共复制几份(hdfs的策略,为了防止数据丢失,每份数据正常是要在默认复制三份放在不同的节点里,正常应该是同一机柜中的相邻结点放一个,相邻机柜中在找两个结点放置备份),当然,一个伪分布式不必认真,总共也没那些结点,就设置一个好了,具体添加内容如下:

<property>
<name>dfs.replication</name>
<value>1</value>
</property>

        5.配置文件系统yarn-site.xml : vi yarn-site.xml  具体如下:

<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
<property> <name>yarn.resourcemanager.address</name> <value>master:8040</value> </property>
<property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property>
<property> <name>yarn.resourcemanager.resource-tracker.address</name>  <value>master:8025</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8141</value> </property>
<property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property>

        6.配置计算框架mapred-site.xml : cp mapred-sited.xml.template mapred-site.xml

                                                                vi mapred-site.xml  : 具体如下

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

        7.配置slaves文件,里面放置一切slave结点的主机名(存在master节点中hosts里的内种,一行一个)

        vi slaves    内容大致如下(以我为例)

slave1

slave2

第三步:hadoop部署

        1.把hadoop文件,包括之前的hadoopdata什么的都复制到slave上:

                                    scp -r hadoop-2.5.2 root@slave1:~/

                                    scp -r hadoop-2.5.2 root@slave2:~/

        2.配置hadoop环境变量:

cd 
vi .bash_profile

export HADOOP_HOME=/root/hadoop-2.5.2

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

第四步: 第一次需要格式化hdfs文件系统,命令为:hdfs   namenode -format

第五步: 启动hadoop  命令为: start-all.sh

第五步: 验证结点启动情况,在master中使用jps命令,显示的数据中必要有:namenode,secondarynamenode,resourceManager,jps

在slave中使用jps命令,出现的数据必要有:datanode,jps

那个没有就代表那个没起来,回去逐步检查,是不是哪里出了问题,哪里字母打错了什么的

第六步:打开hadoop的ui界面验证,在逐季或者虚拟机的浏览器中打开都行,地址为:192.168.1.2:50070

其实最主要的是端口号为50070,前面的ip地址为你给master设置的ip,总的来说就是masterIp:/50070/

登入界面进去后查看lifeNode(活着的节点)和deadNode(死去节点)数目,不要有挂掉的结点就没问题

第七步: 实例运行——求Π值,当然算出来的结果未必正确,但是能跑就行

代码:

cd ~/hadoop-2.5.2/share/hadoop/mapreduce/
hadoop jar ~/hadoop-2.5.2/share/hadoop/mapreduce
/hadoop-mapreduce-examples-2.5.1.jar pi 10 10