Hadoop集群安装

集群规划

192.168.190.160
192.168.190.161
192.168.190.162


1、安装常用工具:


yum install -y epel-release
yum install -y net-tools
yum install -y rsync
yum install -y vim

2、修改主机名:hostnamectl set-hostname hadoop162


设置vim /etc/hosts
192.168.190.160        hadoop160
192.168.190.161        hadoop161
192.168.190.162        hadoop162
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #禁用防火墙

### 注意,本地Windows也要配置域名映射:否则浏览器无法浏览和下载文件
192.168.190.160  hadoop160
192.168.190.161  hadoop161
192.168.190.162  hadoop162

3、克隆linux修改主机名、IP
 

4、配置hadoop_home环境变量vi /etc/profile


export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
刷新环境变量:source /etc/profile

5.1、创建hadoop用户:


useradd hadoop
passwd hadoop
su hadoop 
5.2 ssh免密登录
ssh localhost    #生成本机的ssh目录
ssh-keygen -t rsa    #生成秘钥
#后面是想要免密登录的节点主机名
ssh-copy-id hadoop160
ssh-copy-id hadoop161
ssh-copy-id hadoop162
chown -R hadoop:hadoop /opt/hadoop
5.3 hadoop增加suso权限,root下编辑vim /etc/sudoers
在root下面的wheel增加:hadoop  ALL=(ALL)        NOPASSWD:ALL

6、编辑etc/hadoop/hadoop-env.sh


vim /opt/hadoop/hadoop-env.sh
#添加如下内容
export JAVA_HOME=/usr/local/java
export HADOOP_HOME=/opt/hadoop
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
export HADOOP_PID_DIR=${HADOOP_HOME}/pid

依次编辑hadoop-env.sh、mapred-env.sh、yarn-env.sh这三个文件,确保它们的内容中都有JAVA_HOME的正确配置:
export JAVA_HOME=/usr/local/java

7、编辑etc/hadoop/core-site.xml添加如下内容


<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop160:8020</value>
        <description>指定namenode地址</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/data</value>
        <description>指定hadoop的数据存放目录.</description>
    </property>
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>hadoop</value>
        <description>指定网页登录使用的静态用户为hadoop否则无权限操作</description>
    </property>
</configuration>

8、编辑etc/hadoop/hdfs-site.xml


<configuration>
  <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop160:9870</value>
        <description>namenode web访问地址 </description>
    </property>
        <!-- SecondNameNode web端访问地址-->
  <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>hadoop162:9868</value>
  </property>
  <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
  </property>
  <property>
         <name>dfs.replication</name>
         <value>3</value>
  </property>
  
<!--  <property>
   <name>dfs.permissions.enabled</name>
   <value>false</value>
   <description>如果为"true",则在HDFS中启用权限检查;如果为"false",则关闭权限检查;默认值为"true"。</description>
 </property> -->
  
   <property>
        <description>没有Hive可以不加,用于解决hive链接不上的错误。
        默认返回给client端datanode的主机名称,这里如果不加的话,dn就会连接不上.</description>
        <name>dfs.client.use.datanode.hostname</name>
         <value>true</value>
   </property>
</configuration>

9、=====================编辑etc/hadoop/yarn-site.xml


<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>让MR走shuffle</description>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop161</value>
    </property>
        <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
         <!-- 设置日志聚集服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://hadoop161:19888/jobhistory/logs/</value>
    </property>
     <!-- 设置日志保留时间为 7 天 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    
    <!-- master(JobManager)失败重启的最大尝试次数-->
    <property>
      <name>yarn.resourcemanager.am.max-attempts</name>
      <value>4</value>
      <description>The maximum number of application master execution attempts.</description>
    </property>
    <!-- 关闭yarn内存检查 -->
<!-- 是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认为 true -->
<!-- 因为对于 flink 使用 yarn 模式下,很容易内存超标,这个时候 yarn 会自动杀掉 job,因此需要关掉-->
    <property>
       <name>yarn.nodemanager.pmem-check-enabled</name>
       <value>false</value>
    </property>

    <property>
       <name>yarn.nodemanager.vmem-check-enabled</name>
       <value>false</value>
    </property>
    
</configuration>

