hadoop的安装及填坑

参考https://blog.csdn.net/chanson_dog/article/details/78997227

 

 

 

 

创建账户

创建账户 useradd heitao -m(默认无密码)(-m 表示自动创建家目录)

更改密码 :先切换到root 然后sudopasswd heitao

                     输入密码

修改hosts文件

vi /etc/hosts

添加

192.168.88.3 master

192.168.88.4 node1

192.168.88.5 node2

Vi命令

hadoop的安装及填坑hadoop的安装及填坑hadoop的安装及填坑

 

关闭selinux(注意权限用root)

查看SELinux状态:

1、/usr/sbin/sestatus-v ##如果SELinux status参数为enabled即为开启状态

SELinux status: enabled

2、getenforce ##也可以用这个命令检查

关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0 ##设置SELinux成为permissive模式

##setenforce 1 设置SELinux成为enforcing模式

2、永久关闭(修改配置文件需要重启机器)

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可reboot

关闭防火墙(注意权限用root)

1、firewalld的基本使用

启动: systemctl start firewalld.service

查看状态: systemctl status firewalld.service

停止: systemctl stop firewalld.service

禁用: systemctl disable firewalld.service

免密码登录(用heitao)

1、 在本机下生成公钥/私钥对 用户root

a)       ssh-****** -t rsa -P ''

-P表示密码,-P '' 就表示空密码,

不用-P参数,这样就要三次回车,

-P就一次回车。

b)      该命令将在/root/.ssh目录下面产生一对**id_rsaid_rsa.pub

id_rsa     私钥
id_rsa.pub 公钥

2、 把本机下的/heitao/.ssh/id_rsa.pub 复制到另一台机的 /heitao/.ssh/authorized_keys文件里,先要在另一台机上创建好 /root/.ssh 这个目录(如步骤1)

a)      ssh-copy-id [email protected]master这条命令不用创建authorized_key 会自动创建

ssh-copy-id  [email protected]node1

ssh-copy-id  [email protected]node2

这样master node1node2 都能免密码登录本机了,在从机上重复a步骤

(用xshell可以一条命令同时发送至多台虚拟机)

安装jdk(用heitao)

              a)下载jdk-8u65-linux-x64.tar.gz

              b)解压开 tar -xzvfjdk-8u65-linux-x64.tar.gz

              c)创建/home/heitao/soft/文件夹 mkdir soft

              d)移动tar开的文件到/soft下    mv jdk-1.8.0_65 /home/heitao/soft/

              f)编辑/etc/profile 添加jdk的环境变量

                     vi/etc/profile

                     添加两行

                     exportJAVA_HOME=/home/heitao/soft/jdk-1.8.0_65

                     exprotPATH=$PATH:$JAVA_HOME/bin

              g)使环境变量即刻生效 source /etc/profile

              h)验证jdk安装是否成功    java-version

 

至此 安装hadoop的准备工作完成

 

安装hadoop

              a)下载hadoop-2.7.3.tar.gz

              b)解压开 tar -xzvf hadoop-2.7.3.tar.gz

              c)移动tar开的文件到/home/heitao/soft/下    mv hadoop-2.7.3 /soft/

              d)编辑/etc/profile 添加jdk的环境变量

                     vi/etc/profile

                     添加两行

                     exportHADOOP_HOME=/home/heitao/soft/hadoop-2.7.3

                     exprotPATH=$PATH:$ HADOOP_HOME/bin

              g)使环境变量即刻生效 source /etc/profile

              h)验证hadoop安装是否成功    hadoop-version

配置hadoop

hadoop有三种模式

1.       standalone|local (独立模式)

2.       pesudo(伪分布模式)

3.       full distributed(完全分布式)

1.    standalone(local)

              nothing!

              不需要启用单独的hadoop进程。

      

2.    Pseudodistributedmode  伪分布模式。

              a)进入${HADOOP_HOME}/etc/hadoop目录

              b)编辑core-site.xml

                     <?xmlversion="1.0"?>

                     <configuration>

                            <property>

                                   <name>fs.defaultFS</name>

                                   <value>hdfs://localhost/</value>

                            </property>

                     </configuration>

              c)编辑hdfs-site.xml

                     <?xmlversion="1.0"?>

                     <configuration>

                            <property>

                                   <name>dfs.replication</name>

                                   <value>1</value>

                            </property>

                     </configuration>

              d)编辑mapred-site.xml

                     注意:cp mapred-site.xml.template mapred-site.xml

                     <?xmlversion="1.0"?>

                     <configuration>

                            <property>

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

                                   <value>yarn</value>

                            </property>

                     </configuration>

              e)编辑yarn-site.xml

                     <?xmlversion="1.0"?>

                     <configuration>

                            <property>

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

                                   <value>localhost</value>

                            </property>

                            <property>

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

                                   <value>mapreduce_shuffle</value>

                            </property>

                     </configuration>

3.    fulldistributed(完全分布式)

