一、安装JDK
1、用户可以在Oracle JDK的官网下载相应版本的JDK,本例以JDK 1.6为例,官网地址为http://www.oracle.com/tech-network/java/javase/downloads/index.html。
2、配置环境变量,在/etc/profile增加以下代码。
1 #Seeting JDK JDK环境变量
2 export JAVA_HOME=/opt/java/jdk/jdk1.7.0_79
3 export JRE_HOME=${JAVA_HOME}/jre
4 export CLASSPATH=${JAVA_HOME}/lib
5 export PATH=${JAVA_HOME}/bin:$PATH
输入java -version命令查看是否安装成功
二、配置SSH
一般linux系统都自带了SSH服务,如果没有SSH服务需要自己安装
1、查看是否安装SSH: ps
-e |
grep
ssh
如果没有显示sshd,说明没有安装ssh服务
2、通过 “sudo
apt-get
install
openssh-server
” 安装
$ sudo apt-get install openssh-server
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
openssh-server : 依赖: openssh-client (= 1:6.6p1-2ubuntu1)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
这是因为,openssh-server是依赖于openssh-clien的,那ubuntu不是自带了openssh-client吗?原由是自带的openssh-clien与所要安装的openssh-server所依赖的版本不同,这里所依赖的版本是1:6.6p1-2ubuntu1,所以要安装对应版本的openssh-clien,来覆盖掉ubuntu自带的。
$ sudo apt-get install openssh-client=1:6.6p1-2ubuntu1
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
建议安装的软件包:
libpam-ssh keychain monkeysphere
下列软件包将被【降级】:
openssh-client
升级了 0 个软件包,新安装了 0 个软件包,降级了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 566 kB 的软件包。
解压缩后会消耗掉 0 B 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty/main openssh-client amd64 1:6.6p1-2ubuntu1 [566 kB]
下载 566 kB,耗时 2秒 (212 kB/s)
dpkg:警告:downgrading openssh-client from 1:6.6p1-2ubuntu2 to 1:6.6p1-2ubuntu1
(正在读取数据库 ... 系统当前共安装有 200015 个文件和目录。)
Preparing to unpack .../openssh-client_1%3a6.6p1-2ubuntu1_amd64.deb ...
Unpacking openssh-client (1:6.6p1-2ubuntu1) over (1:6.6p1-2ubuntu2) ...
Processing triggers for man-db (2.6.7.1-1) ...
正在设置 openssh-client (1:6.6p1-2ubuntu1) ...
可以看到,提示了系统中openssh-client被降级,这样再安装openssh-server就可以成功了!
3、查看SSH 目录 /etc/ssh 下是否有密钥文件
如果没有这两个文件,需要自己生成。输入以下命令。
#ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
#ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
生成密钥文件时,会提示输入密码,这里我们不输入密码,默认按回车
可以用“passwd 用户” 来修改ssh的登录密码。
4、启动ssh
/etc/init.d/ssh status 查看ssh状态
/etc/init.d/ssh start 启动ssh
/etc/init.d/ssh restart 重启ssh
5、测试ssh 是否安装成功
三、配置SSH免密码登录
1、输入 ssh-keygen -t rsa
$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/*回车,设置默认路径*/
Enter passphrase (empty for no passphrase):
/*回车,设置空密码*/
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
如果是root用户,则在/root/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。
2、将id_rsa.pub 文件 写入 authorized_keys
cat id_rsa.pub >> ~/.ssh/authorized_keys
查看 /root/.ssh目录
3、装id_rsa.pub 文件发送到远程机器上
scp id_rsa.pub root@172.20.14.144:/home
cat /home/id_rsa.pub >> /root/.ssh/authorized_keys
这样ssh登录远程机器就不需要密码了。
四、安装Hadoop
1、下载安装Hadoop2.2.0
2、解压tar包
$ sudo tar-vxzf hadoop-2.2.0.tar.gz -C /usr/local
$ cd /usr/local
$ sudo mv hadoop-2.2.0 hadoop
$ sudo addgroup hadoop 添加hadoop组
$ sudo adduser -ingroup hadoop hadoop 添加hadoop用户
$ sudo chown -R hduser:hadoop hadoop 授权
3、查看Hadoop包是32位还是64位
4、配置Hadoop环境变量
$ gedit /etc/profile
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
5、编辑配置文件
1)、进入Hadoop所在目录/usr/local/hadoop/etc/hadoop。
core-site.xml文件
<configuration>/*这里的值指的是默认的HDFS路径*/
<property>
<name>fs.default.name</name><!-- 客户端用于连 HDFS端口,操作文件. -->
<value>hdfs://master:9000</value>
</property>
/*缓冲区大小:io.file.buffer.size默认是4KB*/
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property><property>
<name>hadoop.tmp.dir</name><!-- 临时文件路径-->
<value>/home/tmp</value>
<description>Abase for other temporary directories. </description>
</property>
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>
3)、配置hdfs-site.xml
创建namenode和datanode目录,执行以下命令
$ mkdir /hdfs/namenode
$ mkdir /hdfs/datanode
配置hdfs-site.xml文件
<configuration>
<!--
<property>
<name>dfs.namenode.rpc-address</name>
<value>master:9000</value>
</property>-->
<!--
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
<description>dfs namenode web ui 的地址 </description>
</property>-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value><!--???-->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hdfs/namenode</value>
</property>
<!--配置datanode的数据存储目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/hdfs/datanode</value>
</property>
<!--配置副本数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS、LISTFILESTATUS等需要列出文件、文件夹状态的命令,因为这些信息都是由namenode保存的-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
4)、配置hadoop-env.sh 和 yarn-env.sh 文件
加入环境变量:export JAVA_HOME=/opt/java/jdk/jdk1.7.0_79/
5)、配置yarn-site.xml文件
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>/*resourcemanager的地址*/
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>/*调度器的端口*/
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value> master:8030</value>
</property>/*resource-tracker端口*/
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>/*resourcemanager管理器端口*/
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>/*ResourceManager 的 Web 端口,监控 job 的资源调度*/
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
6)、配置mapred-site.xml文件 伪分布式不用配
<configuration>/*hadoop对map-reduce运行框架一共提供了3种实现,在mapred-site.xml中通过"mapreduce.framework.name"这个属性来设置为"classic"、"yarn"或者"local"*/
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>/*MapReduce JobHistory Server地址*/
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>/*MapReduce JobHistory Server Web UI地址*/
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
7)、配置masters,slaves
sudo gedit /usr/local/hadoop/etc/hadoop/masters 添加:localhost (或master 必须配置hosts文件)
sudo gedit /usr/local/hadoop/etc/hadoop/slaves
添加:localhost
8)、配置hosts 文件 (可不配置)
gedit /etc/hosts 添加如下内容
192.168.0.161 master
192.168.0.156 slave1
9)、格式化Namenode(在Hadoop根目录下)
./bin/hadoop namenode -format
10)、启动hadoop(在hadoop根目录下)
./sbin/start-all.sh
11)、查看hadoop是否启动功能
五、测试hadoop
1、hadoop根目录下创建文件夹
hadoop fs -mkdir /test
2、查看hadoop目录文件
HDFS NameNode界面:http://localhost:8042
hadoop 下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-2.6.0/