Hadoop完全分布式环境搭建(二)—— Hadoop安装及配置

Hadoop集群搭建

布局设计

1.下载Hadoop

1)同样方式解压到app文件夹下 tar -zxvf hadoop-2.7.5.tar.gz -C app/

2)创建文件目录为了便于管理,给Master的hdfs的NameNode、DataNode及临时文件,在用户目录下创建目录:

/root/app/hadoopdata/hdfs/name

/root/app/hadoopdata/hdfs/data
/root/app/hadoopdata/hdfs/tmp
然后将这些目录通过scp命令拷贝到Slave1和Slave2的相同目录下。

2.安装

命令:vi /etc/profile 在最后添加:
export HADOOP_HOME=/root/app/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
退出编辑,执行命令:source /etc/profile
测试:which hadoop 和hadoop version出现以下信息说明Hadoop安装成功。

3.配置Hadoop相关文件

进入hadoop-2.7.1的配置目录:

cd $HADOOP_HOME

cd etc/hadoop

依次修改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml以及slaves文件。

 

1)配置hadoop-env.sh

 

命令:cd $HADOOP_HOME

vim hadoop-env.sh 添加:export JAVA_HOME=/root/app/jdk1.7.0_76

2)配置core-site.xml文件

修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS master(即namenode)的地址和端口号。

命令:vim core-site.xml

<configuration>
<!--配置hdfs文件系统的命名空间-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
//namenode是哪一台主机,就配置哪一台的主机名,我的是master
    </property>
<!-- 配置操作hdfs的存冲大小 -->
    <property>
        <name>io.file.buffer.size</name>
       <value>4096</value>
    </property>
<!-- 配置临时数据存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/root/app/hadoop-2.7.5/data/hdfs/tmp</value>
//临时目录,就是之前创建的目录
    </property>

</configuration>

3)配置hdfs-site.xml文件

命令:vim hdfs-site.xml 添加:

<configuration>
<!--配置副本数-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
<!--hdfs的元数据存储位置-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/root/app/hadoop-2.7.5/data/hdfs/name</value>
    </property>
<!--hdfs的数据存储位置-->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/root/app/hadoop-2.7.5/data/hdfs/data</value>
    </property>
<!--hdfs的namenode的web ui 地址-->
    <property>
        <name>dfs.http.address</name>
        <value>master:50070</value>
    </property>
<!--hdfs的snn的web ui 地址-->
    <property>
        <name>dfs.secondary.http.address</name>
        <value>master:50090</value>
    </property>
<!--是否开启web操作hdfs-->
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
<!--是否启用hdfs权限(acl)-->
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

 

4) 配置mapred-site.xml

由于本身没有./etc/hadoop/mapred-site.xml文件,先执行:mv -f ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml

再执行:vi ./etc/hadoop/mapred-site.xml,添加以下信息

<configuration>
<!--指定maoreduce运行框架-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
<!--历史服务的通信地址-->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
<!--历史服务的web ui地址-->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

5) 配置yarn-site.xml

命令:vi ./etc/hadoop/yarn-site.xml

添加

<configuration>
<!--指定resourcemanager所启动的服务器主机名-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
<!--指定mapreduce的shuffle-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<!--指定resourcemanager的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
<!--指定scheduler的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
<!--指定resource-tracker的内部通讯地址-->
 <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
<!--指定resourcemanager.admin的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
<!--指定resourcemanager.webapp的ui监控地址-->
<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
    </configuration>

6) 置slaves
命令:vi ./etc/hadoop/slaves 

添加:

master
slave1
slave2

 

4.远程分发到其他服务器上

 

将slave1和slave2的Hadoop文件删除掉(路径为/root/app/hadoop-2.7.5/bin)

scp -r ../hadoop-2.7.5/ slave1:/root/app/

scp -r ../hadoop-2.7.5/ slave2:/root/app/

5.启动

之前需要格式化,只需一次就好,在namenode服务器上格式化:hadoop namenode -format

命令:start-all.sh,启动所有服务

6.测试

1)查看进程是否按照规划启动起来

查看Java进程:master             slave1                                    slave2

        

2)利用web ui 来查看,pc端网页访问http://192.168.1.111:50070,进入以下页面(其中遇到打不开的问题,见附)

3)上传和下载文件(测试hdfs).

命令:hdfs dfs -ls /   查看根目录有没有东西,现在没有

将README.txt上传到根目录:hdfs dfs -put ./README.txt /

读文件:hdfs dfs -cat /README.txt

4)跑一个mapreduce的作业(测试yarn)

访问http://192.168.1.111:8088/

执行命令,执行范例中的mapreduce作业,统计README.txt中单词的数量:yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /README.txt /out/00

查看输出文件:hdfs dfs -ls /out/00

查看结果:hdfs dfs -cat /out/00/part-r-00000

执行状态可以在网页查看

 

附:出现的问题及解决方案

1.问题:不能访问http://192.168.1.111:50070/网页

解决:centOS 6.5关闭防火墙

关闭命令:  service iptables stop

永久关闭防火墙:chkconfig iptables off

两个命令同时运行,运行完成后查看防火墙关闭状态:service iptables status

 

### 安装Linux操作系统 由于Hadoop通常运行于Linux平台之上,在此环境下的实现更为稳定,不易出现问题[^1]。 ### 配置SSH服务 对于每一台作为节点的机器而言,需预先通过命令`sudo apt-get install openssh-server`来确保OpenSSH服务器已就绪[^2]。 ### 设置Java环境变量 为了使Hadoop能够正常工作,需要设置Java环境变量。这可以通过向配置文件中追加如下定义完成: ```bash export JAVA_HOME=/usr/local/jdk1.8.0 export HADOOP_HOME=/usr/local/hadoop-2.10.1 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 上述路径应依据实际安装位置调整[^4]。 ### 修改Hadoop配置文件 Hadoop依赖两类重要配置文档来进行设定:一类为只读默认配置;另一类则是特定站点配置,位于`etc/hadoop/`目录下。具体来说,有四个主要配置文件待编辑——`core-site.xml`, `hdfs-site.xml`, `yarn-site.xml` 和 `mapred-site.xml`[^3]。 #### 编辑Core-Site.xml 该文件用于指定NameNode地址及其他全局参数。例如: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode_address:9000</value> </property> </configuration> ``` #### 编辑HDFS-Site.xml 这里可自定义数据块大小、副本数量等属性: ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> ``` #### 编辑YARN-Site.xml 针对资源管理器及其调度策略作出相应规定: ```xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>resourcemanager_hostname</value> </property> </configuration> ``` #### MapRed-Site.xml 最后还需指明MapReduce框架的工作模式,默认情况下它会被映射到YARN上执行作业处理任务: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值