Hadoop安装方法

来源:互联网 发布:sort二维数组排序 编辑:程序博客网 时间:2024/06/09 22:10

第一步

Hadoop 下载方式如jdk文档下载方式完全相同

第二步

需要进入到hadoop(使用命令cd hadoop, cd的作用相当于windows下双击hadoop文件夹进入)目录下创建 四个文件夹

mkdir input

mkdir tmp

mkdir -p dfs/data

Mkdir -p dfs/name

然后输入ls 看一看是不是创建好了


第三步

环境变量配置 

首先输入命令 vi /etc/profile

这时我们进入一个配置环境变量的文档

 

当前我们仅处于浏览模式(我们还不能编辑)我们先点击键盘上的字母 I 键,表示可以进入编写状态,然后我们通过上下左右键移动到最底下,这时的操作跟windows上的txt完全相同,我们输入以下环境变量

export HADOOP_DEV_HOME=/root/usr/hadoop/hadoop

export PATH=$PATH:$HADOOP_DEV_HOME/bin

export PATH=$PATH:$HADOOP_DEV_HOME/sbin

export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}

export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}

export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}

export YARN_HOME=${HADOOP_DEV_HOME}

export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

 

这是环境变量写好后我们需要保存,我们需要先按 esc 然后输入 (:wq)然后回车,w代表写入,q代表退出,这样之后我就配置好了hadoop环境变量,然后输入命令source /etc/profile让其生效,这时我们可以输入命令hadoop,检验是否安装成功

表示环境变量已经编辑成功

第四步

然后输入ifconfig命令 查看本机的ip

第一条红线就是本机的Ip 比如是192.168.112.1

下面我们进入hosts文件添加进去

输入vi /etc/hosts

按键 i(表示输入input),然后添加(下面只添加了Master一台阶机器,可以在添加一个slave1,形式例如192.168.112.2 slave)如下

192.168.112.1  master

192.168.112.2  slave

 

下面我们来修改主机名

输入命令: vi /etc/hostname

按键 i(表示输入input),然后输入master  esc键 输入 ( :wq) 按回车

 

退出后 在输入命令 hostname master

回车执行后 需要在输入命令reboot重启电脑后,主机名就改过来了

第五步

下面我们进入 hadoop下配置一些文档

我们进入解压后的Hadoop文件夹

cd  usr/hadoop/

然后输入ls会出现下图

然后我们进入cd etc/hadoop

 

我们开始编辑一些文件

要编辑的文件有core-site.xml

先输入 vi core-site.xml

进入后我们按键i表示输入,通过上下键 在<configuration>里添加一下内容

 <property>

#master 代表主机名

  <name>fs.defaultFS</name>

  <value>hdfs://master:9000</value>

 </property>

 <property>

  <name>io.file.buffer.size</name>

  <value>131072</value>

 </property>

 <property>

#这里是存放一些临时文件的

  <name>hadoop.tmp.dir</name>

  <value>file:/root/usr/hadoop/hadoop/tmp</value>

  <description>Abasefor other temporary directories.</description>

 </property>

 <property>

  <name>hadoop.proxyuser.spark.hosts</name>

  <value>*</value>

 </property>

#这个我我们暂时用不到

<property>

  <name>hadoop.proxyuser.spark.groups</name>

  <value>*</value>

 </property>

然后编辑  hdfs-site.xml

先输入  vi hdfs-site.xml

进入后我们按键i表示输入,通过上下键 在<configuration>里添加一下内容

 <property>

  <name>dfs.namenode.secondary.http-address</name>

  <value>master:9001</value>

 </property>

 

  <property>

   <name>dfs.namenode.name.dir</name>

   <value>file:/root/usr/hadoop/hadoop/dfs/name</value>

 </property>

 

 <property>

  <name>dfs.datanode.data.dir</name>

  <value>file:/root/usr/hadoop/hadoop/dfs/data</value>

  </property>

 

 <property>

  <name>dfs.replication</name>

  <value>3</value>

 </property>

 

 <property>

  <name>dfs.webhdfs.enabled</name>

  <value>true</value>

 </property>

然后编辑  yarn-site.xml

先输入  vi yarn-site.xml

进入后我们按键i表示输入,通过上下键 在<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>

  <property>

   <name>yarn.resourcemanager.address</name>

   <value>master:8032</value>

  </property>

  <property>

   <name>yarn.resourcemanager.scheduler.address</name>

   <value>master:8030</value>

  </property>

  <property>

   <name>yarn.resourcemanager.resource-tracker.address</name>

   <value>master:8035</value>

  </property>

  <property>

   <name>yarn.resourcemanager.admin.address</name>

   <value>master:8033</value>

  </property>

  <property>

   <name>yarn.resourcemanager.webapp.address</name>

   <value>master:8088</value>

  </property>

然后编辑  mapred-site.xml.template

先输入   vi mapred-site.xml.template  

进入后我们按键i表示输入,通过上下键 在<configuration>里添加一下内容

 <property>

   <name>mapreduce.framework.name</name>

   <value>yarn</value>

 </property>

 <property>

  <name>mapreduce.jobhistory.address</name>

  <value>master:10020</value>

 </property>

 <property>

  <name>mapreduce.jobhistory.webapp.address</name>

  <value>master:19888</value>

 </property>

然后编辑  yarn-env.sh

先输入   vi yarn-env.sh   

进入后我们按键i表示输入,通过上下键 修改一项内容

