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

[经验分享] Hadoop第一步:部署分布式服务

[复制链接]

尚未签到

发表于 2016-12-5 07:21:01 | 显示全部楼层 |阅读模式
原创文章:转载请注明出处
最近有幸开始接触云。哈哈,先从hadoop入手
部署hadoop的文档很多,但是还是遇到了不少问题,下面和大家分享一下我的部署全过程吧
版本号:hadoop 0.21.0
下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/core/
系统环境:红帽linux
1.硬件配置
准备3-4台机器,为他们配置上IP,保证相互可以ping通
至少有3台作为NameNode因为hadoop默认作为备份的机器数量为3
NameNode也可以作为DataNode
hadoop1:192.168.1.144(NameNode)
hadoop2:192.168.1.145(DataNode)
hadoop3:192.168.1.146(DataNode)
hadoop4:192.168.1.146(DataNode)
修改/etc/hosts文件 如果是144
就加上一下信息
192.168.1.144 hadoop1
192.168.1.145 hadoop2
192.168.1.146 hadoop3
192.168.1.147 hadoop4
145则写
192.168.1.144 hadoop1
192.168.1.145 hadoop2
146则写
192.168.1.144 hadoop1
192.168.1.146 hadoop3
147则写
192.168.1.144 hadoop1
192.168.1.147 hadoop4
2.配置SSH
1.在hadoop1中生成密匙对:ssh-keygen -t -P '' -f ~/.ssh/id_dsa
命令执行后将会在/home/.ssh中生成id_dsa和id_dsa.pub
2.cat ~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys
拷贝id_dsa.pub命名为authorized_keys
3.为hadoop2-hadoop4的home目录下创建.ssh文件夹
mkdir .ssh
4.scp authorized_keys hadoop2:/home/.ssh
把authorized_keys拷贝到hadoop2-hadoop4的.ssh目录下
5.为每台机器执行chmod 640 authorized_keys
必须保证authorized_keys的所有者有读写权限,其他人只有读的权限
6.修改每台机器的/etc/ssh/sshd_config
AuthorizedKeysFile 指向authorized_keys
例如 AuthorizedKeysFile /home/authorized_keys
用于去除密码认证
这里必须注意:hadoop1-hadoop4的每台机器必须可以相互连接。此例只是hadoop1连接其他机器,其他机器并不能连接到hadoop1。所以要按上面方法为hadoop2-hadoop4配置ssh连接
配置完成:在hadoop1中执行 ssh hadoop2
如果能连接上表示配置成功:退出链接用exit命令
3.hadoop配置
首先下载hadoop,系统java环境变量已经配置完成
目录结构
由于Hadoop要求所有机器上hadoop的部署目录结构要相同,并且都有一个相同的用户名的帐户。
我的三台机器上是这样的:都有一个hadoop的帐户,主目录是/home/hadoop。
解压:[hadoop@ hadoop1:~]$tar  -zxvf  hadoop-0.21.0.tar.gz
Hadoop部署目录结构如下:/home/hadoop/hadoop0.21.0,所有的hadoop版本放在这个目录中。
将hadoop0.21.0压缩包解压至hadoop0.21.0中,为了方便以后升级,建议建立一个链接指向要使用的hadoop版本,不妨设为hadoop,
[hadoop@ hadoop1:~]$ln  -s  hadoop0.21.0  hadoop
这样一来,所有的配置文件都在/home/hadoop/hadoop/conf/目录中,所有执行程序都在/home/hadoop/hadoop/bin目录中。但是由于上述目录中hadoop的配置文件和hadoop的安装目录是放在一起的,这样一旦日后升级hadoop版本的时候所有的配置文件都会被覆盖,因此建议将配置文件与安装目录分离,一种比较好的方法就是建立一个存放配置文件的目录,/home/hadoop/hadoop/hadoop-config,然后将/home/hadoop/hadoop/conf/目录中的masters,slaves,hadoop_env.sh三个文件拷贝到hadoop-config目录中,并指定环境变量$HADOOP_CONF_DIR指向该目录。环境变量在/home/hadoop/.bashrc和/etc/profile中设定。
如:
HADOOP_CONF_DIR=/home/hadoop/hadoop/hadoop-config
export HADOOP_CONF_DIR
综上所述,为了方便以后升级版本,我们需要做到配置文件与安装目录分离,并通过设定一个指向我们要使用的版本的hadoop的链接,这样可以减少我们对配置文件的维护。
Hadoop环境变量
在/home/hadoop/hadoop/hadoop-config目录下的hadoop_env.sh中设置Hadoop需要的环境变量,其中JAVA_HOME是必须设定的变量。HADOOP_HOME变量可以设定也可以不设定,如果不设定,HADOOP_HOME默认的是bin目录的父目录,即本文中的/home/hadoop/hadoop。我的是这样设置的:
export  HADOOP_HOME=/home/hadoop/hadoop
export  JAVA_HOME=/usr/java/jdk1.6.0
重点:env.sh还要加一句
export HADOOP_PID_DIR=/home/hadoop/hadoop/tmp
Hadoop配置文件
修改slaves文件
如前所述,在hadoop1(NameNode)的hadoop-config/目录下,打开slaves文件,该文件用来指定所有的DataNode,一行指定一个主机名。即本文中的hadoop2、hadoop3,因此slaves文件看起来应该是这样的:
hadoop2
hadoop3
hadoop4
修改masters文件
打开masters文件,该文件用来指定NameNode,内容如下:
localhost
hadoop1
修改core-site.xml

