hadoop-3.3.0安装教程

背景:部门要对接大数据部门那边的交易流水数据,然后根据产品的特性统计分析等,应用到自己部门的各个产品中(吐槽=_=!:为啥大数据部门不给帮忙做呢?跨部门的问题,大数据懒得理你哈哈哈)于是部门老大无奈又充满期待的看着我们这帮Java的,加油~你们可以的......中间省略N个字,最后由我一个人边自学边开发项目,一个月不到时间,搭建完整套大数据环境,上线了商业数据项目大数据版本。比起用分布式定时任务去跑数据处理数据快了1万倍,原本花7天不停机处理数据,现在10分钟多就搞完,当时测试的时候所有人的表情相当震惊!!!哈哈哈

1. 服务器规划:

Hadoop 具体部署是两个集群,HDFS集群和YARN集群,两个集群逻辑上分离,但是物理上在一起。

HDFS:负责海量数据的存储,主要角色有: NameNode; SecondaryNameNode; DataNode

YARN: 负责海量数据运算的资源调度,主要角色有:ResourceManagerNodeManager

IP hostname(主机名) 身份
10.213.50.94 cnsz72vl0237 NameNode、DataNode ResourceManager、HistoryServer
10.213.50.95 cnsz72vl0238 DataNode、NodeManager
10.213.50.96 cnsz72vl0239 DataNode、NodeManager、SecondaryNameNode

2. Linux设置

2.1 修改主机与IP映射

vi /etc/hosts

10.213.50.94    cnsz72vl0237

10.213.50.95    cnsz72vl0238

10.213.50.96    cnsz72vl0239

2.2 关闭防火墙

#查看防火墙状态:
service iptables status

#关闭防火墙状态:
service iptables stop

#再次执行下述命令查看防火墙状态:
service iptables status 

#防火墙开启自启动状态:
chkconfig iptables  --list

#关闭防火墙开启自启动:
chkconfig iptables off

2.3 设置ssh免登陆

请参考我的另一篇博客:《ssh免密登录》

3. 环境设置

3.1 上传安装包到指定目录后,解压:

cd /home/ysops/hadoop 

tar -zxvf hadoop-3.3.0.tar.gz

为了方便修改解压后的文件目录名:

mv hadoop-3.3.0  hadoop

在当前用户目录下bash_profile:

vi .bash_profile

在尾部追加以下内容:

export HADOOP_HOME=/home/ysops/hadoop/hadoop

PATH变量后面增加

PATH=$PATH:$JAVA_HOME/bin

退出 vi 编辑器,执行 source .bash_profile

4. hadoop设置

1、进入目录~/hadoop/hadoop/etc/hadoop,依次编辑hadoop-env.sh、mapred-env.sh、yarn-env.sh这三个文件,确保它们的内容中都有JAVA_HOME的正确配置:

export JAVA_HOME=/home/ysops/java/jdk1.8

创建文件夹(三台都要创建)

mkdir -p ~/work/tmp/dfs/name && mkdir -p ~/work/tmp/dfs/data

2、编辑core-site.xml文件,找到configuration节点,改成以下内容:

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://cnsz72vl0237:8020</value>
  </property>

  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/ysops/work/tmp</value>
  </property>

</configuration>

3、编辑hdfs-site.xml文件,找到configuration节点,改成以下内容,把node2配置成sendary namenode:

<configuration>

  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>

  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>cnsz72vl0239:50070</value>
  </property>

  <property>
    <name>dfs.name.dir</name>
    <value>/home/ysops/work/tmp/dfs/name</value>
  </property>

  <property>
    <name>dfs.data.dir</name>
    <value>/home/ysops/work/tmp/dfs/data</value>
  </property> 

</configuration>

4、编辑workers文件,删除里面的"localhost",增加两行内容:

cnsz72vl0238
cnsz72vl0239

5、编辑yarn-site.xml文件,找到configuration节点,改成以下内容

