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

[经验分享] Hadoop 2.5.2 环境搭建

[复制链接]

尚未签到

发表于 2017-12-16 21:20:59 | 显示全部楼层 |阅读模式
  Hadoop 生态环境主要有hadoop 、zookeeper、hbase、hive 等构成
  
1.搭建Java环境
  
2.搭建hadoop环境,搭建成功后运行/sbin/start-all.sh即可启动所有hadoop相关服务,启动成功后有相应的进程,通过jps命令查看
  
3.如果需要可以进一步搭建zookeeper、hbase、hive等。其中hive搭建之前需要先安装mysql数据库。所有服务搭建成功后均有相应的进程,用jps查看。

1.Hadoop 平台环境
  操作系统:CentOS-6.5-x86_64
  
JAVA版本:jdk-8u111-linux-x64
  
Hadoop版本:hadoop-2.5.2

2.安装操作操作系统

2.1 准备安装镜像
  CentOS-6.5-x86_64-bin-DVD1

2.2安装教程
[安装教程](http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503770.html)

  
或者见自己安装截图

2.3 建立一般用户
  

//新增用户  
#useradd hadoop
  
//设置密码
  
#passwd hadoop
  

2.4 关闭防火墙SELinux

关闭防火墙
  

//临时关闭  
#service iptables stop
  
//永久关闭
  
#chkconfig iptables off
  
#service ip6tables stop
  
#chkconfig ip6tables off
  

关闭SELinux
  

#vim /etc/sysconfig/selinux  
SELINUX=enforcing
  
|
  
SELINUX=disable
  

  执行如下命令
  

#setenforce 0  
#getenforce
  

3.hadoop安装

3.1 环境说明

hostname
username
IP
master
hadoop
192.168.207.10
slave1
hadoop
192.168.207.11
slave2
hadoop
192.168.207.12
3.2网络配置
  1.修改主机名
  

//查看当前主机名  
#hostname
  
//修改当前主机名
  
#vim /etc/sysconfig/network
  
更改HOSTNAME选项
  

  2.修改当前机器IP
  

#vim /etc/sysconfig/network-scripts/ifcfg-eth0  
DEVICE 接口名(设备,网卡)
  
BOOTPROTO IP的配置方法(static:固定IP, dhcpHCP, none:手动)
  
HWADDR MAC地址
  
ONBOOT 系统启动的时候网络接口是否有效(yes/no)
  
TYPE 网络类型(通常是Ethemet)
  
NETMASK 网络掩码
  
IPADDR IP地址
  
IPV6INIT IPV6是否有效(yes/no)
  
GATEWAY 默认网关IP地址
  

DSC0000.png

  要记住配置完成时,要用以下代码重新启动网络服务。
  

#service network restart  

  3.配置hosts文件
  

#vim /etc/hosts  

DSC0001.png


3.3 SSH无密钥验证配置
  1.SSH无密钥原理
  
