当前位置: 澳门新濠3559 > 操作系统 > 正文

查看文件与目录,配置好了虚拟机中的完全分布

时间:2019-11-16 22:36来源:操作系统
cd命令:切换目录 hadoop部署实践.jpg 配置所需软件: 安装虚拟机环境 下载VMware并安装、破解 在VMWare官网上http://www.vmware.com/,选择VMware workstation12 pro版本安装。 创建虚拟机 在Ubuntu的官

cd命令:切换目录

hadoop部署实践.jpg

配置所需软件:

  1. 安装虚拟机环境
    下载VMware并安装、破解
    在VMWare官网上http://www.vmware.com/ ,选择VMware workstation12 pro版本安装。

  2. 创建虚拟机
    在Ubuntu的官网https://www.ubuntu.com/上下载, ubuntu-14.04.4-desktop-amd64.iso,该版本为稳定的维护的版本。

  3. 安装VMWare Tools
    ①启动Ubuntu系统,进入到桌面
    ②单击VMWare的【虚拟机】菜单,选择【安装VMWare Tools】命令
    系统会自动挂载VMWare Tools,并自动打开
    ③解压tar.gz包
    将压缩包复制到桌面,打开terminal,执行解压命令
    tar -zxvf VMwareTools-10.0.0-2977863.tar.gz
    ④安装VMWare Tools
    切换到文件夹下,执行安装文件,重启后生效
    cd Desktop/vmware-tools-distrib/
    sudo ./vmware-install.pl

  4. 使用共享文件夹
    ①在物理机Windows系统中创建一个文件夹,用作共享文件夹
    ②在虚拟机关闭的情况下,打开虚拟机设置,在弹出的对话框中单击【选项】
    ③单击【共享文件夹】,在右侧选择【总是启用】选项,单击【添加】按钮
    ④在弹出的向导对话框中,进行如下操作,添加共享文件夹
    ⑤启动虚拟机系统,共享文件夹被放在【/mnt/hgfs/】目录下,即在【/mnt/hgfs/share】中就可以找到被共享的文件了

  5. 安装JDK
    ①下载jdk安装包,放入物理机的共享文件夹
    当前官网的最新版本jdk1.8.0_05
    ②解压安装jdk
    进入虚拟机,切换到共享文件夹下,输入命令进行安装
    cd /mnt/hgfs/share
    sudo tar zxvf jdk-8u5-linux-x64.gz -C /usr/local/
    ③配置hadoop用户环境变量
    sudo gedit ~/.bashrc
    打开后添加:
    export JAVA_HOME=/usr/local/jdk1.8.0_65
    export PATH=${JAVA_HOME}/bin:$PATH
    保存后退出
    ④配置默认jdk版本
    sudo update-alternatives --install /usr/local/jdk1.8.0_查看文件与目录,配置好了虚拟机中的完全分布式hadoop。65 /bin/java 300
    sudo update-alternatives --install /usr/local/jdk1.8.0_65 /bin/javac 300
    sudo update-alternatives --config java
    ⑤刷新配置
    source ~/.bashrc
    ⑥查看环境是否配置成功
    java -version

  6. 系统环境配置
    ①修改主机名:
    (1)临时修改:
    sudo hostname master
    (2)永久修改:
    sudo gedit /etc/hostname
    修改后重启生效
    ②设置固定IP
    sudo gedit /etc/network/interfaces
    在其中写入:
    auto eth0
    iface eth0 inet static
    address 192.168.111.128
    netmask 255.255.255.0
    gateway 192.168.111.1
    ③修改主机名和 IP 的映射关系
    sudo gedit /etc/hosts
    打开后修改为:
    127.0.0.1 localhost
    127.0.0.1 master
    192.168.111.200 master
    ④关闭防火墙
    sudo ufw disable
    之后,系统提示“防火墙在系统启动时自动禁用”。
    ⑤重启虚拟机
    sudo reboot now

  7. 安装SSH并设置无密码登录
    ①安装OpenSSH
    sudo apt-get install ssh openssh-server
    中途按y继续
    ②确认sshserver是否启动
    sudo ps -e | grep sshd
    ③生成RSA密钥(包括私钥和公钥)
    ssh-keygen -t rsa
    回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的
    ④将新生成的公钥复制到已授权密钥列表
    进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的
    cd ~/.ssh
    cat id_rsa.pub >> authorized_keys
    ⑤将生成的authorized_keys文件拷贝到slave1主机相同的文件夹下
    scp authorized_keys master:~/.ssh/

  8. 安装Hadoop
    ①解压安装
    在hadoop的官网上下载:http://hadoop.apache.org/下载hadoop-2.7.2.tar.gz
    将压缩包放在物理机的共享文件夹中,打开虚拟机,进入共享文件夹/mnt/hgfs/
    输入命令解压安装包到/usr/local/下
    sudo tar -zxvf hadoop-2.7.2.tar.gz -C /usr/local/
    ②修改环境变量
    sudo gedit /usr/local/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
    打开后
    替换exportJAVA_HOME=${JAVA_HOME}为如下:
    export JAVA_HOME=/usr/local/jdk1.8.0_65
    同样,配置yarn-env.sh(YARN资源管理器,管理的是HADOOP集群中的主从节点资源,YARN不需要安装,它是HADOOP自带的,通过配置起作用)
    在里面加入:
    export JAVA_HOME=/usr/local/jdk1.8.0_65
    ③为运行Hadoop创建目录
    Hadoop运行在Linux操作系统之上,它直接使用Linux的本地文件系统来存储HDFS的相关信息。因此,必须为Hadoop集群的每个节点创建相同目录结构,操作命令如下。
    mkdir ~/dfs #在Linux文件系统中构建HDFS的统一入口位置
    mkdir ~/dfs/tmp #创建tmp目录,用于保存HDFS工作时的临时信息
    mkdir ~/dfs/data #创建data目录,存储HDFS的用户文件的数据块
    mkdir ~/dfs/name #创建name目录,存储HDFS的元数据信息

  9. 配置伪分布式模式
    ①打开core-site.xml文件
    sudo gedit /usr/local/hadoop-2.7.2/etc/hadoop/core-site.xml
    然后在“<configuration>”和“</configuration>”标签之间输入以下内容并保存。