Java_home添加进去如下图所示

找到

#some Java parameters

*export JAVA_HOME=${JAVA_HOME}

去掉*号,然后修改成

# some Java parameters

export JAVA_HOME=/root/usr/java/jdk1.8.0_101

如下图所示

esc 输入(:wq)按回车退出

然后编辑  hadoop-env.sh

先输入    vi hadoop-env.sh  

进入后我们按键i表示输入,通过上下键 修改一项内容

Java_home添加进去如下图所示

找到

# The java implementation to use.

*export JAVA_HOME=${JAVA_HOME}

去掉*号,然后修改成

# The java implementation to use.

export JAVA_HOME=/root/usr/java/jdk1.8.0_101

如下图所示

esc 输入(:wq)按回车退出

 

然后编辑  slaves

先输入    vi slaves  

进入后我们按键i表示输入,通过上下键 修改一项内容

输入

master

slave

esc 输入(:wq)按回车退出

 

注意:jps一下看看是否存在namenode如果不存在进行差错,是否需要/root/usr/hadoop/hadoop:p$ bin/hadoop namenode -format

 

 

现在我们已经修改了七个程序

~/hadoop/etc/hadoop/hadoop-env.sh
~/hadoop/etc/hadoop/yarn-env.sh
~/hadoop/etc/hadoop/slaves
~/hadoop/etc/hadoop/core-site.xml
~/hadoop/etc/hadoop/hdfs-site.xml
~/hadoop/etc/hadoop/mapred-site.xml
~/hadoop/etc/hadoop/yarn-site.xml

 

大家可以自己对照一下

好了 我们现在可以进行一下ssh配置

进行这一步的目的在与虚拟机互相通信

如果不进行这一步也是可以运行hadoop程序的

 

 

第六步

SSH配置(我这里配置了两台机器一台为master,一台为slave)

首先我们输入 apt-get install ssh

这时可以下载ssh

如果出现YES or NO的选项就yes

下载完毕后我们输入 cd ~/.ssh/ 回车

然后输入  ssh-keygen -t rsa 回车 回车 回车 回车(好像是回车四次)

最终生成(id_rsa,id_rsa.pub两个文件)

cat id_rsa.pub >> authorized_keys

然后我们到主机名叫slave的机器上,将以上的第六步中的步骤请在第二台的主机(将主机名修改为slave如何修改主机名请参照上面)上也执行一遍

同时也需要将第四步中的内容也需要执行一遍

这时我们可以通过ping命令来检验一下两者能否互信

slave主机上输入 ping master 如下图

然后按 ctrl+c终止程序 说明了两者互通了,如果一直等待的话 也按Ctrl+c终止命令

重新配置一下

 

能够通信后在slave上面输入命令scp id_rsa.pub  root@master:~/.ssh/id_rsa.pub_sl

(scp 是复制的意思, id_rsa.pub是要拷贝的文件名,root@master(master可以写上面获取的ip)是要通信的机器,:~/.ssh/id_pub_sl是要将内容复制到这个文件里去)

此切换到机器master 合并authorized_keys;

输入命令 cat id_rsa.pub_sl >> authorized_keys 

authorized_keyscopyslave机器:

输入命令 scp authorized_keys  root@slave:~/.ssh/

现在讲两台机器 .ssh/ 文件夹权限改为700authorized_keys文件权限改为600or 644

在两台机器上都输入

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

好了 大功告成现在可以开始验证了

master上可以输入 ssh slave 如果进入到slave机器上说明ssh配置成功了

到此为止,hadoop已经配置成功,我们可以通过一个小程序来检验一下是否我们都配置成功了

我们进入到hadoop文件夹下的sbin文件夹

输入ls显示如下

然后我们启动Hadoop

输入命令 start-all.sh 

 

 

我们现在hadoop 文件夹下找到我们早已建好的input文件夹 输入命令cd input

我们在里面创建两个txt文件

输入命令

touch f1.txt

touch f2.txt

然后我们输入ls看一下是否创建成功

 

好了我们创建成功了

我们需要在里面写一点内容

输入命令 vi f1.txt

进入后我们按键i表示输入,通过上下键 修改一项内容

输入

Hadoop

Ssh

you

esc 输入(:wq)按回车退出

同理 我们也在f2.txt中输入一些词(可以随意输入)

f1f2文件copyhdfs /tmp/input目录

我们在我们进入hadoop文件夹

输入命令 hadoop fs  -put input/ /tmp 

(这里是相当于把电脑里的东西传到百度云上, -put表示放进hdfs(百度云),input/表示我们要放进该文件夹,/tmp表示我们我们放进百度云里的那个文件夹下)

输入命令 hadoop fs -ls /tmp/input/  

看一下我们是否把f1.txt,f2.txt放到hdfs(百度云)上去了

如下图

我们现在进入到hadoop文件夹下

执行命令

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /tmp/input /output

运行成功后我们可以登录到hdfs(百度云)上去查看执行结果

输入命令

hadoop fs -ls /

可以看到hdfs(百度云)上多了一个文件夹output

我们进入该文件夹

输入命令

hadoop fs -ls /output

显示如下

Output文件夹下有个part-r-00000就是我们需要的结果

输入命令

hadoop fs -cat /output/part-r-00000

(cat 表示显示文件内容)

显示如下

至此 我们hadoop部署完全成功 加油吧

 

0 0
原创粉丝点击