hadoop安装教程,分布式配置 CentOS7 Hadoop3.1.2 CentOS7卸载 OpenJDK 安装Sun的JDK8

 

安装前的准备

1、 准备4台机器、或虚拟机

4台机器的名称和IP对应以下html

master:192.168.199.128java

slave1:192.168.199.129node

slave2:192.168.199.130linux

slave3:192.168.199.131vim

 

二、分别为4台机器安装JDK8

步骤详细请参考: CentOS7卸载 OpenJDK 安装Sun的JDK8浏览器

 

三、为4台机器配置host name

192.168.199.128配置hostname为masterapp

192.168.199.129配置hostname为slave1框架

192.168.199.130配置hostname为slave2ssh

192.168.199.131配置hostname为slave3分布式

 具体操做为:

执行以下命令修改本身所用节点的IP映射:

$ sudo vim /etc/hosts

咱们在 /etc/hosts 中将该映射关系填写上去便可,以下图所示(通常该文件中只有一个 127.0.0.1,其对应名为 localhost,若是有多余的应删除,特别是不能有 “127.0.0.1 Master” 这样的记录)

4台机器执行上面一样操做,所有配置相同的hostname

 

四、为master机器配置 slave一、slave二、slave3的SSH免密登陆

这个操做是要让 Master 节点能够无密码 SSH 登录到各个 Slave 节点上。

首先生成 Master 节点的公匙,在 Master 节点的终端中执行(由于改过主机名,因此还须要删掉原有的再从新生成一次)

$ cd ~/.ssh               # 若是没有该目录,先执行一次ssh localhost
$ rm ./id_rsa*            # 删除以前生成的公匙(若是有)
$ ssh-keygen -t rsa       # 一直按回车就能够

 让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行:

cat ./id_rsa.pub >> ./authorized_keys

完成后可执行 ssh Master 验证一下(可能须要输入 yes,成功后执行 exit 返回原来的终端)。接着在 Master 节点将上公匙传输到 Slave1 节点:

$ scp ~/.ssh/id_rsa.pub root@slave1:/home

scp 是 secure copy 的简写,用于在 Linux 下进行远程拷贝文件,相似于 cp 命令,不过 cp 只能在本机中拷贝。执行 scp 时会要求输入 Slave1 上 hadoop 用户的密码(hadoop),输入完成后会提示传输完毕,以下图所示:

接着在 Slave1 节点上,将 ssh 公匙加入受权:

$ mkdir ~/.ssh       # 若是不存在该文件夹需先建立,若已存在则忽略
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ rm id_rsa.pub    # 用完就能够删掉了

若是有其余 Slave 节点,也要执行将 Master 公匙传输到 Slave 节点、在 Slave 节点上加入受权这两步。

这样,在 Master 节点上就能够无密码 SSH 到各个 Slave 节点了,可在 Master 节点上执行以下命令进行检验,以下图所示:

$ ssh slave1

 

 slave二、slave3 执行以上一样操做,将maser的公钥文件导入到本身的authorized_keys文件中,而后测试master的免密登陆

 

Hadoop安装教程分布式配置 CentOS7 Hadoop3.1.2

 

3 安装hadoop

一、在linux根路径建立目录cloud:sudo mkdir cloud

二、解压hadoop到cloud目录中:tar -zxvf hadoop-2.2.0.tar.gz -C /cloud/

三、进入目录:/cloud/hadoop/etc/hadoop

3、修改配置文件

一、修改hadoop-env.sh,配置java jdk路径,大概在27行配置,以下:

export JAVA_HOME=/home/software/jdk1.7

二、修改core-site.xml,配置内容以下

1
2
3
4
5
6
7
8
9
10
11
12
< configuration >
     <!-- 指定HDFS老大(namenode)的通讯地址 -->
< property >
     < name >fs.defaultFS</ name >
     < value >hdfs://locahost:9000</ value >
</ property >
     <!-- 指定hadoop运行时产生文件的存储路径 -->
