第一步:安装jdk
我的linux版本是centos7,使用最简单的安装方式,这里首先说一下,由于系统会预装openjdk版本等其他各种版本,首先要做的是清除这些版本,然后iu安装oracle的jdk版本
1.1 查看所有jdk版本并删除其他jdk版本
rpm -qa | grep java
这里可以看到所有的jdk版本,我建议的做法是将所有的jdk版本都铲除,
rpm -e ---nodeps 『jdk版本』
这里有一个小技巧,就是在终端中复制的操作是选中之后摁鼠标中健
删除完所有的jdk版本后去官网下载jdk,保存,然后解压,解压位置我的是在/usr/java。
tar -zxvf jdk1.7.0_79.tar.gz -C /usr/java
解压并且移动到/usr/java下。
配置环境变量
vim /etc/profile,按i进入编辑模式,在最后面添加JAVA_HOME等属性
export JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
配置好之后,先按,后按shift+: ,然后按wq,保存退出编辑,终端:source /etc/profile
java -version
显示正确版本:
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)说明jdk配置成功。第二步:安装配置ssh
2.1 安装和基本ssh配置
首先要做的是关闭防火墙,防止防火墙对ssh访问拒绝
查看下防火墙状态:
firewall-cmd --state
若显示运行,则关闭,并设置开机不启动。
systemctl stop firewalld.service;
systemctl disable firewalld.service.
检测防火墙状态:
firewall-cmd --state
显示:no running,配置完成。
一般的linux系统都自带ssh,首先你需要查看ssh是否真的存在:
rpm -qa | grep ssh
显示:
openssh-server-6.6.1p1-11.el7.x86_64
openssh-6.6.1p1-11.el7.x86_64libssh2-1.4.3-8.el7.x86_64openssh-clients-6.6.1p1-11.el7.x86_64类似信息说明ssh已安装。
下面查看ssh服务是否自动启动,使用命令行查看所有默认自启动服务:
systemctl list-unit-files|grep enabled
如果发现sshd服务没有启动,则设置sshd服务自启动
systemctl enable sshd.service
这里要说明以下,centos7的指令换成了新的,ssh指令操作指令都有以下:
systemctl enable sshd.service【设置sshd服务开机自启动】
systemctl disable sshd.service【关闭sshd服务开机自启动】
ystemctl start sshd.service【开始sshd服务】
systemctl stop sshd.service【关闭sshd服务】
systemctl restart sshd.service【重启sshd服务】
reboot后,然后查看端口服务情况:
netstat -lntp
显示如下:
1476/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN1476/sshd
tcp6 0 0 ::1:631 :::* LISTENok,配置成功。
2.2 配置ssh免登陆
配置ssh免登陆首先需要root权限去修改:
/etc/ssh
下的 sshd_config文件
vim sshd_config;
将文件中三个配置解除注释(删除#号)
AuthorizedKeysFile .ssh/authorized_keys
RSAAuthentication yes
PubkeyAuthentication yes
然后保存,退出,重新启动ssh
systemctl restart sshd.service
接下来的步骤必须是普通用户操作,不然会导致ssh配置失败,无法实现免密码登录
原因是你的.ssh文件被放在了/root目录下,根本没有起到作用.
生成密钥:
ssh-keygen
一直cd ~/.ssh
cat id_rsa.pub >> authorized_keys,
ssh localhost验证,输入root密码,之后会出现一个lastLogin,说明成功
第三步:配置hadoop2.2.0
下载hadoop2.2.0,这里给一个apache的所有开元项目的下载位置:achirive.apache.org
找到hadoop包,下载相应版本,我没有下载stable几个包里的,而是选择下载了2.2.0版本
下载后,解压:
cd /; mkdir hadoop;
tar -zxvf hadoop2.2.0.tar.gz -C /hadoop;
首先配置hadoop的环境变量:
vim /etc/profile;
i
export HADOOP_HOME=/hadoop/hadoop-2.2.0export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib
最后的配置完整如下:
export JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/libexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport HADOOP_HOME=/hadoop/hadoop-2.2.0export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"这里的路径是在java的path基础上追加,以:分割。
esc,shift+:;wq;
然后配置hadoop自身配置
cd /hadoop/hadoop-2.2.0/etc/hadoop
ls
显示:
capacity-scheduler.xml hdfs-site.xml mapred-site.xml
configuration.xsl httpfs-env.sh slavescontainer-executor.cfg httpfs-log4j.properties ssl-client.xml.examplecore-site.xml httpfs-signature.secret ssl-server.xml.examplehadoop-env.cmd httpfs-site.xml yarn-env.cmdhadoop-env.sh log4j.properties yarn-env.shhadoop-metrics2.properties mapred-env.cmd yarn-site.xmlhadoop-metrics.properties mapred-env.shhadoop-policy.xml mapred-queues.xml.template这里要修改:core-site.xml ,hadoop-env.sh ,hdfs-site.xml ,mapred-site.xml,yarn-site.xml五个。3.1 core-site.xml
<configuration>
<!--hdfs临时文件存放位置-->
<property><name>haddop.tmp.dir</name><value>/hadoop/hadoop-2.2.0/tmp</value></property><property><!--hdfs的namenode的通信地址-->
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value><final>true</final></property></configuration>3.2 hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_79
这里是重新配置JAVA_HOME3.3 hdfs-site.xml
<configuration>
<!--这里是配置nameode的文件存放位置,若这里没有配置不会影响namenode数据存放
他会默认存放到core-site.xml文件中配置的tmp文件下,命名为name-->
<property>
<name>dfs.namenode.name.dir</name><value>/dfs/nameNodeData</value></property><!--这里是配置datanode的文件存放位置,若这里没有配置不会影响datanode数据存放
他会默认存放到core-site.xml文件中配置的tmp文件下,命名为data-->
<property><name>dfs.datanode.data.dir</name><value>/dfs/dataNodeData</value></property><!--这里是配置secondaryNamenode的文件存放位置,若这里没有配置不会影响datanode数据存放
他会默认存放到core-site.xml文件中配置的tmp文件下,命名好像是secondaryname之类的-->
<property>
<name>dfs.checkpoint.ir</name><value>/dfs/secondaryNamenodeData</value></property><property><name>dfs.replication</name><value>1</value></property></configuration>3.4 mapred-site.xml
这里的配置文件并不存在,只存在mapred-site.xml.template,需要重命名
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
<property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>3.5 yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>3.6 初始化hdfs
cd /hadoop/hadoop-2.2.0/bin
./hdfs namenode -format
信息中有:Storage directory /dfs/nameNodeData has been successfully formatted.
格式化成功。3.7 开启hdfs服务,开启yarn服务
cd /hadoop/hadoop-2.2.0/sbin
./start-dfs.sh
这里由于没有配置ssh免密码登陆,所以会多次输入密码
./start-yarn.ssh
这里由于没有配置ssh免密码登陆,所以会多次输入密码
验证:
localhost:50070 --[dfs]
localhost:8088 --[yarn]
能打开就算配置成功
第四步:配置eclipse与hadoop集成