前置1:配置好java

vim /etc/profile
#java
export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

前置2:主机映射配置,配置后要重启(虚拟机为centos7)

设置自己的主机名

vim /etc/hostname,将localhost改成hadoop100

配置IP-主机名映射

vim /etc/hosts


#ip地址 主机名/域名 (主机别名) 192.168.10.100 hadoop100


vi /etc/sysconfig/network
 # Created by anaconda
 NETWORKING=yes
 HOSTNAME=hadoop100
 重启:reboot

前置3:安装SSH服务

#root账号登录安装SSH
yum install -y openssl openssh-server
yum install rsync

#root账户修改配置文件,去掉permitrootlogin前面的注释
vim /etc/ssh/sshd_config

#启动SSH服务: 
systemctl start sshd.service
#设置SSH开机自启动:
systemctl enable sshd.service

(rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,分布式部署需要) 

1、配置Hadoop

1.1 进入配置目录,命令:cd /opt/hadoop/etc/hadoop

1.2 修改Hadoop配置文件 core-site.xml

命令:vim core-site.xml

键盘输入i进入编辑状态,在<configuration></configuration>节点内插入如下内容

<property>
         <name>hadoop.tmp.dir</name>
         <value>file:/opt/hadoop/tmp</value>
         <description>location to store temporary files</description>
     </property>
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs://hadoop100:9000</value>
     </property>

操作esc,输入:wq,退出编辑并保存

1.3 修改Hadoop配置文件 hdfs-site.xml

(初始配置没加最后一项,导致9870无法访问,需要配置最后一项)

同路径下,输入命令:vim hdfs-site.xml

键盘输入i进入编辑状态,在<configuration></configuration>节点内插入如下内容

<property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
     <property>
         <name>dfs.namenode.name.dir</name>
         <value>file:/opt/hadoop/tmp/dfs/name</value>
     </property>
     <property>
         <name>dfs.datanode.data.dir</name>
         <value>file:/opt/hadoop/tmp/dfs/data</value>
     </property><property>
<name>dfs.http.address</name>
<value>本机ip:9870</value>
</property>


 操作esc,输入:wq,退出编辑并保存

1.3 配置 mapred-site.xml,在<configuration></configuration>节点内插入如下内容

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

1.4 配置 yarn-site.xml,在<configuration></configuration>节点内插入如下内容

(起初搭建只配置了前两项内容,启动后8088不能访问)

<property>
                 <name>yarn.resourcemanager.hostname</name>
                 <value>xxxx</value>   <!--填写自定义的主机名/ip-->
         </property>
         <property>
                 <name>yarn.nodemanager.aux-services</name>
                 <value>mapreduce_shuffle</value>
         </property>
         <property>
                 <name>yarn.resourcemanager.address</name>
                 <value>0.0.0.0:8032</value>
          </property>
          <property>
                 <name>yarn.resourcemanager.scheduler.address</name>
                 <value>0.0.0.0:8030</value>
          </property>
          <property>
                 <name>yarn.resourcemanager.resource-tracker.address</name>
                 <value>0.0.0.0:8031</value>
          </property>
          <property>
                 <name>yarn.resourcemanager.admin.address</name>
                 <value>0.0.0.0:8033</value>
          </property>
          <property>
                 <name>yarn.resourcemanager.webapp.address</name>
                 <value>0.0.0.0:8088</value>
          </property>

2、配置SSH免密登录(分布式

2.1 切换目录,命令:cd ~

2.2 执行命令,创建公钥和私钥 ssh-keygen -t rsa,根据提示一路回车,再切换至路径 cd .ssh,然后输入命令: cat id_rsa.pub >> authorized_keys,将公钥添加到authorized_keys文件中

在linux上如何查看hadoop的文件_xml

由此生成一个私钥和一个公钥,存储在/root/.ssh/目录下(目录实际情况按自己的来) 

2.3 主机与节点之间的免密登录

#登录主机hadoop100
scp id_rsa.pub hadoop@hadoop101:/opt/hadoop/
#登录节点机器hadoop101
cat id_rsa.pub >> ~/.ssh/authorized_keys
##登录主机hadoop100测试免密登录hadoop101
 ssh hadoop101

在linux上如何查看hadoop的文件_xml_02

在linux上如何查看hadoop的文件_xml_03

 

在linux上如何查看hadoop的文件_xml_04

 

 

3、 切换路径 cd ~,vim /etc/profile,在环境变量中添加下面的配置,编辑完成保存后,输入命令source /etc/profile,使配置生效

export HDFS_NAMENODE_USER=root
 export HDFS_DATANODE_USER=root
 export HDFS_SECONDARYNAMENODE_USER=root
 export YARN_RESOURCEMANAGER_USER=root
 export YARN_NODEMANAGER_USER=root

4、启动Hadoop

切换到目录 cd /opt/hadoop/bin,然后输入命令:hadoop namenode -format,初始化namenode(如果有提示选择y/n,输入y)。

切换到cd /opt/hadoop/sbin,然后输入命令:start-dfs.sh,然后输入命令:start-yarn.sh,再输入jps查看,如下图的6个进程

在linux上如何查看hadoop的文件_java_05

打开浏览器访问:http://XXXX:8088/cluster和http://XXXX:50070

问题:如果进程里面没有DataNode,为重新初始化后/opt/hadoop/tmp/dfs/name/current/VERSION与/opt/hadoop/tmp/dfs/data/current/VERSION的clusterID不一致,可以按照如下操作:

停止进程:stop-all.sh

将/opt/hadoop/tmp/dfs/name/current/VERSION的clusterID的值复制到/opt/hadoop/tmp/dfs/data/current/VERSION的clusterID上。

重新启动进程:start-dfs.sh,start-yarn.sh(注意:初始化命令hadoop namenode -format不用操作,不然又会导致不一致)