a)      在/home/heitao/soft/hadoop-2.7.3目录下创建

mkdir tmp

mkdir name

mkdir data

b)      编辑core-site.xml

vi core-site.xml

<configuration>

 

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

 

<property>

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

<value>131072</value>

</property>

 

<property>

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

<value>file:/home/heitao/soft/hadoop-2.7.3/tmp</value>

<description>Abase for other temporarydirectories.</description>

</property>

 

<property>

<name>hadoop.proxyuser.hduser.hosts</name>

<value>*</value>

</property>

 

<property>

<name>hadoop.proxyuser.hduser.groups</name>

<value>*</value>

</property>

 

</configuration>

c)       编辑hdfs-site.xml

vi hdfs-site.xml

<configuration>

 

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>master:9001</value>

</property>

 

<property>

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

<value> file:/home/heitao/soft/hadoop-2.7.3/name</value>

</property>

  

<property>

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

<value> file:/home/heitao/soft/hadoop-2.7.3/data</value>

</property>

 

 <property>

<name>dfs.replication</name>

<value>3</value>

</property>

  

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

 

 <property>

<name>dfs.permissions</name>

<value>false</value>

</property>

 

 </configuration>

d)      编辑mapred-site.xml (没有这个文件需要复制一个)

cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

<configuration>

<property>

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

<value>yarn</value>

</property>

 

 <property>

<name>mapreduce.jobhistory.address</name>

<value>master:10020</value>

</property>

 

 <property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>master:19888</value>

</property>

</configuration>

e)      编辑yarn-site.xml

vi yarn-site.xml

<configuration>

 

<!-- Site specific YARN configuration properties -->

<property>

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

<value>mapreduce_shuffle</value>

</property>

 

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

  

<property>

<name>yarn.resourcemanager.address</name>

<value>master:8032</value>

</property>

 

 <property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>master:8030</value>

</property>

 

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>master:8031</value>

</property>

 

 <property>

<name>yarn.resourcemanager.admin.address</name>

<value>master:8033</value>

</property>

  

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>master:8088</value>

</property>

  

</configuration>

f)        编辑hadoop-env.sh(改jdk的路径)

export JAVA_HOME=/home/heitao/soft/jdk-1.8.0_65

g)      编辑yarn-env.sh(改jdk的路径)

export JAVA_HOME=/home/heitao/soft/jdk-1.8.0_65

export前面有#号的 把#号去掉

h)      编辑slaves

vi slaves

master(加上master主机也只作为slave啦  )

node1

node2、

分发配置好的Hadoop给其它节点

在/home/heitao/soft目录下

       scp-r hadoop-2.7.3 [email protected]:/home/heitao/soft/

scp -rhadoop-2.7.3 [email protected]:/home/heitao/soft/

格式化namenode

cd $HADOOP_HOME/bin

./hdfs namenode –format

hadoop的安装及填坑

 

 

出现红圈中的successfully就表示格式化成功啦

 

 

启动Hadoop集群

cd $HADOOP_HOME/sbin

./start-all.sh

Jps命令查看启动的进程

 

hadoop的安装及填坑

 

 

Slaves文件里没写master 那么 master下jps就看不到DataNode 、NodeManager

hadoop的安装及填坑

hadoop的安装及填坑

 

到这里 如果一切顺利的话 Hadoop就安装完成了下面就是一些坑了

 

 

格式化namenode失败

删除hadoop-2.7.3目录下的tmpname data logs里面的内容,检查配置,然后重新格式化

rm -rf tmp/*

rm -rf name/*

rm -rf data/*

rm -rf logs/*

主机jps不显示 datanode和namenode进程

Hadoop/etc/hadoop目录下slaves要加上你的Master(主机名)

50070端口没有liveDataNode原因

关闭selinux

Linux 修改主机名

注意:想要修改主机名首先要知道你自己使用的Linux是什么版本的 不同版本的保存主机名的文件不同

接下来步入正题

1、查看主机名

其一,打开一个终端窗口,在命令提示符中可以看到主机名,主机名通常位于“@”符号后;

其二,在终端窗口中输入命令: hostnameuname –n,均可以查看到当前主机的主机名。

2、临时修改主机名

命令行下运行命令:hostname 新主机名

注意:这样主机名字就临时被修改为ubuntu-temp,但是终端下不会立即显示生效后的主机名,重开一个终端窗口(通过ssh连接的终端需要重新连接才可以)

3、永久修改主机名

在其它Linux发行版中,并非都存在 /etc/hostname 文件。如Fedora 发行版将主机名存放在 /etc/sysconfig/network 文件中。所以,修改主机名时应注意区分是哪种 Linux 发行版。

4、/etc/hostname 与 /etc/hosts 的区别

/etc/hostname 中存放的是主机名

/etc/hosts 存放的是域名与ip的对应关系,域名与主机名没有任何关系,你可以为任何一个IP指定任意一个名字