<configuration>

  <property>

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

    <value>mapreduce_shuffle</value>

  </property>

  <property>

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

    <value>cnsz72vl0237</value>

  </property>

  <property>

    <name>yarn.log-aggregation-enable</name>

    <value>true</value>

  </property>

  <property>

    <name>yarn.log-aggregation.retain-seconds</name>

    <value>604800</value>

  </property>

  <property>

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

    <value>cnsz72vl0237:8032</value>

  </property>

  <property>

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

    <value>cnsz72vl0237:8030</value>

  </property>

  <property>

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

    <value>cnsz72vl0237:8031</value>

  </property>

  <property>

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

    <value>cnsz72vl0237:8033</value>

  </property>

  <property>

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

    <value>cnsz72vl0237:8088</value>

  </property>

</configuration>

6、编辑mapred-site.xml文件,找到configuration节点,改成以下内容:

<configuration>

   <property>

       <name>mapred.job.tracker</name>

       <value>http://cnsz72vl0237:9001</value>

   </property>

   <property>

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

       <value>yarn</value>

   </property>

   <property>

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

       <value>cnsz72vl0237:10020</value>

   </property>

   <property>

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

       <value>cnsz72vl0237:19888</value>

   </property>

   <property>

       <name>mapreduce.application.classpath</name>

       <value>

           /home/ysops/hadoop/hadoop/etc/hadoop,

           /home/ysops/hadoop/hadoop/share/hadoop/common/*,

           /home/ysops/hadoop/hadoop/share/hadoop/common/lib/*,

           /home/ysops/hadoop/hadoop/share/hadoop/hdfs/*,

           /home/ysops/hadoop/hadoop/share/hadoop/hdfs/lib/*,

           /home/ysops/hadoop/hadoop/share/hadoop/mapreduce/*,

           /home/ysops/hadoop/hadoop/share/hadoop/mapreduce/lib/*,

           /home/ysops/hadoop/hadoop/share/hadoop/yarn/*,

           /home/ysops/hadoop/hadoop/share/hadoop/yarn/lib/*

       </value>

   </property>

</configuration>

7、将整个hadoo目录同步到cnsz72vl0238、cnsz72vl0239的home目录:

scp -r ~/hadoop ysops@10.213.50.95:~/hadoop/
                                            
scp -r ~/hadoop ysops@10.213.50.96:~/hadoop/

5. hadoop启动

(以下的启动都只在NameNode(cnsz72vl0237)节点启动)

1、在cnsz72vl0237执行以下命令格式化hdfs,在~/hadoop/hadoop/bin目录

hdfs namenode -format

2、~/hadoop/hadoop/bin目录,启动yarn:

start-yarn.sh

3、启动ResourceManager

yarn-daemon.sh start resourcemanager

3、启动日志服务,如果启动信息说明已经启动,可以通过jps命令,查看是否启动,就不用重复启动了

mr-jobhistory-daemon.sh start historyserver

4、启动成功后,最后通过jps命令查看java进程,如下:

3253 JobHistoryServer
2647 NameNode
3449 Jps
2941 ResourceManager

5、再去cnsz72vl0238,执行jps命令查看java进程:

2176 DataNode
2292 NodeManager
2516 Jps

6、再去cnsz72vl0239,执行jps命令查看java进程:

1991 DataNode
2439 Jps
2090 SecondaryNameNode
2174 NodeManager

至此,hadoop启动成功;

Hdfs:http://10.213.50.96:50090/status.html

image.png

hadoop:http://10.213.50.94:8088/

image.png

http://10.213.50.94:9870/dfshealth.html#tab-overview

image.png

6. hadoop验证

1、在cnsz72vl0237上,在home目录创建文件test.txt,内容随意

doop mapreduce hive
hbase spark storm
sqoop hadoop hive
spark hadoop

2、在hadoop/bin,在hdfs上创建一个文件夹

hdfs dfs -mkdir /input

3、将test.txt文件上传的hdfs的/input目录下:

hdfs dfs -put ~/test.txt /input

4、直接运行hadoop安装包中自带的workcount程序:

yarn \
jar ~/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar \
wordcount \
/input/test.txt \
/output

5、控制台输出如下:

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容