在Ubuntu进行Hadoop安装与配置

腾讯云 ubuntu 16.04.1 LTS 64位

伪分布式

 

Linux操作

修改root的密码 

sudo passwd root

将用户注销

logout

关闭防火墙

ufw disable

卸载iptables组件

apt-get remove iptables

下载vim组件(用于文本编辑)

apt-get install vim

进行文字的改变

sudo dpkg-reconfigure console-setup

linux远程连接

  •  第一:linux上有ssh服务
  • 第二:使用ssh客户端工具

为系统中安装ssh工具

apt-get install openssh-server

启动ssh服务

/etc/init.d/ssh start

查看进程,是否已经已经启动指定服务

ps -e | grep sshd

有了进程才可以有ssh的使用

ubuntu默认情况不允许root用户登陆
使用vim打开/etc/ssh/sshd_config文件

vim /etc/ssh/sshd_config

随后进行PermitRootLogin的内容修改,将内容设置为yes

配置ftp服务

安装ftp组件

apt-get install vsftpd

修改ftp用户密码

passwd ftp

ftp服务安装完成之后,会自动创建一个目录:/srv/ftp
cd /srv/ftp
设置此目录为完全权限

chmod 777 /srv/ftp

若要ftp可以正常工作,需要进行一些配置文件的修改"/etc/vsftpd.conf"

vim /etc/vsftpd.conf

设置如下配置:
设置不允许匿名登陆(必须正确用户名和密码)
anonymous_enable=NO
#配置用户具有写权限
write_enable=YES
允许本地用户登陆
local_enable=YES
是否将所有用户限制在主目录(去掉注释#)
chroot_local_user=YES
是否启动限制用户的名单
chroot_list_enable=YES
定义名单设置的目录(因为名单中可以设置多个账号)
chroot_list_file=/etc/vsftpd.chroot_list
增加一个服务配置
pam_service_name=vsftpd

进入配置文件
vim /etc/vsftpd.chroot_list
添加一个ftp用户,输入完成保存退出
修改/etc/pam.d/vsftpd
vim /etc/pam.d/vsftpd
注释掉以下内容
auth   required        pam_shells.so

启动ftp服务

service vsftpd start
service vsftpd restart 

         //重新启动

查看是否已经启动ftp服务

ps -e | grep vsftpd

hadoop安装与配置

jdk安装与配置

下载jdk或直接ftp传入

wget http://download.oracle.com/otn-pub/java/jdk/8u191-b12-demos/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64-demos.tar.gz

解压缩并保存在/usr/local目录

tar xzvf jdk-8u191-linux-x64-demos.tar.gz -C /usr/local

改名

mv jdk1.8.0_191/ jdk

进入环境文件进行配置

vim /etc/profile

export JAVA_HOME=/usr/local/jdk
export JRE_HOME=${JAVA_HOME}/jre
export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOM}E/sbin: 

#默认情况下修改环境变量的内容后,需要重新启动系统才可以读取新的配置,但也可以用source使配置立刻生效:

source /etc/profile


linux中安装hadoop

wget https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.8.5/hadoop-2.8.5-src.tar.gz
tar xzvf hadoop-2.8.5-src -C /usr/local

#进入环境变量的配置

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:

让配置生效

source /etc/profile

hadoop依赖于JDK支持,所以要在hadoop一个资源文件里面定义要使用的JDK路径

vim hadoop-env.sh 

确定Hadoop中将要使用到的jdk设置

export JAVA_HOME=/usr/local/jdk


测试hadoop

是否已经安装完成可用,可用hadoop自带测试程序
    进行单词统计信息,首先指定一个单词文件
#在Hadoop的目录(root@VM-0-3-ubuntu:/usr/local/hadoop#)下创建一个input目录:
 

mkdir input