(1)切换到目录 /usr/local

文/胡晨川
我是Linux外行,hadoop外行,java更外行,Scala听也没听过,在我脑海中,Spark一直只是我的英文名。但是,作为一名数据分析师,我怎么可以完全不了解大数据的应用呢?于是,完全是外行的我,不仅打算开始学习spark,还要将hive、pig、Hbase等都尝一尝。
第一步,从hadoop开始!经过几天的尝试,配置好了虚拟机中的完全分布式hadoop,写成以下冗长的笔记。

①、VirtualBox-5.2.0-118431-Win.exe

②、Ubuntu14.04.5

③、jdk-8u151-linux-x64.tar.gz

④、hadoop-2.7.3.tar.gz


cd /usr/local

首先,是在自己的电脑上安装3个Linux系统的虚拟机

我是Mac,装了vmware fusion。在另一台pc机上,装了vmware workstation。
Linux我选择了ubuntu14。具体怎么把Linux装起来的不多说了,傻瓜式操作。

(一)、下载并安装VirtualBox

        默认安装


    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    <description>HDFS的URI,master为主节点的主机名</description>
</property>
<property>
    <name>io.file.buffer.size </name>
    <value>130172</value>
    <description>文件缓存大小</description>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/dfs/tmp</value>
    <description>namenode工作时的临时文件夹</description>
</property>```
②打开hdfs-site.xml文件
sudo  gedit  /usr/local/hadoop-2.7.2/etc/hadoop/hdfs-site.xml
然后在“<configuration>”和“</configuration>”标签之间输入以下内容并保存。
```<property>
    <name>dfs.namenode.name.dir </name>
    <value>file:/home/hadoop/dfs/name</value>
    <description>NameNode上HDFS名字空间元数据的存储位置</description> 
