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

[经验分享] hadoop和hdfs环境搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-6-18 09:05:00 | 显示全部楼层 |阅读模式
环境:ubuntu14.04 hadoop1.0.1
下面以3台机器为例,讲解安装过程
1) 准备3台机器,一台作为nameNode,命名为master,两台作为dataNode,命名为slave01, slave02。强调命名是为了方便管理,其实命名无所谓。如果已命名为其它名称,可通过编辑/etc/hostname进行更改。
2) 为所有主从节点配置静态ip,因为主从节点间需要相互访问,如果ip地址动态变化可能造成无法访问的错误。当然,如果在同一局域网中也可以通过主机名以及主机名和ip地址的动态映射服务相互访问。但还是建议设置静态ip
3) 在3台机器上都设置hadoop用户,并且给这一用户管理员权限,我出于学习目的直接使用了root用户。添加用户命令:adduser hadoop,之后按提示输入和确认密码。增加管理员权限可修改/etc/sudoers 文件,找到下面一行:root ALL=(ALL) ALL,在该行下增加一行:hadoop ALL=(ALL) ALL。也可以将hadoop用户加入具有管理员权限的组中。另外,还可以修改/etc/passwd 文件,找到如下行:hadoop:x:1001:1001:hadoop:/home/hadoop:/bin/bash把用户ID修改为 0,则修改后该行变为:hadoop:x:0:1001:hadoop:/home/hadoop:/bin/bash。这样做,hadoop用户就完全变为root用户了,虽简单,但不建议这么改。
4) 安装SSH并配置免密码SSH访问机制(重要)Ubuntu系统可通过sudo apt-get install ssh进行安装,其它系统请自行查阅相关资料。配置ssh无密码直接访问:首先查看hadoop用户的home目录中是否包含名称为.ssh的文件夹,可用命令ls -a,如果没有,则可以自己建一个,可用命令mkdir .ssh,之后执行命令ssh-keygen -t rsa,接下来一般一路回车即可(当然你也可以仔细看一下每一步都是干什么的),接下进入.ssh目录,执行命令:cat id_rsa.pub >> authorized_keys,注意,在所有节点执行以上操作,并将所有节点的authorized_keys文件合并成一个,并且在所有节点间共享这一文件(至于所有节点的.ssh目录下),至此,所有节点之间都可以通过ssh无密码访问了,ssh远程登陆可用命令ssh ip -l username,设置完后可通过该命令进行测试。之所以要设置ssh无密码访问机制,是因为hadoop使用ssh协议,无密码访问更加方便(话说我还不是特别清楚hadoop支不支持有密码访问)。
5) Jdk安装。可使用官方jdk,也可以使用openjdkopenjdk建议使用版本7,官方jdk建议使用版本6以上。我使用的是官方jdk,版本1.7.0_51,可通过命令java -version查看jdk版本。以我的版本为例,首先下载jdk-7u51-linux-x64.tar.gz,解压到你自己选择的安装路径,我选的是/usr/java,之后配置一下环境变量,可修改/etc/profile文件,该修改对整个系统生效,也可以修改/home/username/.bashrc,该修改仅对相应用户生效,修改完后,可执行source /etc/profile使修改生效。如我在/etc/profile文件中增加如下几行:
export  JAVA_HOME=/usr/java/jdk1.7.0_51
export  JRE_HOME=$JAVA_HOME/jre
export  PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
6) 在主节点上解压安装Hadoop。到Hadoop官网下载hadoop-1.0.1.tar.gz(本人使用的是此版本!),我所选择的安装目录是用户的home目录,所以将其直接解压到root用户的home目录下。
7) 配置hadoop环境变量。同样是配置/etc/profile文件,以我为例添加以下内容:
export  HADOOP_HOME=/root/hadoop-1.0.1
export  PATH=$PATH:$HADOOP_HOME/bin
export   HADOOP_CLASSPATH=$HADOOP_HOME/lib/commons-lang-2.4.jar:$HADOOP_HOME/lib/commons-logging-api-1.0.4.jar:$HADOOP_HOME/lib/commons-configuration-1.6.jar:$HADOOP_HOME/hadoop-core-1.0.1.jar:$HADOOP_HOME/contrib/streaming/hadoop-streaming-1.0.1.jar
export   CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$HADOOP_CLASSPATH。同 样需要使用source命令使配置生效。
8) 在主节点上修改hadoop配置文件。 Hadoop的配置文件存放在hadoop安装目录下的conf目录中,主要有以下几个配置文件要修改:
conf/hadoop-env.shHadoop环境变量设置
conf/core-site.xml:主要完成NameNodeIP和端口设置
conf/hdfs-site.xml:主要完成HDFS的数据块副本等参数设置
conf/mapred-site.xml:主要完成JobTracker IP和端口设置
conf/masters:完成master节点IP设置
配置hadoop-env.sh文件
添加 # set java environment
export JAVA_HOME=/usr/java/jdk1.7.0_51
配置core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
   <property>
     <name>fs.default.name</name>
     <value>hdfs://Master:9000/</value>//Master为主节点主机名
   </property>
   <property>
      <name>hadoop.tmp.dir</name>
      <value>/tmp</value>
   </property>
</configuration>
说明:hadoop分布式文件系统的两个重要的目录结构,一个是namenode上名字 空间的存放地方,一个是datanode数据块的存放地方,还有一些其他的文件存 放地方,这些存放地方都是基于hadoop.tmp.dir目录的,比如namenode的名字 空间存放地方就是 ${hadoop.tmp.dir}/dfs/name, datanode数据块的存放地方就是 ${hadoop.tmp.dir}/dfs/data,所以设置好hadoop.tmp.dir目录后,其他的重要目录 都是在这个目录下面,这是一个根目录。在此设置的是 /tmp,当然这个目录必须 是存在的。
配置hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
  <property>
     <name>dfs.replication</name>
     <value>3</value>
  </property>
</configuration>
配置mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
  <property>
     <name>mapred.job.tracker</name>
     <value>Master:9001</value>
  </property>
</configuration>
配置masters文件和slaves文件
将主机名填进去就行了
9) 之后,就可以将配置好好的主节点拷贝到其他各节点上。可使用命令scp。如我的是scp -r /root/hadoop-1.0.1/ root@ip:/root。即将主节点root目录下的hadoop目录拷贝到其他节点的root目录下。完成之后,需要修改各节点的/etc/hosts文件,以完成主机名到ip地址的映射。
10) 格式化NameNode。执行Hadoopbin文件夹中的格式化命令:hadoop namenode -format,如果格式化成功,会返回一堆有关NameNode的启动信息,其中会有一句“…. has been successfully formatted.
11) 启动HDFSMapReduce。执行命令start-all.sh。用JPS命令检查一下是否正常启动:jsp显示以下各进程信息则说明HDFSMapReduce都已正常启动:
4706 JobTracker
4582 SecondaryNameNode
4278 NameNode
4413 DataNode
4853 TaskTracker
4889 Jps
12)进行测试,使用hadoop自带的测试用例wordcount程序,执行命令:hadoop jar hadoop-1.0.1-examples.jar wordcount input output。其中input文件夹是位于hadoop文件系统/user/root/目录下,可查看该目录下的文件,使用命令:hadoop fs -ls /user/root/input,其中ls可以换成其他linux命令。将待计数的文本文件至于该目录下,使用命令:hadoop fs -put file /user/root/input。输出结果将置于output目录下。如没有input目录可以建一个。


运维网声明 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-20784-1-1.html 上篇帖子: hadoop 平均成绩 下篇帖子: Eclipse下搭建Hadoop2.4.0开发环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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