环境:
Ubuntu14.04
Hadoop 2.4.0,Hive 0.13.1
一.单机模式
1.安装全新的Ubuntu系统,用sudo apt-get update 和 sudo apt-get upgrade 更新系统,这步属个人习惯,可以不做。
2.创建hadoop用户组和hadoop帐号:
sudo addgroup hadoop
sudo adduser -ingroup hadoop hadoop
3.编辑/etc/sudoer文件给hadoop帐号开与root一样的权限 hadoop ALL=(ALL:ALL) ALL
4.用hadoop用户登录:su hadoop
5.确认openssh已经安装如未安装则安装:
sudo apt-get install openssh-server
sudo /etc/init.d/ssh start
6.创建免密码登录,生成私钥和公钥
ssh-keygen -t rsa -P ""
7.将公钥追加到authorized_keys中,它用户保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
8.ssh localhost 测试无密码登录。
9.安装java环境(最好安装sunjdk,不要安装openjdk)
a. 下载最新版的jdk,并解压
b.创建安装目录mkdir /usr/lib/jvm
c.将解压好的jdk移动到安装目录,如:sudo mv jdk1.7/ /usr/lib/jvm/java-7-sun
d. 编辑~/.bashrc以配置java的环境:
export JAVA_HOME=/usr/lib/jvm/java-7-sun
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
e. source ~/.bashrc 使配置生效,env查看结果,
f.配置默认程序
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-sun/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 300
sudo update-alternatives --config java sudo update-alternatives --config javac
g.java -version;avac -version 查看java版本号是否正确。
(Ps: 之前我装的是java1.8版本,但是在后面编译hadoop的时候保存了,然后果断换成1.7版本,一切正常)
10.下载hadoop 最新版 http://mirror.bit.edu.cn/apache/hadoop/common/ 并解压;
11.创建hadoop安装目录 sudo mkdir /usr/local/hadoop,将解压后的hadoop文件夹移过去 sudo mv ./hadoop-2.4.0/* /usr/local/hadoop;修改hadoop安装目录权限 sudo chmod 774 /usr/local/hadoop
12.配置haoop环境变量,vi ~/.bashrc
14.测试
单机模式安装完成,下面通过执行hadoop自带实例WordCount验证是否安装成功
/usr/local/hadoop路径下创建input文件夹
mkdir input
拷贝README.txt到input
cp README.txt input
执行WordCount
bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.4.0-sources.jar org.apache.hadoop.examples.WordCount input output
至此,单机版配置完成,其实还是很简单的。
二.伪分布式
15.
设定*-site.xml
这里需要设定3个文件:core-site.xml,hdfs-site.xml,mapred-site.xml,都在/usr/local/Hadoop/conf目录下
core-site.xml: Hadoop Core的配置项,例如HDFS和MapReduce常用的I/O设置等。
hdfs-site.xml: Hadoop 守护进程的配置项,包括namenode,辅助namenode和datanode等。
mapred-site.xml: MapReduce 守护进程的配置项,包括jobtracker和tasktracker。
首先在hadoop目录下新建几个文件夹
~/hadoop$ mkdir tmp
~/hadoop$ mkdir hdfs
~/hadoop$ mkdir hdfs/name
~/hadoop$ mkdir hdfs/data
编辑配置文件:
core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/hdfs/data</value>
</property>
</configuration>
16.格式化 hdfs /usr/local/hadoop/bin/hadoop namenode -format 结果类似
17.启动hadoop /usr/local/hadoop/sbin/start-all.sh (老版本启动程序是在/usr/local/hadoop/bin目录里),运行jps,出现如下结果说明成功:
首先在dfs中创建input目录
Hadoop@Ubuntu:/usr/local/hadoop$ bin/hadoop dfs -mkdir input
将conf中的文件拷贝到dfs中的input
hadoop@ubuntu :/usr/local/hadoop$ hadoop dfs -copyFromLocal conf/* input
在伪分布式模式下运行WordCount
hadoop@ubuntu :/usr/local/hadoop$ hadoop jar hadoop-examples-1.0.2.jar wordcount input output
18.运行 /usr/local/hadoop/bin/hadoop dfsadmin -report 查看运行状态 或输入http://ip:50070查看web版运行状态
19.运行测试例子
首先在dfs中创建input目录
Hadoop@Ubuntu:/usr/local/hadoop$ bin/hadoop dfs -mkdir input
将conf中的文件拷贝到dfs中的input
hadoop@ubuntu :/usr/local/hadoop$ hadoop dfs -copyFromLocal conf/* input
在伪分布式模式下运行WordCount
hadoop@ubuntu :/usr/local/hadoop$ hadoop jar hadoop-examples-1.0.2.jar wordcount input output
PS:在64位版本下会报“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable”的错误,这是因为hadoop网站提供的是32位版本,在64位下需要自己下在hadoop源码重新编译,但我重新编译了以后仍然报错,打开debug模式后发现是lib的路径错了,于是cp /usr/local/hadoop/lib/native/* /usr/local/hadoop/lib/ 问题解决。