</property>
<property>
    <name>dfs.datanode.data.dir </name>
    <value> file:/home/hadoop/dfs/data </value>
    <description>DataNode数据块的物理存储位置</description>
</property>
<property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>副本个数,默认是3,应小于DataNode节点数量</description>
</property>
<property>
    <name>dfs.http.address</name>
    <value>master:50070</value>
    <description>HDFS Web UI的入口URL</description>
</property>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:50090</value>
    <description>可查看SecondaryNameNode守护进程的状态信息</description>
</property>```
③打开yarn-site.xml文件
sudo  gedit  /usr/local/hadoop-2.7.2/etc/hadoop/yarn-site.xml
然后在“<configuration>”和“</configuration>”标签之间输入以下内容并保存。
```<property>
  <name>yarn.resourcemanager.address</name>
  <value>master:18040</value>
</property>
<property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>master:18041</value>
</property>
<property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value>master:18042</value>
</property>
<property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>master:18043</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>master:8088</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>```
④打开mapred -site.xml文件
sudo  cp  mapred-site.xml.template  mapred-site.xml
sudo  gedit  mapred-site.xml
然后在“<configuration>”和“</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>```

10. HDFS格式化
    初次运行的初始化
进入hadoop的根目录后输入以下命令
./bin/hdfs  namenode  -format

11. 启动hadoop
    cd  /usr/local/hadoop-2.7.2
sbin/start-dfs.sh
sbin/start-yarn.sh
    或
sbin/start-all.sh
在master机上输入jps

