0


大数据技术--实验01-Hadoop的安装与使用【实测可行】

使用下面表中的软件版本进行配置:

准备好后,按照下面的步骤进行配置。

  1. 配置VMware网络

在VMWare主界面,点击“编辑”>“虚拟网络编辑”菜单进入虚拟网卡参数设置界面。选择VMnet8条目,点击“NAT设置”按钮后可以看到我们的VMWare Workstation为NAT连接的虚拟机设定的默认网关,此处为192.168.222.2,以及子网掩码,此处为255.255.255.0。

2. 准备机器

通过VMware新建一台CentOS 6.4虚拟机,操作系统安装完成后。

熟悉常用的Linux操作

  • cd命令:切换目录(1)切换到目录“/usr/local”

$ cd /usr/local

(2)切换到当前目录的上一级目录

$ cd ..

(3)切换到当前登录Linux系统的用户的自己的主文件夹

$ cd ~

  • ls命令:查看文件与目录

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

$ cd /usr

$ ls -al

  • mkdir命令:新建目录

(5)进入“/tmp”目录,创建一个名为“a”的目录,并查看“/tmp”目录下已经存在哪些目录

$ cd /tmp

$ mkdir a

$ ls -al

(6)进入“/tmp”目录,创建目录“a1/a2/a3/a4”

$ cd /tmp

$ mkdir -p a1/a2/a3/a4

  • rmdir命令:删除空的目录

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

$ cd /tmp

$ rmdir a

(8)删除上面创建的目录“a1/a2/a3/a4”(在“/tmp”目录下面),然后查看“/tmp”目录下面存在哪些目录

$ cd /tmp

$ rmdir -p a1/a2/a3/a4

$ ls -al

  • 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)将“/usr”目录下的文件bashrc1移动到“/usr/test”目录下

$ sudo mv /usr/bashrc1 /usr/test

(12)将“/usr”目录下的test目录重命名为test2

$ sudo mv /usr/test /usr/test2

  • rm命令:移除文件或目录
  • (13)将“/usr/test2”目录下的bashrc1文件删除

$ sudo rm /usr/test2/bashrc1

(14)将“/usr”目录下的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)把上面的test.tar.gz压缩包,解压缩到“/tmp”目录

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

  • grep命令:查找字符串

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

$ grep -n 'examples' ~/.bashrc

  • 配置环境变量

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

首先,使用vim编辑器打开文件“~/.bashrc”,命令如下:

$ vim ~/.bashrc

然后,在该文件的最上面加入一行如下形式的语句:

export JAVA_HOME=JDK安装路径

     最后,执行如下命令使得环境变量配置生效:

$ source ~/.bashrc

(30)查看JAVA_HOME变量的值

$ echo $JAVA_HOME

使用root用户登录,添加一个新用户hadoop。设置hadoop用户的密码并授予hadoop用户sudo权限。

[root@localhost ~]$ useradd hadoop

[root@localhost ~]$ passwd hadoop

[root@localhost ~]$ chmod u+w /etc/sudoers

[root@localhost ~]$ vim /etc/sudoers

在root ALL=(ALL) ALL 下 添加hadoop ALL=(ALL) ALL

[root@localhost ~]$ chmod u-w /etc/sudoers

3. 设置静态IP

VMware默认使用动态的IP,但是由于Hadoop集群是使用机器名进行定位的,在/etc/hosts中配置了机器名和IP的映射,如果IP不断变化,则需要不断修改配置文件,所以这里需要把IP设置为静态,方便后面的操作。

1)修改/etc/sysconfig/network-scripts/ifcfg-eth0

[root@localhost ~]$ vim /etc/sysconfig/network-scripts/ifcfg-eth0

修改内容如下:

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.222.131

NETMASK=255.255.255.0

GATEWAY=192.168.222.2

HWADDR=00:0C:29:C3:34:BF # 这个需要根据自己的机器进行设置

ONBOOT=yes

TYPE=Ethernet

IPV6INIT=no

DNS1=192.168.222.2

2)修改/etc/sysconfig/network

[root@localhost ~]$ vim /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=localhost.localdomain

GATEWAY=192.168.222.2

3)修改DNS信息

[root@localhost ~]$ vim/etc/resolv.conf

nameserver 192.168.222.2

search bogon

#使配置信息立即生效

[root@localhost ~]$ source /etc/resolv.conf

#重启网络服务

[root@localhost ~]$ service network restart

4)关闭防火墙并修改其启动策略为不开机启动

[root@localhost ~]$ service iptables stop

#防火墙不开机启动

[root@localhost ~]$ chkconfig iptables off