1.<?xml version="1.0"?>  
2.<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
3.<!-- Put site-specific property overrides in this file. -->  
4.<configuration>  
5.    <property>  
6.        <name>fs.default.name</name>  
7.        <value>hdfs://master:9000</value>  
8.        <description>  
9.            The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation.   
10.        </description>  
11.    </property>  
12.</configuration>


修改mapred-site.xml

1.<?xml version="1.0"?>  
2.<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
3.<!-- Put site-specific property overrides in this file. -->  
4.<configuration>  
5.    <property>  
6.        <name>mapred.job.tracker</name>  
7.        <value>master:9001</value>        
8.        <description>The host and port that the MapReduce job tracker runsat.</description>  
9.   </property>  
10.</configuration>  
修改hdfs-site.xml

1.<?xml version="1.0"?>  
2.<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
3.<!-- Put site-specific property overrides in this file. -->  
4.<configuration>  
5.    <property>  
6.            <name>dfs.replication</name>  
7.            <value>3</value>         
8.            <description>  
9.                  The actual number of replications can be specified when the file is created.   
10.            </description>  
11.      </property>  
12.</configuration>  


4.启动Hadoop
启动之前,我们先要格式化namenode,先进入~/hadoop/目录,执行下面的命令:
[hadoop@hadoop1 hadoop]$bin/hadoop  namenode  –format
不出意外,应该会提示格式化成功。如果不成功,就去hadoop/logs/目录下去查看日志文件。
下面就该正式启动hadoop啦,在bin/下面有很多启动脚本,可以根据自己的需要来启动。
* start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode
* stop-dfs.sh 停止DFS守护
在这里,简单启动所有守护:
[hadoop@hadoop1:hadoop]$bin/start-all.sh
同样,如果要停止hadoop,则
[hadoop@hadoop1:hadoop]$bin/stop-all.sh
HDFS操作
运行bin/目录的hadoop命令,可以查看Haoop所有支持的操作及其用法,这里以几个简单的操作为例。建立目录:
[hadoop@hadoop1 hadoop]$bin/hadoop  dfs  -mkdir  testdir
在HDFS中建立一个名为testdir的目录,复制文件:
[hadoop@hadoop1 hadoop]$bin/hadoop dfs -put /home/large.zip  testfile.zip
把本地文件large.zip拷贝到HDFS的根目录/user/hadoop/下,文件名为testfile.zip,查看现有文件:
[hadoop@hadoop1 hadoop]$bin/hadoop dfs -ls
用http://localhost:50070查看信息

运维网声明 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.iyunv.com/thread-309643-1-1.html 上篇帖子: Hadoop 1.0安装配置 下篇帖子: Hadoop HDFS权限控制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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