12. 测试
可以在web  UI中做测试:
在浏览其中输入:[http://master:8088](http://master:8088)可以看到hadoop的信息。

(2)去到目前的上层目录

配置Linux

这部分分为三个部分:一是获得Linux的root权限;二是安装java;三是设置ssh设置。由于我是Linux文盲,所以将一些命令标注会择机写出来,便于我以后记忆。
我配置的三台Linux机子分别命名为:master、slave1、slave2。未来hadoop中,master就是主节点,两台slave就是从节点。

(二)、安装Ubuntu14.04.5

然后“继续”,“下一步”

信息填完后点击继续安装完成后会重新进入系统。


cd ..

获取Linux中的root权限

在ubuntu中打开命令终端窗口:control+alt+T
自动补全命令:tab
看帮助内容:--help

先安装vim:sudo apt-get install vim
然后输入:sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(vim需安装)
在弹出的编辑框里输入:greeter-show-manual-login=true 保存关闭。
为了给root设置密码,在终端中输入:sudo passwd root。
关机重启在多出的登录框里输入root 和设置的密码!
在刚修改完root权限自动登录后,发现开机出现以下提示:
Error found when loading /root/.profile
stdin:is not a tty
…………
解决方法:在终端中用命令gedit /root/.profile,打开文件后找到“mesg n”,
将其更改为“tty -s && mesg n”。

sudo:超级用户权限命令=root权限
apt-get install:安装软件
vim:vim是一个编辑器和gedit功能一样

(三)、创建用户hadoop

$ sudo  adduser  hadoop

并按照提示输入hadoop用户的密码,例如密码设定为 hadoop。注意输入密码的时候是不显示的。并将hadoop用户添加进sudo用户组

$ sudo  usermod  -G  sudo  hadoop

输入

$ cd ../     #进入到home目录

$ cd ../    #进入到根目录

输入

$ sudo gedit ~/etc/sudoers    #打开sudoers配置文件

root     ALL = (ALL:ALL)    ALL下面添加如下代码:

hadoop    ALL = (ALL:ALL)    ALL

保存并退出。

注销切换成hadoop用户


(3)回到自己的主文件夹

安装java

创建安装java的文件夹:mkdir /usr/lib/java
然后把下载好的java安装包放到这个目录里
操作区域定位到java文件夹:cd /usr/lib/java
解压安装包:tar -xvf jdk-8u73-linux-x64.gz
修改环境变量:vim ~/.bashrc
在bashrc文件中添加内容:
export JAVA_HOME=/usr/lib/java/jdk1.8.0_73
export JRE_HOME=${JAVA_HOME}/jre
export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
执行生效命令:source ~/.bashrc
查看java版本:java -version

mkdir:创建文件夹命令
cd:工作目录定位命令,经常与文件查看命令ls一起用
tar -xvf:解压缩命令

(四)、安装JDK

cd ~

SSH设置

安装ssh:apt-get install ssh
安装rsync: apt-get install rsync
创建ssh-key: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
将dsa.pub文件当中的内容追加到公钥中:cat ~/.ssh/id_dsa.pub >> /.ssh/authorized_keys
authorized_keys得放在.ssh文件夹当中,并将id_dsa.pub里面的内容复制给authorized_keys
启动ssh服务:ssh start
验证服务是否正常启动:ps -e |grep ssh
在slave机器下也要创建ssh-key: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
该命令执行后,会在root文件夹下出现.ssh文件夹,里面有key
cat ~/.ssh/id_dsa.pub >> authorized_keys 这行代码至关重要,当输入ssh localhost 不需要密码时,说明免密码登录设置完成。

    ①下载JDK

              jdk-8u151-linux-x64.tar.gz

ls命令:查看文件与目录

完成master与slave之间的通信

首先,要固定好master和slave的IP地址,千万不要选择动态匹配,你会奔溃的。
接着,修改集群中的host配置文件
打开命令:到文件夹中手动打开host文件或者输入:
vim /etc/hosts
添加:
192.168.236.135 master
192.168.236.134 slave1
192.168.236.130 slave2
关闭ubuntu的防火墙,使得ssh通讯能够进行:ufw allow ssh
要使得master和slave之间实现免密码通信,还要把master机器中的id_dsa.pub 文件复制到slave机器的.ssh文件夹中,并命名为authorized_keys。我把slave的id_dsa.pub也互相加到了各自的authorized_keys当中。这样,在任何机器终端输入 ssh 机器名称,就能进入那台机器进行操作,比如:ssh slave1
scp ~/.ssh/id_dsa.pub slave1@192.168.236.134:~/.ssh/authorized_keys
scp ~/.ssh/id_dsa.pub slave2@192.168.236.130:~/.ssh/authorized_keys

查看隐藏的文件,即以点开头的文件或文件夹:control+h
scp:通过ssh进行跨机器间的复制命令
cp:本地文件复制
如何结束ping命令?control+c
查看ip连接的属性:ifconfig或者nm-tool

    ②安装解压

将下载下来的 .tar.gz 文件解压。使用如下命令解压:

$ sudo  tar  zxvf  ./jdk-8u151-linux-x64.tar.gz

为了方便管理,将解压后的文件移至另一个目录下

$ sudo  mkdir  /usr/lib/jvm

$ sudo  mv  jdk1.8.0_151  /usr/lib/jvm

(4)查看目录/usr下所有的文件

安装Hadoop

提醒各位,不要去下载最新的hadoop-2.7.2等版本的进行安装,因为最新版本的中文参考文献不多,而且hadoop-2.x以后的版本和hadoop-1.x有很大不同。我开始安装了2.7.2版本,但是手头的资料都是机遇hadoop-1.2.1的,所以对于我这个菜鸟来说,配置单机版和伪分布式还勉强可以,但是完全分布式怎么都不成功,最后删了重新配置了1.2.1版本的。
cd usr
mkdir hadoop #在usr文件夹下创建Hadoop文件夹
tar xzf hadoop-1.2.1.tar.gz #解压缩Hadoop安装文件
cd /usr/hadoop/hadoop-1.2.1/conf
vim hadoop-env.sh #将java的路径添加到Hadoop的配置文件当中
文件中添加:export JAVA_HOME=/usr/lib/java/jdk1.8.0_73
source hadoop-env.sh #使得文件修改生效
vim ~/.bashrc #设置用户环境参数,使得Hadoop的命令和java命令能够在根目录下使用
在文件中添加:
export JAVA_HOME=/usr/lib/java/jdk1.8.0_73
export JRE_HOME=${JAVA_HOME}/jre
export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:/usr/hadoop/hadoop-1.2.1/bin:$PATH
source ~/.bashrc #使修改生效
hadoop version #查看hadoop的版本
若能正确显示版本,则恭喜单机安装成功了!

③设置环境变量

编辑用户主目录下的.bashrc文件

$ vim  ~/.bashrc

在该文件的末尾追加以下几行代码:

export  JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151

export  CLASSPATH=${JAVA_HOME}/lib

export  PATH=${JAVA_HOME}/bin:$PATH

为了让更改立即生效,执行如下命令:

$ source  ~/.bashrc

cd /usr

单机模式运行wordcount例子

cp LICENSE.txt input #把license.txt复制到input文件夹当中
cd .. #回到上一级目录
hadoop jar hadoop-examples-1.2.1.jar wordcount input output #运行wordcount例子,结果放到output文件夹当中
cat output/* #结果呈现
单机模式的wordcount成功运行,第一个里程碑达成!~

④验证JDK

$ java  -version


ls -al

伪分布式Hadoop安装

我们更进一步,来伪分布式架构。
现在hadoop-1.2.1文件夹下创建一些文件夹:
root@master:/usr/hadoop/hadoop-1.2.1# mkdir tmp
root@master:/usr/hadoop/hadoop-1.2.1# mkdir hdfs
root@master:/usr/hadoop/hadoop-1.2.1# mkdir hdfs/data
root@master:/usr/hadoop/hadoop-1.2.1# mkdir hdfs/name
root@master:/usr/hadoop/hadoop-1.2.1# ls

对于伪分布式和完全分布式,都需要修改以下配置文件
core-site.xml 主要是配置hdfs的地址和端口
hdfs-site.xml 主要配置replication,理解为数据的备份
mapred-site.xml 修改Hadoop的mapreduce的配置文件,主要是配置jobtracker的地址和端口

cd conf #定位到conf文件夹下
vim core-site.xml #进入编辑
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hadoop-1.2.1/tmp</value>
</property>
</configuration>

vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/hadoop-1.2.1/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/hadoop/hadoop-1.2.1/hdfs/data</value>
</property>
</configuration>

vim mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
通过以上配置完成了最简单的伪分布式配置。
接下来做Hadoop的namenode格式化:
root@master:/usr/hadoop/hadoop-1.2.1/conf# cd ~
root@master:~# hadoop namenode -format

(五)、安装Hadoop2.7.3

mkdir命令:新建新目录

启动Hadoop

start-all.sh
使用java自带的命令查询出所有的守护进程
jps
接下来使用Hadoop中的监控集群的web 页面查看运行情况:
http://localhost:50030/jobtracker.jsp
http://localhost:50060/tasktracker.jsp
http://localhost:50070/dfshealth.jsp

①下载hadoop2.7.3

hadoop-2.7.3.tar.gz

(5)进入/tmp目录,创建一个名为a的目录,并查看有多少目录存在

伪分布式平台下的wordcount例子

在dfs中创建input文件夹
root@master:~# hadoop dfs -mkdir input
在http://localhost:50070/dfshealth.jsp中点击browse the filesystem可以查看文件夹
把文件复制到input中
root@master:~# hadoop dfs -copyFromLocal /usr/hadoop/hadoop-1.2.1/LICENSE.txt input
root@master:~# cd /usr/hadoop/hadoop-1.2.1
root@master:/usr/hadoop/hadoop-1.2.1# ls
运行word count
root@master:/usr/hadoop/hadoop-1.2.1# hadoop jar hadoop-examples-1.2.1.jar wordcount input output
查看下运行结果
hadoop dfs -cat output/*
查看Hadoop dfs中的文件列表
hadoop dfs -ls
hadoop有自己的一套命令规则,开头为hadoop dfs xx,详情:http://my.oschina.net/kevin701/blog/228684
关闭hadoop服务
stop-all.ssh
好!第二个里程碑达成了!

②安装hadoop-2.7.3

进入到下载目录

将下载下来的 .tar.gz 文件解压。使用如下命令解压:

$ sudo  tar  zxvf  hadoop-2.7.3.tar.gz

为了方便管理,将解压后的文件移至另一个目录下

$ sudo  mv  hadoop-2.7.3  /usr/local/hadoop

为安装目录添加权限

$ sudo  chmod  777  /usr/local/hadoop

cd /tmp

完全分布式hadoop搭建

将hadoop复制到两台slave机器的/usr/hadoop/hadoop-1.2.1文件夹当中。先在master当中压缩hadoop-1.2.1文件夹下的内容,打包成tar.gz文件,然后复制过去。
压缩包
root@master:/usr/hadoop# tar zcvf hadoop.tar.gz hadoop-1.2.1
复制hadoop.tar.gz到slave中
scp -r hadoop.tar.gz root@slave1:/usr/
解压缩要先进入slave
ssh slave1
cd /usr
mkdir hadoop
cp hadoop.tar.gz hadoop #将压缩包放到hadoop文件夹当中,最好是先在slave当中建好hadoop文件夹,然后把hadoop.tar.gz复制过去。
tar xzf hadoop.tar.gz
slave1 和slave2的操作方式相同。

都复制过去后,要在slave当中设置环境变量,设置方式与之前相同。
然后启动hadoop测试。
查看localhost:50030/jobtracker.jsp测试成功后,开始配置完全分布式系统。

修改master的core.site.xml配置文件
root@master:/usr/hadoop/hadoop-1.2.1/conf# ls
vim core-site.xml
将里面的localhost替换为master,且在两台slave当中也做同样的修改。

其次修改master和slave当中的mapred-site.xml文件,把域名localhost修改为master

最后修改master、slave1、slave2上的hdfs-site.xml文件,将dfs.replication的value值改为3,这样我们的数据就会有3个副本。

修改两台机器中hadoop配置文件的masters和slaves文件
root@master:/usr/hadoop/hadoop-1.2.1/conf# vim masters
将里面的localhost改为master
root@master:/usr/hadoop/hadoop-1.2.1/conf# vim slaves
将里面改为:
master
slave1
slave2
这样,master同时作为了数据节点和主节点。
在两台slave上也要做相应的修改。

③配置hadoop2.7.3

编辑用户主目录下的.bashrc文件

$ gedit  ~/.bashrc

$ vim  ~/.bashrc

在该文件的末尾追加以下几行代码:

#HADOOP START

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151

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_INSTALL/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"

#HADOOP END

保存退出后,激活新加的环境变量

$ source   ~/.bashrc

mkdir a

测试hadoop分布式集群环境

首先需要清除在hadoop-1.2.1文件夹中的tmp文件夹及其子目录下的内容清空,还要清除根目录下tmp文件夹中hadoop相关的内容。最后要把自定义的hdfs文件夹中的data和name文件夹中的内容清空。
root@master:/usr/hadoop/hadoop-1.2.1# rm -rf tmp/*
首先要清理在根目录下的tmp文件夹中,以hadoop相关的所有文件都删除掉
root@master:rm /tmp/hadoop*
然后需要清空hadoop-1.2.1文件夹中的tmp文件夹和hdfs文件夹下的内容。但不能盲目的将所有子目录都删除掉。我采用了手动进入每个文件夹,将里面的内容删除掉。
之前用rm命令删除了文件夹下的所有内容,导致启动时没有namenode任务。而且在web观察上,live node只有1,理论上应该有3。但并不知道具体原因。后来回复了文件后,手动进入各个文件夹清楚里面的内容。
在slave当中也要做相同的清空操作。
在master节点格式化集群的文件系统
hadoop namenode -format
格式化后启动
start-all.sh
终于成功启动。输入jps查看进程:
master上,显示:
root@master:~# jps
3200 TaskTracker
2645 NameNode
2793 DataNode
3050 JobTracker
2957 SecondaryNameNode
3455 Jps
在slave上显示:
root@slave1:~# jps
2658 DataNode
2786 TaskTracker
2918 Jps
到此为止,完全分布式的hadoop就配置好了。接下去就要开始安装spark啦!另外,有了hadoop的基础,hive、pig、hbase等hadoop架构下的工具都可以开始安装部署。大数据之路由此打开!~
最后,关机睡觉
shutdown -h now

④验证安装是否成功

$ cd  /usr/local/hadoop

$ mkdir  ./input

$ cp ./etc/hadoop/*.xml ./input    #将配置文件作为输入文件

$   ./bin/hadoop  jar  ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep  ./input  ./output  'dfs[a-z.]+'

$ cat  ./output/*    #查看运行结果

出现以下结果即可。

ls -al

(六)、安装SSH、配置SSH无密码登陆

$ sudo apt-get install openssh-server

$ ssh localhost

输入yes

$ exit        #退出刚才的 ssh localhost

$ cd ~/.ssh/        #若没有该目录,请先执行一次ssh localhost

$ ssh-keygen -t rsa       #会有提示,都按回车就可以

$ cat ./id_rsa.pub >> ./authorized_keys    #加入授权

然后输入

$ ssh localhost

结果如下:


(6)创建目录a1/a2/a3/a4

(七)、安装hadoop-伪分布式配置

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

mkdir -p a1/a2/a3/a4

①修改配置文件

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xmlhdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit ./etc/hadoop/core-site.xml),将当中的

<configuration>

</configuration>

修改为如下配置:

<configuration>

<property>

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

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

< description> Abase for other temporary directories.< /description>

</property>

< property>

<name>fs.defaultFS</name>

<value>hdfs://localhost:9000</value>

</ property>

</ configuration>

同样的,修改配置文件 hdfs-site.xml

<configuration>

    <property>

        <name>dfs.replication</name>

                <value>1</value>

         </property>

         <property>

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

              <value>file:/usr/local/hadoop/tmp/dfs/name</value>

</property>

<property>

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

<value>file:/usr/local/hadoop/tmp/dfs/data</value>

</property>

</configuration>

 

执行 NameNode 的格式化:

./bin/hdfs  namenode  –format

成功的话,会看到 “successfully formatted”“Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错

rmdir命令:删除空的目录

③开启 NameNode 和 DataNode 守护进程。

./sbin/start-dfs.sh

关闭守护进程

./sbin/stop-dfs.sh

若出现以下SSH提示,输入yes即可。

(7)将上例创建的目录a(/tmp下面)删除

④通过jps查看启动的Hadoop进程

rmdir a

⑤运行Hadoop伪分布式实例

./bin/hdfs  dfs  -mkdir -p  /usr/hadoop

./bin/hdfs  dfs  -mkdir  input

./bin/hdfs  dfs  -put  ./etc/hadoop/*  .xml  input

./bin/hdfs  dfs  -ls  input

./bin/hadoop  jar  ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar  grep  ./input  ./output  'dfs[a-z.]+'

./bin/hdfs  dfs  -cat  output/*

8)删除目录a1/a2/a3/a4,查看有多少目录存在

rmdir -p a1/a2/a3/a4

⑥成功启动后,可以访问 Web 界面

查看 NameNodeDatanode 信息,还可以在线查看 HDFS 中的文件。


ls -al

(八)、启动YARN

①首先修改配置文件 mapred-site.xml,这边需要先进行重命名:

②编辑mapred-site.xml 文件,

gedit  ./etc/hadoop/mapred-site.xml

<configuration>**

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>yarn</value>

    </property>

**</configuration>**

修改配置文件 yarn-site.xml

<configuration>

    <property>

       <name>yarn.nodemanager.aux-services</name>

       <value>mapreduce shuffle</value>

    </property>

</configuration>

④启动 YARN 了(需要先执行过 ./sbin/start-dfs.sh)

./sbin/start-dfs.sh    #启动YARN

./sbin/mr-jobhistory-daemon.sh  start  historyserver    #开启历史服务器,才能在Web中查看任务运行情况

关闭YARN

./sbin/stop-yarn.sh

启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况:,如下图所示

不启动 YARN 需重命名 mapred-site.xml

如果不想启动 YARN,务必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用时改回来就行。

否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template

 补充:sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

⑤开启 NameNode 和 DataNode 守护进程。

./sbin/start-dfs.sh

到此hadoop大数据已配置完成。

cp命令:复制文件或目录

(9)将主文件夹下的.bashrc复制到/usr下,命名为bashrc1

sudo cp ~/.bashrc /usr/bashrc1

(10)在/tmp下新建目录test,再复制这个目录内容到/usr

cd /tmp

mkdir test

sudo cp -r /tmp/test /usr

 

mv命令:移动文件与目录,或更名

(11)将上例文件bashrc1移动到目录/usr/test

sudo mv /usr/bashrc1 /usr/test

(12)将上例test目录重命名为test2

sudo mv /usr/test /usr/test2

 

rm命令:移除文件或目录

(13)将上例复制的bashrc1文件删除

sudo rm /usr/test2/bashrc1

(14)将上例的test2目录删除

sudo rm -r /usr/test2

 

cat命令:查看文件内容

(15)查看主文件夹下的.bashrc文件内容

cat ~/.bashrc

 

tac命令:反向列示

(16)反向查看主文件夹下.bashrc文件内容

tac ~/.bashrc

 

more命令:一页一页翻动查看

(17)翻页查看主文件夹下.bashrc文件内容

more ~/.bashrc

 

head命令:取出前面几行

(18)查看主文件夹下.bashrc文件内容前20行

head -n 20 ~/.bashrc

(19)查看主文件夹下.bashrc文件内容,后面50行不显示,只显示前面几行

head -n -50 ~/.bashrc

 

tail命令:取出后面几行

 

(20)查看主文件夹下.bashrc文件内容最后20行

 

tail -n 20 ~/.bashrc

 

(21) 查看主文件夹下.bashrc文件内容,只列出50行以后的数据

 

tail -n +50 ~/.bashrc

 

 

 

touch命令:修改文件时间或创建新文件

 

(22)在/tmp下创建一个空文件hello并查看时间

 

cd /tmp

 

touch hello

 

ls -l hello

 

(23)修改hello文件,将日期调整为5天前

 

touch -d “5 days ago” hello

 

 

 

chown命令:修改文件所有者权限

 

(24)将hello文件所有者改为root帐号,并查看属性

 

sudo chown root /tmp/hello

 

ls -l /tmp/hello

 

 

 

find命令:文件查找

 

(25)找出主文件夹下文件名为.bashrc的文件

 

find ~ -name .bashrc

 

 

 

tar命令:压缩命令

 

(26)在/目录下新建文件夹test,然后在/目录下打包成test.tar.gz

 

sudo mkdir /test

 

sudo tar -zcv -f /test.tar.gz test

 

(27)解压缩到/tmp目录

 

sudo tar -zxv -f /test.tar.gz -C /tmp

 

 

 

grep命令:查找字符串

 

(28)从~/.bashrc文件中查找字符串'examples'

 

grep -n 'examples' ~/.bashrc

 

 

 

(29)配置Java环境变量,在~/.bashrc中设置

 

gedit ~/.bashrc

 

将语句    export JAVA_澳门新濠3559,HOME=JDK安装路径   加入文件第一行并保存

 

source ~/.bashrc

 

 

 

(30)查看JAVA_HOME变量的值

 

echo $JAVA_HOME

 

 

 

HDFS相关命令

 

(31)启动hadoop,在HDFS中创建用户目录(现在已经在hadoop目录/usr/local/hadoop)

 

./bin/hdfs dfs -mkdir -p /user/hadoop

(32)接着在此用户目录下创建text文件夹,并查看文件列表

./bin/hdfs dfs -mkdir test

./bin/hdfs dfs -ls .

(33)将~/.bashrc文件上传到HDFS的test文件夹,并查看test

./bin/hdfs dfs -put ~/.bashrc test

./bin/hdfs dfs -ls test

(34)将HDFS文件夹test拷到本机

./bin/hdfs dfs -get test ./test

 

编辑:操作系统 本文来源:查看文件与目录,配置好了虚拟机中的完全分布

关键词:

  • 上一篇:没有了
  • 下一篇:没有了