设为首页 收藏本站
查看: 594|回复: 0

[经验分享] Hadoop 安装流程

[复制链接]

尚未签到

发表于 2017-12-17 06:09:28 | 显示全部楼层 |阅读模式
  前言:因项目中需要数据分析,因而使用hadoop集群通过离线的方式分析数据
  参考着网上的分享的文章实施整合的一篇文章,实施记录
  安装流程:
  1.设置各个机器建的ssh 无密码登陆
  2.安装JDK
  3.开始安装配置hadoop
  4.检查单机版Hadoop
  5.集群搭建
  6.测试集群是否搭建成功
  7.hadoop远程客户端安装配置
  准备:分别上台机器:master(hadoop主机)、node1(hadoop从机)、node2(hadoop从机)
  echo "192.168.163.220 master" >>/etc/hosts
  echo "192.168.163.48 node1" >>/etc/hosts
  echo "192.168.163.55 node2" >>/etc/hosts
  1.设置各个机器建的ssh 无密码登陆
  (1)CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置,
  #RSAAuthentication yes
  #PubkeyAuthentication yes
  (2)输入命令,ssh-keygen -t rsa,生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹,每台服务器都要设置,
  (3)合并公钥到authorized_keys文件,在Master服务器,进入/root/.ssh目录,通过SSH命令合并,

  cat>  ssh root@node1 cat ~/.ssh/id_rsa.pub>> authorized_keys
  ssh root@cli cat ~/.ssh/id_rsa.pub>> authorized_keys
  (4)把Master服务器的authorized_keys、known_hosts复制到Slave服务器的/root/.ssh目录
  (5)完成,ssh root@192.168.0.84、ssh root@192.168.0.48就不需要输入密码了
  2.安装JDK
  (1)安装包中已经下载好了 rpm 格式的jdk安装包
· 安装之前先检查一下系统有没有自带open-jdk
· 图片上显示我的是没有自带的,如果有可以使用rpm -qa | grep java | xargs rpm -e --nodeps 批量卸载所有带有Java的文件   这句命令的关键字是java  
  (2)使用rpm -ivh jdk-8u45-linux-x64.rpm进行安装(每一台机器都需要安装配置)
  (3)配置环境变量使用命令 vim /etc/profile
  rpm -ivh jdk-8u45-linux-x64.rpm
  配置 /etc/profile
  export JAVA_HOME=/usr/java/jdk1.8.0_45
  export HADOOP_HOME=/hadoop/hadoop-2.7.2
  export HIVE_HOME=/hadoop/apache-hive-2.1.0-bin

  export>  export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HIVE_HOME/bin
  (4)验证使用安装以及环境变量设置成功使用命令
[iyunv@localhost ~]# source /etc/profile

[iyunv@localhost ~]# java -version

  3.开始安装配置hadoop
  (1)将hadoop-2.7.2.tar.gz 文件放在 /hadoop 目录下,解压文件执行命令
[iyunv@localhost ~]# cd /hadoop

[iyunv@master hadoop]# tar -vxzf hadoop-2.7.2.tar.gz

  (2)修改配置文件
  a.修改/hadoop/hadoop-2.7.2/etc/hadoop/core-site.xml  全局配置
  <property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
  <!--hadoop namenode 服务器地址和端口,以域名形式-->
  </property>
  <property>
  <name>dfs.namenode.checkpoint.period</name>
  <value>1800</value>
  <!-- editlog每隔30分钟触发一次合并,默认为60分钟 -->
  </property>
  <property>
  <name>fs.checkpoint.size</name>
  <value>67108864</value>
  </property>
  <property>
  <name>fs.trash.interval</name>
  <value>1440</value>
  <!-- Hadoop文件回收站,自动回收时间,单位分钟,这里设置是1天,默认为0。-->
  </property>
  <property>
  <name>hadoop.tmp.dir</name>
  <value>/hadoop/tmp</value>
  <!-- Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新>执行NameNode格式化的命令。/data/hadoop/tmp这里给的路径不需要创建会自动生成.-->
  </property>
  <property>
  <name>io.file.buffer.size</name>
  <value>131702</value>
  <!-- 流文件的缓冲区-->
  </property>
  b.修改/hadoop/hadoop-2.7.2/etc/hadoop/hdfs-site.xml hdfs中NameNode,DataNode局部配置
  <property>
  <name>dfs.namenode.name.dir</name>
  <value>/hadoop/hdfs/name</value>
  <!--HDFS namenode数据镜象目录-->
  <description>  </description>
  </property>
  <property>
  <name>dfs.datanode.data.dir</name>
  <value>/hadoop/hdfs/data</value>
  <!-- HDFS datanode数据镜象存储路径,可以配置多个不同的分区和磁盘中,使用,号分隔 -->
  <description> </description>
  </property>
  <property>
  <name>dfs.namenode.http-address</name>
  <value>master:50070</value>
  <!---HDFS Web查看主机和端口-->
  </property>
  <property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>node1:50090</value>
  <!--辅控HDFS web查看主机和端口-->
  </property>
  <property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
  </property>
  <property>
  <name>dfs.replication</name>
  <value>3</value>
  <!--HDFS数据保存份数,通常是3-->
  </property>
  <property>
  <name>dfs.datanode.du.reserved</name>
  <value>1073741824</value>
  <!-- datanode 写磁盘会预留 1G空间 给其他程序使用,而非写满,单位 bytes-->
  </property>
  <property>
  <name>dfs.block.size</name>
  <value>134217728</value>
  <!--HDFS数据块大小,当前设置为128M/Blocka-->
  </property>
  <property>
  <name>dfs.permissions.enabled</name>
  <value>false</value>
  <!-- HDFS 关闭文件权限 -->
  </property>
  c.修改 hadoop/hadoop-2.7.2/etc/hadoop/mapred-site.xml.template  #配置MapReduce,使用yarn框架、jobhistory使用地址以及web地址
  <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
  </property>
  <property>
  <name>mapreduce.jobtracker.http.address</name>
  <value>master:50030</value>
  </property>
  <property>
  <name>mapred.job.tracker</name>
  <value>http://master:9001</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>
  配置完毕以后执行命令