4. 安装JDK

1)使用yum search jdk在线查找jdk列表,任意选择一个版本进行安装,这里安装“java-1.7.0-openjdk-devel.x86_64”。

[root@localhost ~]$ yum search jdk

[root@localhost ~]$ yum install java-1.7.0-openjdk-devel.x86_64 –y

【注:可以下载java软件解压缩即可】

2)配置Java环境变量。

查询JDK路径

[root@localhost ~]$ whereis java

[root@localhost ~]$ ll /usr/bin/java

[root@localhost ~]$ ll /etc/alternatives/java #这是可以看到JDK路径了

#修改配置文件

[root@localhost ~]$ vim /etc/profile

#在末尾追加

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64

export MAVEN_HOME=/home/hadoop/local/opt/apache-maven-3.3.1

export JRE_HOME=$JAVA_HOME/jre

export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#保存配置后使用source命令是配置立即生效

[root@localhost ~]$ source /etc/profile

3)使用java –version命令查看环境变量配置是否成功。

[root@localhost ~]$ java -version

OpenJDK Runtime Environment (rhel-2.5.4.0.el6_6-x86_64 u75-b13)

OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

至此,我们已经完成JDK的安装和配置,接下来使用VMWare克隆两台机器,并分别设置静态IP地址为192.168.222.132,192.168.222.133。

**注意:**克隆完成,启动机器后,会出现没有网络设备信息,无法连接网络的情况,解决方案如下:

*删除/etc/udev/rules.d/70-persistent-net.rules***,修改/etc/sysconfig/network-scripts/ifcfg-eth0,**注释硬件地址那一行,重启系统。

5. 配置ssh免登录

1)启动三台机器,分别修改名为master、slave1、slave2,重启系统。

[root@localhost ~]$ vim /etc/sysconfig/network

修改内容如下

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=master

2)修改master上的/etc/hosts。

[hadoop@master ~]$ sudo vim /etc/hosts

内容如下

192.168.222.131 master

192.168.222.132 slave1

192.168.222.133 slave2

3)将hosts文件拷贝到slave1和slave2

[hadoop@master ~]$ sudo scp /etc/hosts root@slave1:/etc

[hadoop@master ~]$ sudo scp /etc/hosts root@slave2:/etc

4)在master机器上使用hadoop用户登录(确保接下来的操作都是通过hadoop用户执行)。执行$ ssh-keygen -t rsa命令产生公钥。

[hadoop@master ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/hadoop/.ssh/id_rsa.

Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.

The key fingerprint is:

7b:75:98:eb:fd:13:ce:0f:c4:cf:2c:65:cc:73:70:53 hadoop@master

The key's randomart image is:

+--[ RSA 2048]----+

| E|

| .|

| ...|

| + =.|

| S + +.*|

| . . + Bo|

| . . . = =|

| . . . * |

| . ..=|

+-----------------+

5)将公钥拷贝到slave1和slave2。

[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub slave1

输入hadoop@slave1的密码

[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub slave2

输入hadoop@slave2的密码

注:第一,将公钥拷贝到自身,[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub master;

第二,为了使得master、slave1和slave2能互通,在slave1和slave2上做类似操作。

6)再次登录,已经可以不需要密码可以登录slave1,slave2。

[hadoop@master ~]$ ssh slave1

Last login: Wed Mar 25 14:40:41 2015 from master

[hadoop@slave1 ~]$

6. 安装Hadoop

1)在Hadoop官网网站,下载稳定版的并且已经编译好的二进制包,并解压缩。

[hadoop@master ~]$ wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

[hadoop@master ~]$ tar -zxf hadoop-2.6.0.tar.gz -C ~/local/opt

[hadoop@master ~]$ cd ~/local/opt/hadoop-2.6.0

2)设置环境变量。

[hadoop@master ~]$ vim ~/.bashrc

export HADOOP_PREFIX=$HOME/local/opt/hadoop-2.6.0

export HADOOP_COMMON_HOME=$HADOOP_PREFIX

export HADOOP_HDFS_HOME=$HADOOP_PREFIX

export HADOOP_MAPRED_HOME=$HADOOP_PREFIX

export HADOOP_YARN_HOME=$HADOOP_PREFIX

export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop

export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

3)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/hadoop-env.sh),添加下面的命令(这里需要注意JAVA_HOME的设置需要根据自己机器的实际情况进行设置)。

export JAVA_HOME=/usr/lib/jvm/java

4)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/core-site.xml)。

<configuration> <property>

<name>fs.defaultFS</name>

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

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