10、=====编辑etc/hadoop/mapred-site.xml


<configuration>
  <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
          <description>指定MapReduce jobs.运行在yarn上 Can be one of local,classic or yarn.</description>
  </property>
    <!-- 历史服务器端地址 -->
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>hadoop160:10020</value>
  </property>
    <!-- 历史服务器web端地址 -->
  <property>
          <name>mapreduce.jobhistory.webapp.address</name>
          <value>hadoop160:19888</value>
  </property>
  <!-- hadoop安装路径 -->
  <property>
          <name>yarn.app.mapreduce.am.env</name>
          <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>
  <property>
          <name>mapreduce.map.env</name>
          <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>
  <property>
          <name>mapreduce.reduce.env</name>
          <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>
</configuration>
分发文件,-r代表覆盖,【注意】如果两个节点目录相同时,目标目录要比源目录少一层目录才会覆盖,否则不覆盖。
scp -r /opt/hadoop/etc hadoop161:/opt/hadoop
scp -r /opt/hadoop/etc hadoop162:/opt/hadoop

11、编辑etc/hadoop/workers


hadoop160
hadoop161
hadoop162

12、启动hadoop集群


hdfs namenode -format    #格式化namenode
【注意:格式化NameNode会产生新的集群id,导致DataNode中记录的的集群id和刚生成的NameNode的集群id不 一致,
DataNode找不到NameNode。所以,格式化NameNode时,一定要先删除每个节点的data目录和logs日志,
然后再格式化NameNode,一般只在搭建初期执行这一次。】

13、在node1执行(namenode节点)


/opt/hadoop/sbin/start-all.sh    # 启动集群,resourcemanager需要单独在对应服务器上启动
/opt/hadoop/sbin/stop-all.sh    # 停止集群
===单独启动命令:
/opt/hadoop/sbin/start-dfs.sh    # 启动hdfs
/opt/hadoop/sbin/start-yarn.sh    #启动yarn
# 停止
/opt/hadoop/sbin/stop-dfs.sh
/opt/hadoop/sbin/stop-yarn.sh
单个启动namenode的指令如下    sbin/hadoop-daemon.sh start namenode
单个启动Datanode的指令如下    sbin/hadoop-daemon.sh start datanode
启动yarn命令:yarn --daemon start resourcemanager / nodemanager
历史服务启停    mapred --daemon start historyserver 

=====如果resourceManager无法启动,可以查看logs目录下的报错信息,
netstat -tuln | grep <端口号>


14、在配置的162机器启动历史服务:


mapred --daemon start historyserver
15、*****每个节点使用jps命令验证进程是否正确*****
访问NN的webUI地址 http://192.168.190.160:9870
访问YARN的webUI 地址:http://192.168.190.161:8088
访问历史服务http://192.168.190.160:19888

至此搭建完成,可使用Hadoop自带的脚本测试wordcount
hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar wordcount /hadoop/input /hadoop/output
在output目录查看计算结果

相关推荐

  1. Hadoop安装

    2024-06-10 01:36:01       9 阅读
  2. Hadoop分布式安装

    2024-06-10 01:36:01       36 阅读
  3. Hadoop伪分布式安装

    2024-06-10 01:36:01       38 阅读
  4. Hadoop

    2024-06-10 01:36:01       17 阅读
  5. hadoop3.0高可用分布式安装

    2024-06-10 01:36:01       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 01:36:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 01:36:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 01:36:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 01:36:01       18 阅读

热门阅读

  1. 1731. 每位经理的下属员工数量

    2024-06-10 01:36:01       9 阅读
  2. btstack协议栈实战篇--GAP LE Advertisements Scanner

    2024-06-10 01:36:01       11 阅读
  3. WooYun-2016-199433 -phpmyadmin-反序列化RCE-getshell

    2024-06-10 01:36:01       10 阅读
  4. Vue2事件处理

    2024-06-10 01:36:01       11 阅读
  5. JVM内存分析之JVM分区与介绍

    2024-06-10 01:36:01       8 阅读
  6. 重写mybatisPlus自定义ID生成策略

    2024-06-10 01:36:01       11 阅读
  7. 【架构分析】GPU执行GEMM矩阵运算实例演示

    2024-06-10 01:36:01       9 阅读