楼主: tanxinwei
12398 0

linux下安装hadoop详细教程(包会) [推广有奖]

  • 3关注
  • 7粉丝

博士生

44%

还不是VIP/贵宾

-

威望
0
论坛币
-16130 个
通用积分
1.0000
学术水平
18 点
热心指数
19 点
信用等级
12 点
经验
5631 点
帖子
132
精华
0
在线时间
246 小时
注册时间
2012-11-28
最后登录
2018-12-7

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

linux下安装hadoop详细教程


1、下载hadoophbase安装包(hbase是我研究的需要)

我下载最新的hadoop-0.20.2.tar.gzhbase-0.20.6.tar.gz,注意,他们的大版本最好要保持一致(譬如都是20版),否则在运行中可能会发生一些错误。安装包可以在win7中下载,因为已经安装好了vmwaretools可以直接将文件拖入red9中(关键是我还不熟悉linux的使用)

2、创建专门的hadoop用户(如hadoopor)并设置密码

在root下执行:

[root@pwrh root]# useradd hadoopor
[root@pwrh root]# passwd hadoopor

3、解压安装包到用户目录

用hadoopor用户登录,hadoop-0.20.2.tar.gz和hbase-0.20.6.tar.gz已经放入/usr/hadoop/目录下,usr目录适合存放软件数据。

cp *.gz ~   将连个压缩包放入 /home/hadoopor中(复制后文件权限就是hadoopor。)

tar zxfhadoop-0.20.2.tar.gz 解压包(加上v参数,可以显示解压过程,但是会变慢,因为IO)

rm -rf *.gz 删除压缩包(如果你有备份)

    因为在hadoopor用户下操作,已经不需要修改文件属主和权限

4、修改hadoop环境脚本

修改文件/home/hadoopor/hadoop-0.20.2/conf/hadoop-env.sh,在其中加入JAVA_HOME变量。可以用vi或者emacs,对于不太熟悉vi命令的就用emacs也算是图形界面。

   exportJAVA_HOME=/usr/java/jdk1.6.0_21假设java已经安装在/usr/java/jdk1.6.0_21目录

5、修改hadoop启动配置

hadoop 20版本前需要配置两个文件:hadoop-default.xml和 hadoop-site.xml。到了20版本后,这两个文件没有了,改为三个文件:core-site.xml,hdfs-site.xml,mapred-site.xml 。内在的原因是因为hadoop代码量越来越宠大,拆解成三个大的分支进行独立开发,配置文件也独立了。

这三个文件在/home/hadoopor/hadoop-0.20.2/conf 目录下,初始时,这三个文件除了注释内容外没有任何设置。

     1)修改core-site.xml文件: 设置hadoop需要的一些属性。从/home/hadoopor/hadoop-0.20.2/src/core目录下复制core-default.xml到conf目录下,并改名为core-site.xml。进入conf目录执行一下命令:

    cp ~/hadoop-0.20.2/src/core/core-default.xml./ (./ 代表当前目录)
    rm -f core-site.xml   删除空文件
    mv core-default.xml core-site.xml   将复制来的文件改名

然后修改文件中的以下内容:

         1.1)hadoop.tmp.dir
设置临时文件目录参数hadoop.tmp.dir,默认情况下master会将元数据等存在这个目录下,而slave会将所有上传的文件放在这个目录下,我选择的数据目录为:/data0/hadoopor/hadoop_tmp

<property>
<name>hadoop.tmp.dir</name>
<value>/data0/hadoopor/hadoop_tmp</value>
<description>A base for other temporary directories.</description>
</property>

注意事项:由于上传到Hadoop的所有文件都会被存放在hadoop.tmp.dir所指定的目录,所以要确保这个目录是足够大的。

         1.2)fs.default.name
master需要用这个参数,提供基于http协议的状态上报界面,而slave通过这个地址连接master,设置如下:

<property>
<name>fs.default.name</name>
<value>hdfs://pwrh:8989</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>

备注:fs.default.name指定NameNode的IP地址(主机名)和端口号,缺省值是file:///,,表示使用本地文件系统,,用于单机非分布式模式。注意,在使用时,我已开始是用缺省值file:///,但是在解析ip地址时出错,改为指明地址就OK了。

