A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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-p ... ux-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

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







---------------------
【转载】
作者:lujj_6jj
原文:https://blog.csdn.net/qq_36230524/article/details/83244288


3 个回复

倒序浏览

ヾ(◍°∇°◍)ノ゙
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马