Ubuntu下Hadoop环境的配置

2019-03-28 13:20|来源: 网络

今天去学校里的研究生实验室看了下视频大数据处理这块,其中要用到Hadoop技术,自己对分布式开发虽然不了解,但是感觉很感兴趣。研2的学长人很好,愿意带着我跟他们一起做项目。确实有点压力,但是努力吧。。

言归正传,配置过程主要分为两步

1:jdk的配置。详情请看jdk的配置 http://www.linuxidc.com/Linux/2012-11/74190.htm

2:hadoop的安装  下载地址 http://labs.xiaonei.com/apache-mirror/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz

      1、安装java和ssh
      在Ubuntu下使用apt-get就可以很方便地将JDK和ssh安装好,Ubuntu一般默认安装有ssh客户端,并没有安装服务器端,输入"apt-get install ssh"便会将服务器安装好,然后使用"/etc/init.d/ssh start"将服务器运行起来。
      2、创建hadoop用户组和hadoop用户
 #addgroup hadoop
 #adduser --ingroup hadoop hadoop
      3、配置ssh
切换到hadoop用户下
#su - hadoop
生成密钥对
hadoop@ubuntu:~$ssh-keygen -t rsa -P ""
将公钥拷贝到服务器上
hadoop@ubuntu:~$cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
      4、安装Hadoop
Hadoop不需要安装解压后就可以用了,以root用户运行下面的命令。
#cd /usr/local
#tar xzf hadoop-0.20.0.tar.gz
#mv hadoop-0.20.0 hadoop
#chown -R hadoop:hadoop hadoop

5、配置Hadoop
打开conf/hadoop-env.sh,修改其中一句就ok了。将“#export JAVA_HOME=/usr/lib/j2sdk1.5-sun”改成“export JAVA_HOME=/usr/lib/jvm/java-6-sun“就好了,当然要看安装的java版本了,Ubuntu 9.10的源的Java版本就是1.6。
接着修改core-site.xml文件,填入以下内容(/local/hadoop-datastore/hadoop-hadoop目录必须存在,并且需要将目录属主改成hadoop用户,${user.name}这个变量不知道是哪儿定义的):
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-datastore/hadoop-${user.name}</value>
<description>A base for other temporary directories.</description>
</property>

<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</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>

<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</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>localhost:54311</value>
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>

</configuration>
原文中似乎将这两段配置均放在了hadoop-site.xml配置文件中,0.20.0版本之后的Hadoop似乎不再有这个配置文件了,取而代之是core-site.xml,如果将这些内容全部放入这个文件中会出问题。TaskTracker和JobTracker将运行不起来,log记录的错误为:
2009-10-31 21:43:28,399 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.lang.RuntimeException: Not a host:port pair: local
这个错误让我郁闷了好久,偶然的机会在一个台湾的网页上看到说必须将第二段放入mapred-site.xml文件中,这样果然ok了 ^_^

相关问答

更多
  • 你用0.21版本的吧? 这个不稳定,且不提供支持的,现在学的话找0.20版本的学吧。 HDFS not found可能是由于你的HADOOP_HOME没有设置, 执行如下命令后再hdfs namenode -format: export HADOOP_HOME="你的hadoop安装路径"
  • 路径不对。 使用绝对路径/~/hadoop2.7/bin/hadoop 或者相对路径 在bin目录下 ./hadoop 或者将bin目录加到/etc/profile中作为环境变量
  • 典型的配置: export HADOOP_HOME=/usr/local/hadoop export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_HOME=$HADOOP_HOMEexport YARN_CONF_DIR= ...
  • 1)下载并解压hadoop-0.20.203.0.修给解压文件夹名字为hadoop-0.20.203 2)按上述所示将hadoop-0.20.203/bin路径加到PATH环境变量中 sudo gedit/etc/profile 3)修改配置文件,配置文件都在hadoop-0.20.203/conf目录下。 a.进到/hadoop-0.20.203/conf/hadoop-env.sh中,解注释JAVA_HOME 修改为:JAVA_HOME=/home/hadoop/jdk1.6 b.修改core-site ...
  • 1)下载并解压hadoop-0.20.203.0.修给解压文件夹名字为hadoop-0.20.203 2)按上述所示将hadoop-0.20.203/bin路径加到PATH环境变量中 sudo gedit/etc/profile 3)修改配置文件,配置文件都在hadoop-0.20.203/conf目录下。 a.进到/hadoop-0.20.203/conf/hadoop-env.sh中,解注释JAVA_HOME 修改为:JAVA_HOME=/home/hadoop/jdk1.6 b.修改core-site ...
  • 我的eclipse是装在WINDOWS下的,HADOOP在CENTOS生产环境。 但原理是一样额 http://club.sm160.com/showtopic-937269.aspx HADOOP 版本是hadoop1.0.0(和你的hadoop1.0.4配置相同)
  • 1)下载并解压hadoop-0.20.203.0.修给解压文件夹名字为hadoop-0.20.203 2)按上述所示将hadoop-0.20.203/bin路径加到PATH环境变量中 sudo gedit/etc/profile 3)修改配置文件,配置文件都在hadoop-0.20.203/conf目录下。 a.进到/hadoop-0.20.203/conf/hadoop-env.sh中,解注释JAVA_HOME 修改为:JAVA_HOME=/home/hadoop/jdk1.6 b.修改core-site ...
  • 刚接触的话就换成root用户试试,原因是没有执行权限,或者将hadoop安装目录的所有权限赋予给当前用户
  • 你试试 sudo update-alternatives --config java 能看看你的jdk到底是什么版本 比如我的是/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 那么我的JAVA_HOME就是”/usr/lib/jvm/java-7-openjdk-amd64". 你的也可能是java-7-openjdk-i386也说不定 所以我怀疑你直接写java-6-oepnjdk会有问题
  • ubuntu配置单机hadoop的步骤: 1、创建hadoop用户组 2、创建hadoop用户 sudo adduser -ingroup hadoop hadoop 回车后会提示输入新的UNIX密码,这是新建用户hadoop的密码,输入回车即可。 如果不输入密码,回车后会重新提示输入密码,即密码不能为空。 最后确认信息是否正确,如果没问题,输入 Y,回车即可。 3、为hadoop用户添加权限 输入:sudo gedit /etc/sudoers 回车,打开sudoers文件 给hadoop用户赋予和roo ...