其他:dfs.replication指定HDFS中每Block被复制的次数,起数据冗余备份的作用。在典型的生产系统中,这个数常常设置为3

     2)修改 mapred-site.xml 文件:配置 MapReduce 的一些设置,从/home/hadoopor/hadoop-0.20.2/src/mapred目录下复制mapred-default.xml到conf目录下,并改名为mapred-site.xml。执行命令同core-site.xml操作完全相似。

修改如下属性配置:

<property>

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

<value>hdfs://pwrh:8990</value>

<description>The host and port that the MapReduce jobtracker runs

at. If"local", then jobs are run in-process as a single map

and reduce task.

</description>

</property>

注:缺省值local ,表示使用本地文件系统,,用于单机非分布式模式,但是jobtracker和TaskTracker进程无法启动。所以还是设置完整。

       3)修改 hdfs-site.xml 文件:配置 hdfs的一些设置,从/home/hadoopor/hadoop-0.20.2/src/hdfs目录下复制hdfs-default.xml到conf目录下,并改名为hdfs-site.xml。不需要修改此文件。

        4)修改 masters 和 slaves 文件:配置,文件中写入作为master机器和slaves机器的IP地址,如果是单机,都写localhost即可。

6hadoop初始化及启动、停止

     1)配置hadoop可执行脚本的运行路径。这个写在用户的.bash_profile 文件中比较合适。因为这是针对每个用户的设置,那么这个文件也是针对不同用户各有一个。对于那些所有用户都需要的环境变量放在 /etc/profile中比较合适。 该文件在用户登录时自动生效,如果不重新登录,使用source.bash_profile也能使配置在当前shell中生效(注意仅在当前shell中,所以,最好注销重登录一次)。配置内容:

HADOOP_HOME=~/hadoop-0.20.2
PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin

        2)格式化 :在启动Hadoop集群之前,需要先格式化,在master节点上执行下面,以hadoop用户登陆系统然后执行 hadoop namenode-format    成功后可以去之前指定的tmp路径下(/data0/hadoopor/hadoop_tmp)确认是否生成了dfs目录及其子目录。

        3)启动hadoop:执行命令 start-all.sh   成功执行完成后,用java的jps命令确认是否以下进程被创建:

NameNode
JobTracker
SecondaryNameNode
/*以上是master上namenode应该起的进程*/

DataNode
TaskTracker
/*以上是slave上datanode应该起的进程*/

如果出现问题,可以去~/hadoop-0.20.2/logs/目录下查看具体log,确认为何某个进程无法启动。有时很可能就因为某个配置文件小的笔误。

注:我初次设置时,虽然所有进程都能启动,但是在启动停止时,总提示警告:localhost:socket: Address family not supported by protocol   既然localhost不能解析,那么写了localhost的文件就只有slaves和masters这两个配置文件。所以,修改两个文件内容为:127.0.0.1(本机回环地址),重新启动,则不再出现问题。

       4)停止hadoop:执行命令 stop-all.sh   成功执行完成后,用jps确认是否启动时创建的进程都被kill掉。

        5)确认状态:执行命令 hadoop dfsadmin-report 注意有没有“Datanodes available: 1 (1 total,0 dead)”出现,如果没有数据节点被连接,请登录数据节点,查看hadoop的日志文件,查找其失败的原因。

        6)运行wordcount例程:
hadoopfs -put ~/hadoop-0.20.2/conf/core-site.xml test (给hdfs上传一个文本文件)
hadoop fs -cat test (查看hdfs上的这个文件)
hadoopjar ~/hadoop-0.20.2/hadoop-0.20.2-examples.jar wordcount /user/hadoopor/testoutput

输出内容(部分):

10/08/24 20:47:05 INFO input.FileInputFormat: Total input pathsto process : 1
10/08/24 20:47:06 INFO mapred.JobClient: Running job: job_201008242008_0001
10/08/24 20:47:07 INFO mapred.JobClient: map 0% reduce 0%
10/08/24 20:47:14 INFO mapred.JobClient: map 100% reduce 0%
10/08/24 20:47:29 INFO mapred.JobClient: map 100% reduce 100%
10/08/24 20:47:31 INFO mapred.JobClient: Job complete: job_201008242008_0001
10/08/24 20:47:31 INFO mapred.JobClient: Counters: 17

好了,可以体验hadoop之旅了。。。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Hadoop Linux Had Lin Replication hadoop安装

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-9-26 23:39