<value>/home/hadoop/local/var/hadoop/tmp/hadoop-${user.name}</value> 
</property> </configuration>

5)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/hdfs-site.xml)。

<configuration> <property>

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

<value>file:///home/hadoop/local/var/hadoop/hdfs/datanode</value>

</property> <property>

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

<value>file:///home/hadoop/local/var/hadoop/hdfs/namenode</value>

</property> <property>

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

<value>file:///home/hadoop/local/var/hadoop/hdfs/namesecondary</value>

</property> <property>

<name>dfs.replication</name>

<value>2</value>

</property> </configuration>

6)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/yarn-site.xml)。

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

<value>mapreduce_shuffle</value>
</property> <property>
<name>yarn.resourcemanager.hostname</name>

<value>master</value>
</property> </configuration>

7)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/mapred-site.xml)。

<configuration> <property>
<name>mapreduce.framework.name</name>

<value>yarn</value>
</property> <property>
 <name>mapreduce.jobtracker.staging.root.dir</name>

 <value>/user</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> </configuration>

7*)修改配置文件(vim $HADOOP_PREFIX/etc/hadoop/slaves)。

slave1

slave2

slaves文件是指定HDFS上有哪些DataNode节点。

7**)分发Hadoop文件

首先在其他两台机器上创建存放Hadoop的目录

[hadoop@slave1~]$ mkdir local

[hadoop@slave1~]$ cd local

[hadoop@slave1 local]$ mkdir opt

[hadoop@slave2~]$ mkdir local

[hadoop@slave2~]$ cd local

[hadoop@slave2 local]$ mkdir opt

通过Scp分发

Hadoop根目录下的share/doc目录是存放的hadoop的文档,文件相当大,建议在分发之前将这个目录删除掉,可以节省硬盘空间并能提高分发的速度。

doc目录大小有1.6G。

[hadoop@master ~]$ rm -r local/opt/hadoop-2.6.0/share/doc

[hadoop@master ~]$ scp -r local/opt/hadoop-2.6.0 hadoop@slave1:local/opt

[hadoop@master ~]$ scp -r local/opt/hadoop-2.6.0 hadoop@slave2:local/opt

8)格式化hdfs。

[hadoop@master ~]$ hdfs namenode -format

如果需要重新格式化NameNode,需要先将原来NameNode和DataNode下的文件全部删除,不然会报错, NameNode 和 DataNode 所在1目录是在 core—site.xml 中 hadoop.tmp.dir、dfs. namenode. name. dir、 dfs.datanode.data.dir 属性配置的。

因为每次格式化,默认是创建一个集群ID,并写入NameNode和DataNode的VERSION文件中(VERSION文件所在目录为dfs/name/current和dfs/data/current),重新格式化时,默认会生成一个新的集群ID,如果不删除原来的目录,会导致namenode中的VERSION文件中是新的集群ID,而DataNode中是旧的集群ID,不一致时会报错。

另一种方法是格式化时指定集群ID参数,指定为旧的集群ID。

9)启动hadoop集群,启动结束后使用jps命令列出守护进程验证安装是否成功。

#启动HDFS

[hadoop@master ~]$ start-dfs.sh

#启动Yarn

[hadoop@master ~]$ start-yarn.sh

【注:也可以直接使用start-all.sh启动Hadoop】

master主节点:

[hadoop@master ~]$ jps

3717 SecondaryNameNode

3855 ResourceManager

3539 NameNode

3903 JobHistoryServer

4169 Jps

#slave1节点

[hadoop@slave1 ~]$ jps

2969 Jps

2683 DataNode

2789 NodeManager

slave2 节点

[hadoop@slave2 ~]$ jps

2614 Jps

2363 DataNode

2470 NodeManager

发现JobHistoryServer没有启动,所以需要执行

[hadoop@master hadoop-2.6.0]$ sbin/mr-jobhistory-daemon.sh start historyserver

starting historyserver, logging to /home/hadoop/local/opt/hadoop-2.6.0/logs/mapred-hadoop-historyserver-master.out

【Web查看

http://192.168.42.128:50070/】

10)关闭hadoop集群,关闭结束后使用jps命令列出守护进程验证关闭是否成功。

[hadoop@master hadoop-2.6.0]$ stop-all.sh

[hadoop@master hadoop-2.6.0]$ sbin/mr-jobhistory-daemon.sh stop historyserver


本文转载自: https://blog.csdn.net/u013571432/article/details/140560513
版权归原作者 doublexiao79 所有, 如有侵权,请联系我们删除。

“大数据技术--实验01-Hadoop的安装与使用【实测可行】”的评论:

还没有评论