编写一个文件(root@VM-0-3-ubuntu:/usr/local/hadoop# )
 

echo hello 6jj hello nihaoa > input/info.txt

每个单词中使用" "进行拆分

随后在input父目录中执行如下操作,最终结果将保存在output目录当中

hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.5-sources.jar org.apache.hadoop.examples.WordCount input output

 

基于分布式的hadoop配置

配置ssh

ip不可变更,否则需要重新配置

为了配置方便,为每台电脑设置主机名称

vim /etc/hostname

将里面的localhost修改为"Hadoopm"

还需修改主机的映射配置,修改"/etc/hosts"文件,里面追加IP地址与hadoopm主机名称的映射

vim /etc/hosts

123.207.2.224 hadoopm

为了可以让生效起作用,建议重新启动输入reboot重新启动Linux

在在整个Hadoop的处理过程中,都是利用ssh实现通讯,所以即使是在本机,也建议使用ssh进行通讯处理,也必须在电脑上配置ssh免登陆处理
    由于电脑可能已经出现了ssh的相关配置,所以建议删除根目录下的".ssh"文件夹

cd ~
rm -rf ~/.ssh

在Hadoop的主机上生成ssh Key:

ssh-keygen -t rsa

此时程序若要进行登陆依然需要密码,需要将公钥信息保存在授权认证的文件之中"authorized_key"文件里面

cd ~
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

以后可进行免登陆处理

随后登陆

ssh root@hadoopm

登陆之后变成远程连接,那么可以使用exit退出当前的连接

hadoop的相关配置

所有的配置文件都在"/usr/local/hadoop/etc/hadoop/"目录

配置:"core-site.xml"

确定Hadoop的核心信息,包括临时目录,访问地址

<property>

      <name>hadoop.tmp.dir</name>
      <value>/home/root/hadoop_tmp</value>
</property> 
<property> 
      <name>fs.defaultFS</name>
      <value>hdfs://hadoopm:9000</value>
</property>
  • 本文配置的"hdfs://hadoopm:9000"信息,描述的是日后打开的页面管理器的路径,Hadoop版本2.X默认端口为9000
  • 在本配置之中最为重要的就是"/home/root/hadoop_tmp",这个文件路径配置的临时文件信息,若不配置,就会在hadoop的文件夹中生成"tmp"文件("/usr/local/hadoop/tmp"),如果这样配置,当重新启动,所有的信息都会被清空, 也就是说Hadoop的环境就失效了,为保证不出错,可先直接建立一个"/home/root/hadoop_tmp"目录 mkdir ~/root/hadoop_tmp

配置:"yarn-site.xml"

可以简单的理解为配置相关的job的处理


<property>
	<name>yarn.resourcemanager.admin.address</name>
	<value>hadoopm:8033</value>
</property>
<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.resource-tracker.address</name>
	<value>hadoopm:8025</value>
</property>
<property>
	<name>yarn.resourcemanager.scheduler.address</name>
	<value>hadoopm:8030</value>
</property>
<property>
	<name>yarn.resourcemanager.address</name>
	<value>hadoopm:8050</value>
</property>
<property>
	<name>yarn.resourcemanager.scheduler.address</name>
	<value>hadoopm:8030</value>
</property>
<property>
	<name>yarn.resourcemanager.webapp.address</name>
	<value>hadoopm:8088</value>
</property>
<property>
	<name>yarn.resourcemanager.webapp.https.address</name>
	<value>hadoopm:8090</value>
</property>

配置:"hdfs-site.xml"

可以确定文件的备份个数以及数据文件夹的路径


<property>

    <name>dfs.replication</name>

    <value>1</value>

</property>
<property>

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

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

</property>
<property>

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

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

</property>
<property>

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

    <value>hadoopm:50070</value>

</property>
<property>

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

    <value>hadoopm:50090</value>

</property>
<property>

    <name>dfs.permissions</name>

    <value>false</value>

</property>

 

  • "replication":文件的副本数,一般情况下一个文件备份3份
  • "dfs.namenode.name.dir":定义名称节点路径
  • "dfs.datanode.data.dir":定义数据文件节点路径
  • "dfs.namenode.http-address":名称服务的http路径访问
  • "dfs.namenode.secondary.http-address":第二名称节点
  • "dfs.permissions":权限的访问,为避免无法进入的问题,设为false

 

由于Hadoop属于分布式的开发环境,考虑到日后要进行集群的搭建
建议在"/usr/local/hadoop/etc/hadoop/"目录中创建master文件,里面写上主机名称,内容就是hadoopm(之前在host文件里面定义的主机名称),若是的单机环境,不写也可以

vim masters

hadoopm

修改从节点文件(slaves),增加hadoopm

vim slaves 

由于此时是将所有的namenode,datanode路径保存在hadoop目录中,如果为了保险起见,可以自己创建,在hadoop目录下

mkdir dfs dfs/name dfs/data

若Hadoop出现了问题,需要重新配置,要将这两个文件夹清除掉

格式化文件系统

hdfs namenode -format

若格式化正常,就会出现"INFO util.ExitUtil:Exiting with status 0"信息
若出现错误就会出现"INFO util.ExitUtil:Exiting with status 1"信息

开启服务

start-all.sh

随后可利用JDK提供的jps命令查看,所有Java进程若返回6个进程,表示配置成功了 

jsp

随后可以测试HDFS是否可以正常使用

在浏览器输入IP和端口测试是否可以进入

由于用的是云服务器,想要进入内网,须将hdfs-site.xml修改

<property>

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

    <value>0.0.0.0:50070</value>

</property>

浏览器:腾讯云公网IP+50070

如需关闭服务:

stop-all.sh

 

Map处理

排序处理

合并处理

Reduce处理

 

 

Java创建新项目,导入Hadoop包

common组件包:

  • hadoop/common
  • hadoop/commng/lib

mapreduec组件包

  • hadoop/mapreduce
  • hadoop/mapreduce/lib

 

 

 

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值