Ubuntu14.04LTS下 JAVA+HADOOP

首先在虚拟机中安装了Ubuntu14.04LTS

前期工作:

更新源、更新安装vim、安装vmtools工具、安装中文输入法

sudo apt-get update
sudo apt-get install vim

 

安装vmware tools时提示找不到linux header 的路径:

执行以下步骤:

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install linux-headers-$(uname -r)
cd /lib/modules/$(uname -r)/build/include/linux
sudo ln -s ../generated/utsrelease.h
sudo ln -s ../generated/autoconf.h
sudo ln -s ../generated/uapi/linux/version.h

再次运行sudo ./vmware-install.pl

 在英文版Ubuntu14.04中安装中文输入法:

  1. 首先在系统设置语言中添加安装中文语言支持
  2. 然后在ibus的Text Entry Settings设置面板中添加pinyin输入法
  3. 默认是win+space在输入法之间进行切换

修改主机名:

自己的计算机名通过sudo gedit /etc/hostname文件进行修改

假设共有3台节点(master、slave1、slave2)

本机和子节点ip配置文件:

sudo gedit /etc/hosts
192.168.1.100 master
192.168.1.101 slave1
192.168.1.102 slave2

另:ip配置命令:ifconfig eth0 xxx

 (网卡和ip都要根据自己的实际情况进行配置)

创建用户组和用户:

sudo addgroup hadoop
sudo adduser -ingroup hadoop hadoop

给用户添加(root)权限:

sudo gedit /etc/sudoers
在root ALL=(ALL:ALL) ALL下添加 hadoop ALL=(ALL:ALL) ALL

 

安装SSH

sudo apt-get install rsync

sudo apt-get install ssh (这个安装的时候会自动安装openssh-server)
ssh-keygen -t dsa -f ~/.ssh/id_dsa(生成秘钥,dsa或者rsa类型,不用设置密码,这样可以自动登录)
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys(将公钥放在authorized_keys授权文件中)
ssh localhost

方法二:

sudo ssh-keygen -t rsa -P "" (这样就不会提示输入密码,然后在.ssh 文件夹下生成私钥和公钥:id_rsa、id_rsa.pub)

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (使用公钥生成authorized_keys授权文件)
[注]:

检查ssh服务是否启动:

ps -e | grep ssh

开启重启关闭ssh服务: sudo /etc/init.d/ssh start (restart / stop)

ssh的配置文件在 /etc/ssh/sshd_config

安装完ssh之后可以再windows中通过putty软件输入ip远程登录ubuntu

更详细的putty和ssh使用参见:http://www.linuxidc.com/Linux/2013-07/87368.htm

公钥与私钥的讲解参见:http://blog.csdn.net/tanyujing/article/details/17348321

rsa(非对称)公钥用来加密和解密签章,私钥用来解密和签章。dsa速度较快,用来身份验证。

JAVA SE 下载

[注]在ubuntu下也可以直接使用命令行工具:sudo apt-get install open jdk-6-jre

系统会默认将java jdk安装到/usr/lib/jvm/java-6-openjdk-i386目录下。

手动下载安装和配置

地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

这里下载的是Java SE 7u67

java7Api:http://docs.oracle.com/javase/7/docs/api/

 将下载下来的java jdk放置在~/setup/java-jdk-7u67目录下:

将jdk解压到系统目录中:
cd /usr/local/lib sudo su tar -zxvf /home/sunny/setup/java-jdk-7u67/jdk-7u67-linux-x64.tar.gz chown root:root -R /usr/local/lib/jdk1.7.0_67 chmod 755 -R /usr/local/lib/jdk1.7.0_67

修改系统变量,配置java环境:

gedit /etc/profile

export JAVA_HOME=/usr/local/lib/jdk1.7.0_67
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

使之生效: source /etc/profile

检查安装是否成功:java -version

 

下载hadoop1.2.1    

网址:http://mirrors.ibiblio.org/apache/hadoop/common

下载 tar.gz版本

将下载的文件放到~/setup/hadoop目录下,然后在家目录中建立目录~/usr

cd
mkdir -p ~/usr/hadoop
cd ~/usr/hadoop
tar -zxvf ~/setup/hadoop/hadoop-2.4.1.tar.gz
cd ~/usr/hadoop/hadoop-2.4.1/etc/hadoop

修改配置文件

core-site.xml 、mapred-site.xml、hdfs-site.xml、hadoop-env.sh:

方案一:

伪分布式配置

core-site.xml:
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
------------------------------------------------------
mapred-site.xml:
<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
    <property>
</configuration>
-------------------------------------------------------
hdfs-site.xml:
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
-------------------------------------------------------
hadoop-env.sh:
export JAVA_HOME=/usr/local/lib/jdk1.7.0_67

 格式化namenode文件系统

cd ~/usr/hadoop-1.2.1/

bin/hadoop namenode -format

开启服务:

cd ~/usr/hadoop-1.2.1/bin

./start-all.sh

查看启动的节点:

jps

查看系统运行:

在浏览器中输入localhost:50070

方案二:

分布式配置:

core-site.xml:
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>
---------------------------------------------------
mapred-site.xml:
<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>master:9001</value>
    <property>
</configuration>
----------------------------------------------------
hdfs-site.xml:
<configuration>
    <property>
        <name>dfs.name.dir</name>
        <value>~/usr/hadoop-1.2.1/datalog1,~/usr/hadoop-1.2.1/datalog2
        </value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>~/usr/hadoop-1.2.1/data1,~/usr/hadoop-1.2.1/data2
        </value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
--------------------------------------------------------------------
hadoop-env.sh:
export JAVA_HOME=/usr/local/lib/jdk1.7.0_67     
--------------------------------------------------------------------
修改masters 和 slaves文件
gedit ~/usr/hadoop-1.2.1/conf/masters
master
gedit ~/usr/hadoop-1.2.1/conf/slaves
填写
slave1
slave2

格式化namenode文件系统

cd ~/usr/hadoop-1.2.1/

bin/hadoop namenode -format

复制节点:

在机器slave1和slave2中:

  1. 安装jdk
  2. 安装ssh,将master的公钥rsa_id.pub复制到slave节点中,生成authorized_keys文件
  3. 将master中已经配置好的~/usr/hadoop-1.2.1复制到slave节点中,在子节点中将hadoop-1.2.1目录下的datalog和data文件删除。

开启服务略...

 

 分别开启服务:

开启namenode和secondarynamenode:bin/start-dfs.sh

开启datanode: bin/hadoop-daemon.sh start datenode

开启tasktracker: bin/hadoop-daemon.sh start tasktacker




posted @ 2014-10-13 23:55  sunnycs  阅读(339)  评论(0编辑  收藏  举报