< property >
         < name >hadoop.tmp.dir</ name >
         < value >/cloud/hadoop/tmp</ value >
</ property >
</ configuration >

三、修改hdfs-site.xml,修改配置以下

1
2
3
4
5
<!-- 设置hdfs副本数量 -->
< property >
     < name >dfs.replication</ name >
     < value >1</ value >
</ property >

四、修改mapred-site.xml 因为在配置文件目录下没有,须要修更名称:mv mapred-site.xml.template mapred-site.xml

复制代码
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>
复制代码

五、修改yarn-site.xml,修改内容以下

1
2
3
4
5
6
7
8
9
10
11
< configuration >
<!-- reducer取数据的方式是mapreduce_shuffle -->
< property >
     < name >yarn.nodemanager.aux-services</ name >
     < value >mapreduce_shuffle</ value >
</ property >
< property >
     < name >yarn.resourcemanager.hostname</ name >
     < value >localhost</ value >
</ property >
</ configuration >

六、讲hadoop添加到环境变量,而后更新一下环境变量:source /etc/profile

export JAVA_HOME=//home/software/jdk1.7
export HADOOP_HOME=/cloud/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
.7. workers中设置slave节点,将slave机器的名称写入
  1. slave1
  2. slave2
  3. slave3

 

4、启动hadoop

一、格式化hadoop,进入目录:/cloud/hadoop/etc/hadoo,执行下列之一命令便可


hdfs namenode -format

二、启动hdfs和yarn

先启动HDFS
sbin/start-dfs.sh

再启动YARN
sbin/start-yarn.sh

三、验证是否成功,使用命令:jps,输出以下即表示配置成功。

1
2
3
4
5
6
7
12272 Jps
4135 JobTracker
9500 SecondaryNameNode
9943 NodeManager
9664 ResourceManager
8898 NameNode
9174 DataNode

四、能够在浏览器中查看hdfs和mr的状态.hdfs管理界面:http://localhost:50070  MR的管理界面:http://localhost:8088 

5、hdfs基本操做和wordcount程序

 一、进入hadoop安装目录中的share:/cloud/hadoop/share/hadoop/mapreduce

二、ls列出当前路径下的文件,内容以下,其中带有example字样的为样例程序

1
2
3
4
5
6
7
8
9
10
11
12
hadoop-mapreduce-client-app-2.2.0.jar
hadoop-mapreduce-client-common-2.2.0.jar
hadoop-mapreduce-client-core-2.2.0.jar
hadoop-mapreduce-client-hs-2.2.0.jar
hadoop-mapreduce-client-hs-plugins-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0-tests.jar
hadoop-mapreduce-client-shuffle-2.2.0.jar
hadoop-mapreduce-examples-2.2.0.jar
lib
lib-examples
sources

 三、新建words文件,内容输入以下,而后使用命令上传到hdfs目录下:hadoop fs -put words hdfs://localhost:9000/words

1
2
3
4
hello tom
hello kitty
hello world
hello tom

四、在命令行中敲入:hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcounthdfs://localhost:9000/wordshdfs://localhost:9000/out

五、打开页面:http://192.168.199.128:9870

 

 

 

六、点击上图中的Browse the filesystem,跳转到文件系统界面,以下所示:

 

七、继续点击上图的out/part-r-00000,wordcount程序最终运行的结果如图所示:

 

 

 

5可能出现的错误提示

there is no YARN_RESOURCEMANAGER_USER defined

there is no HDFS_NAMENODE_USER defined

解决办法:

将start-dfs.sh,stop-dfs.sh两个文件顶部添加如下参数

HDFS_NAMENODE_USER=root

HDFS_DATANODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

YARN_RESOURCEMANAGER_USER=root

YARN_NODEMANAGER_USER=root

 

 start-yarn.sh,stop-yarn.sh顶部也需添加如下

YARN_RESOURCEMANAGER_USER=root

HADOOP_SECURE_DN_USER=yarn

YARN_NODEMANAGER_USER=root

相关文章
相关标签/搜索