[iyunv@master hadoop]# cp mapred-site.xml.template mapred-site.xml

  d.修改 hadoop/hadoop-2.7.2/etc/hadoop/yarn-site.xml  配置yarn-site.xml文件
  <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</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>
  e.修改 hadoop/hadoop-2.7.2/etc/hadoop/ hadoop-env.sh及vi yarn-env.sh
  将其中的${JAVA_HOME}用/usr/jdk1.7.0_79代替
  export JAVA_HOME=/usr/java/jdk1.8.0_45
  f.创建目录上面所配置的路径
[iyunv@master ~]# mkdir -p /hadoop/tmp

[iyunv@master ~]# mkdir -p /hadoop/hdfs/name

[iyunv@master ~]# mkdir -p /hadoop/hdfs/data

  f. 修改$HADOOP_HOME/etc/hadoop/yarn.site.xml, 此项配置是为配置 hive
  <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>
4.检查单机版Hadoop
测试hdfs中的namenode与datanode:
  hadoop-daemon.sh start namenode
  chmod go-w /data/hadoop/hdfs/data/
  hadoop-daemon.sh start datanode
测试resourcemanager:
  yarn-daemon.sh start resourcemanager
测试nodemanager:
  yarn-daemon.sh start nodemanager
测试historyserver:
  mr-jobhistory-daemon.sh start historyserver
[iyunv@master hadoop-2.7.2]# jps

  6116 NodeManager
  6901 NameNode
  5704 ResourceManager
  6204 JobHistoryServer
  5518 DataNode
  6974 Jps
[iyunv@master hadoop-2.7.2]# hadoop fs -lsr /


5.集群搭建
scp -r $HADOOP_HOME/ node1:/hadoop/
在master 上配置
[iyunv@master hadoop-2.7.2]# vim $HADOOP_HOME/etc/hadoop/slaves

  删除localhost
  添加    node1
6.测试集群是否搭建成功
在Master服务器启动hadoop,从节点会自动启动,进/hadoop/hadoop-2.7.2目录
  (1)初始化,输入命令,bin/hdfs namenode -format
  (2)全部启动sbin/start-all.sh,也可以分开sbin/start-dfs.sh、sbin/start-yarn.sh
  (3)停止的话,输入命令,sbin/stop-all.sh
  (4)输入命令,jps,可以看到相关信息
Web访问,要先开放端口或者直接关闭防火墙
  (1)输入命令,systemctl stop firewalld.service
  (2)浏览器打开http://192.168.0.182:8088/
  (3)浏览器打开http://192.168.0.182:50070/

  各节点执行jps
  master:
  98956 JobHistoryServer
  98820 NodeManager
  118806 Jps
  118176 NameNode
  118540 ResourceManager
  node1:
  106602 Jps
  106301 DataNode
106496 NodeManager
106408 SecondaryNameNode

7.hadoop远程客户端安装配置
a.配置 /etc/profile 的环境变量配置java和hadoop (可参考第二点配置JDK)
b.hadoop 配置文件修改
  在客户端只需配置集群namenode 和 jobtracker 的相关信息,以及java安装目录。即修改conf目录下文件:
  hadoop-env.sh:
  export JAVA_HOME=/usr/java/jdk1.8.0_45
  core-site.xml:
  <property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
  <!--hadoop namenode 服务器地址和端口,以域名形式-->
  </property>
  mapred-site.xml:
  <property>
  <name>mapred.job.tracker</name>
  <value>http://master:9001</value>
  </property>
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
  c.现在hadoop客户端已经配置好,可以运行基本的命令如:
hadoop fs -lsr /
  这样就搭建了一个基本的集群了,接下来使用hive分析历史数据

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424882-1-1.html 上篇帖子: Hadoop MapReduce输入输出类型 下篇帖子: Hadoop详细安装步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表