Master(NameNode| JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Slave(DataNode|Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有Slave上。当master通过SSH连接Slave时,Slave就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。master收到加密数之后再用私钥解密,并将解密数回传给slave,slave确认解密数无误之后就允许Master进行连接了,这就是一个公钥认证的过程,期间不需要用户手工输入密码。重要过程是将客户端Master复制到slave上。
  
2.配置master免密钥登录slave(该过程用hadoop用户完成)
  
生成密钥(该过程需要在master和slave上分别执行)
  

//切换用户  
$su hadoop
  
//生成密钥
  
$ ssh-keygen -t rsa
  

  将id_rsa.pub追加到授权key中(只需要将master节点的公钥追加到authorized_keys)
  
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  
在master上更改authorized_keys的权限
  
chmod 600 authorized_keys
  
将authorized_keys复制到所有slave节点
  

$scp ~/.ssh/authorized_keys hadoop@slave1:~/.ssh/  
$scp ~/.ssh/authorized_keys hadoop@slave2:~/.ssh/
  

  测试,master免密钥登录所有slave节点
  

$ssh slave1  
$ssh slave2
  

3.4 JAVA环境安装和配置
  已共享文件夹的形式将JAVA软件压缩包共享到Master主机。
  
1.root身份进行安装,如果系统已经安装了其他版本的java请先卸载旧版,再进行安装。
  

//解压  
#tar -zxvf jdk-8u111-linux-x64.tar.gz
  
//移动文件夹到/usr下并命名为java
  
#mv  jdk1.8.0_111 /usr/java
  

  2.配置java环境变量【替换成自己的java安装路径和版本】,这一点需要特别的注意路径
  

#vim /etc/profile  
//在尾部追加
  
export JAVA_HOME=/usr/java

  
export>  
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
  

  3.使配置生效
  

$source /etc/profile  

  4.验证是否安装成功
  

$java -version  

  5.安装其他机器,使用scp命令将java文件夹和profile文件复制到其他机器
  

scp -r /usr/java hadoop@slave1:/usr/  
scp -r /usr/java hadoop@slave2:/usr/
  
scp -r /etc/profile hadoop@slave1:/etc/profile
  
scp -r /etc/profile hadoop@slave2:/etc/profile
  

3.5 hadoop集群安装
  所有的机器上都要安装hadoop,现在就先在master'服务器上安装,然后其他服务器利用scp复制文件实现。
  
1.同样利用共享文件夹方式,将压缩包分享到虚拟机,解压
  

#tar -zvxf hadoop-2.5.2tar.gz  
#mv hadoop-2.5.2 /home/hadoop/hadoop
  
#chown -R hadoop:hadoop /home/hadoop
  

  2.配置环境变量(在尾部追加)
  

# vim  /etc/profile# set hadoop environment  
export HADOOP_HOME=/home/hadoop/hadoop
  
export HADOOP_COMMON_HOME=$HADOOP_HOME
  
export HADOOP_HDFS_HOME=$HADOOP_HOME
  
export HADOOP_MAPRED_HOME=$HADOOP_HOME
  
export HADOOP_YARN_HOME=$HADOOP_HOME
  
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

  
export>  
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  

  使环境变量立即生效,注意在哪个用户下执行该命令,环境变量在哪个用户下生效
  

#su hadoop  
$source /etc/profile
  

  3.配置hadoop文件
  
首先进入配置文件所在的文件夹:
  

#cd /home/hadoop/hadoop/etc/hadoop  

  (1)core-site.xml
  

#vim core-site.xml  
<configuration>
  <property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
  </property>
  <property>
  <name>hadoop.tmp.dir</name>
  <value>file:/home/hadoop/hadoop/hadoop_tmp</value>
  <!--需要自己创建hadoop_tmp文件夹-->
  </property>
  <property>
  <name>io.file.buffer.size</name>
  <value>131072</value>
  </property>
  
</configuration>
  

  (2)hdfs-site.xml
  

#vim hdfs-site.xml  
<configuration>
  <property>
  <name>dfs.replication</name>
  <value>2</value>
  </property>
  <property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>master:9001</value>
  </property>
  <property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/home/hadoop/hadoop/dfs/name</value>
  <description>namenode上存储hdfs元数据</description>
  </property>
  <property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/ home/hadoop/hadoop/dfs/data</value>
  <description>datanode上数据块物理存储位置</description>
  </property>
  <property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
  </property>
  <property>
  <name>dfs.namenode.checkpoint.dir</name>
  <value>/home/hadoop/hadoop/dfs/namesecondary/checkpoint</value>
  </property>
  <property>
  <name>dfs.namenode.checkpoint.edits.dir</name>
  <value>/home/hadoop/hadoop/dfs/namesecondary/edits</value>
  </property>
  
</configuration>
  

  (3)mapred-site.xml
  

#vim 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>
  

  (4) yarn-site.xml
  

#vim yarn-site.xml  
<configuration>
  <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</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>
  

  (5)修改slaves文件,添加datanode结点的hostname到slaves文件中
  

slave1  
slave2
  

  (6)hadoop-env.sh
  

#vim /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh  
export JAVA_HOME=${JAVA_HOME}
  
|
  
export JAVA_HOME=/usr/java
  

  (7)最后将整个/home/hadoop/hadoop文件夹及其子文件夹使用scp复制到slave的相同目录中
  

$ scp -r /home/hadoop/hadoop hadoop@slave1:/home/hadoop/  
$ scp -r /home/hadoop/hadoop hadoop@slave2:/home/hadoop/
  

  4.运行 hadoop
  
(1)格式化(*只能运行一次,如果想多次运行需要删除dfs文件夹中的data和name文件)
  

$hdfs namenode -format  

  (2)启动hadoop
  

$ start-dfs.sh  
$ start-yarn.sh
  
//可以用一条命令来代替
  
$ start-all.sh
  

  (3)jps查看进程
  
master主节点进程:
  
DSC0002.png
  slave从属节点进程:
  
DSC0003.png
  (4)通过浏览器查看集群运行状态
  
概览:http://192.168.207.10:50070/
  
集群:http://192.168.207.10:8088/
  
JobHistory:http://192.168.207.10:19888
  
jobhistory是Hadoop自带的一个历史服务器,记录Mapreduce历史作业。默认情况下,jobhistory没有启动,可用以下命令启动:
  

$ sbin/mr-jobhistory-daemon.sh start historyserver  

  5.测试hadoop
  
(1)建立文件
  

$ vim wordcount.txt  
hello you
  
hello me
  
hello everyone
  

  (2)在HDFS上建立目录
  

$ hadoop fs -mkdir /data/wordcount  
$hadoop fs -mkdir /output/
  

  (3)上传文件
  

$ hadoop fs -put wordcount.txt  /data/wordcount/  

  (4)执行wordcount程序
  

$ hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-  
2.5.2.jar wordcount /data/wordcount /output/wordcount/
  

  (5)查看结果
  

$ hadoop fs -text /output/wordcount/part-r-00000  

DSC0004.png

运维网声明 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-424832-1-1.html 上篇帖子: 一笑之奈何 下篇帖子: Hadoop 2.x 生态系统及技术架构图
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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