#大数据技术#基于python的hadoop(单机)环境搭建及使用
基于python的hadoop(单机)环境搭建及使用
- 0.写在前面
- 1.虚拟机安装centos6.5
- 1.1安装流程
- 1.1.1系统安装
- 1.1.2修改静态ip(超级用户)
- 1.1.3更换可用源(超级用户)
- 1.1.4安装配置telnet(超级用户)
- 1.1.5关闭防火墙(超级用户)
- 1.2参考网址
- 2.在centos6.5中安装python
- 2.1配置流程
- 2.1.1安装python(超级用户)
- 2.1.2需要安装的库(普通用户,有pip3装这些库会很简单)
- 2.2参考网址
- 3.在centos6.5中搭建hadoop(单机)并设置免密登录
- 3.1配置流程
- 3.1.1安装jdk(超级用户,大部分教程装在/usr目录上)
- 3.1.2安装并配置hadoop(普通用户)
- 3.1.3测试一下(普通用户)
- 3.1.4设置免密登录(对应的用户)
- 3.3参考网址
- 4.使用hadoop
- 4.1hadoop常用命令
- 4.1.1 上传文件
- 4.1.2 查看文件内容
- 4.1.3 查看指定路径下的文件
- 4.1.4 删除文件
- 4.1.5下载文件
- 4.1.6 创建目录或文件
- 4.1.7 重命名文件
- 4.1.8 终止作业
- 4.3python中的mrjob库的运用
- 4.2参考网址
0.写在前面
多了解一些linux系统的基础。本记录贴基于Centos6.5版本,使用jdk1.7.0_71,python3.6.8,hadoop-2.5.2。文章内容为个人学习记录以及理解。如有错误,望斧正。
一、安装流程:
1.修改静态ip–>2.更换可用源–>3.安装python3(进入python3.6文件夹后先执行2.1的操作)–>4.安装pip3(本贴使用的是python3.6.8,相对较高版本不会出现需要更新ssh的情况)–>5.安装好相关库–>6.安装jdk
二、相关参考资源:
(1)Linux常用命令
(2)centos6.5 提取码:y0dz
(3)vm虚拟机 提取码:si64
(4)Python3.6.8 提取码:clhg
(5) jdk1.7_071 提取码:w5uj
(6)hadoop-2.5.2 提取码:nhn3
1.虚拟机安装centos6.5
1.1安装流程
安装虚拟机–>修改静态ip–>更换可用源
1.1.1系统安装
centos系统普通安装比较简单,略了。
查看当前系统的版本
cat /etc/redhat-release #任意选一项即可
cat /etc/issue #任意选一项即可
查看当前系统的内核
cat /proc/version #任意选一项即可
uname -a #任意选一项即可
无界面版安装参考参考网址
1.1.2修改静态ip(超级用户)
先查看虚拟机的网络配置
再执行以下代码,根据以上参数修改ifcfg-eth0文档
vi /etc/sysconfig/network-scripts/ifcfg-eth0
我的配置如下
在ifcfg-eth0文件中主要修改:
1.是BOOTPROTO改为静态
2.修改ONBOOT=“yes”,指明在系统启动时激活网卡,只有在激活状态的网卡才能去连接网络,进行网络通讯。
3.设置正确的ip地址,前三个码段要和虚拟机的网关一致
4.USERCTL=yes/no 是否允许非root用户控制该设备
5.IPADDR:ip地址
6.NETMASK:子网掩码(一般为255.255.255.0)
7.GATEWAY:网关
执行
service network restart
重启网络后,打开浏览器测试一下是否联网成功。
查看ip地址是否修改成功(以下命令任意都可以查看ip地址)
ip addr #任意选一项即可
ifconfig #任意选一项即可
其余配置信息,可用以下命令查看
route
1.1.3更换可用源(超级用户)
换源
超级用户模式下依次执行以下命令即可(以下命令是修改为阿里源的命令)
sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.conf
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
yum clean all
yum makecache
第一句命令我目前不知是什么含义
第二句是备份原本的的CentOS-Base.repo文件
第三句下载Centos-6-Vault-Aliyun.repo并以CentOS-Base.repo保存
第四句清除原本的缓存包
第五句保存下载新下载的缓存包
查看是否换源成功
cat /etc/yum.repos.d/CentOS-Base.repo
和下面类似有aliyum基本上是成功的了
注:如果在换源成功后依然不能使用的情况,可以尝试以下方式解决(我遇到的问题确实是这个,所以能解决)在超级用户下修改
vi /etc/yum.repos.d/epel.repo
把所有https改为http,如下
1.1.4安装配置telnet(超级用户)
安装前先查看telnet
rpm -qa | grep telnet
安装
yum install xinetd
yum install telnet
yum install telnet-server
修改配置文件
vim /etc/xinetd.d/telnet
用su权限把disable改为 no,如图
然后保存退出即可
最后使配置生效
service xinetd restart
先关闭防火墙,然后在物理机上设置一下
借用一下这个博客的图
然后就可以win+r唤出运行窗口并输入cmd打开命令行窗口
输入以下内容(虚拟机的ip地址)
telnet xxx.xxx.xxx.xxx
连接自己的虚拟机了
接着输入自己虚拟机用户的账号密码,账号密码正确就会连接上了。
1.1.5关闭防火墙(超级用户)
查询防火墙状态
service iptables status
如下是防火墙开启状态
如下是防火墙关闭状态
临时关闭防火墙
service iptables stop
永久关闭防火墙
chkconfig iptables off
1.2参考网址
(1)VMware中安装Centos6.5-64位-minimal镜像
(2)修改静态ip
(3)CentOS 6 2021 可用源
(4)CentOS 6和CentOS 7防火墙的关闭
(5)centos6.5上安装配置telnet服务
2.在centos6.5中安装python
2.1配置流程
安装python3–>安装相关库
2.1.1安装python(超级用户)
先安装一下系统依赖。(缺少依赖会导致hadoop无法运行,必须所有都装上,反正安装过的不会再安装 )
yum install -y zlib-devel bzip2-devel \
openssl-devel ncurses-devel sqlite-devel \
readline-devel tk-devel gcc make
下载python3.6.8。下载太早的版本会遇到ssh版本太低的问题,比较难处理,所以我们这里下载3.6.8版本,博主亲测不会出现ssh过低问题。
可以先打开自己想要安装的位置,再执行以下操作。
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
解压
压缩包解压到当前路径下
tar -zxvf Python-3.6.8.tgz
安装
先打开Python-3.6.8文件夹
cd Python-3.6.8
./configure --prefix=/usr/local/python3
make && make install
建立软连接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3.6
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
最后升级一下pip3
pip3 install --upgrade pip
2.1.2需要安装的库(普通用户,有pip3装这些库会很简单)
安装好相关的python库,为后面使用hadoop准备。
(1)numpy
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
(2)matplotlib
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib
(3)mrjob
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple mrjob
2.2参考网址
(1)Centos6 安装python3 pip3 ipython3
(2)如何修改CentOS 6.x上默认Python版本
(3)centos怎么卸载python
(3)Centos6.5 编译安装python3.5版本,无法使用退格键方向键删除键等
(4)解决pip3 install下载很慢的问题(直接指定路径)
(5)pip3下载速度慢的解决办法(永久修改)
3.在centos6.5中搭建hadoop(单机)并设置免密登录
3.1配置流程
安装jdk–>安装并配置hadoop–>设置免密登录
3.1.1安装jdk(超级用户,大部分教程装在/usr目录上)
下载jdk
下载到文件后先把文件从主机传到虚拟机,解压到当前压缩包位置可以忽略-C及后面内容
tar zxvf /文件所在路径/下载到的压缩包名称 /解压文件存放路径
关于解压问题见参考网址
关于对应文件配置环境变量的作用
/etc/profile
#此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件
中搜集shell的设置.
/etc/bashrc
#为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile
#每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设
置一些环境变量,执行用户的.bashrc文件.
~/.bashrc
#该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.
~/.bash_logout
#当每次退出系统(退出bash shell)时,执行该文件.
配置环境变量
vim /home/hadoop/.bash_profile
追加如下内容(本贴的java是为hadoop装的,只需要javahome)
#JAVA
export JAVA_HOME=/usr/java/jdk1.8.0_131 #注意替换版本号
export PATH=$JAVA_HOME/bin:$PATH
然后使配置生效即可
source /home/hadoop/.bash_profile
按照参考网址3.3(1)的安装流程,即可完成安装
注意:修改/home/hadoop/.bash_profile时应当根据自己安装路径进行配置
3.1.2安装并配置hadoop(普通用户)
安装hadoop,把下载到的包解压到指定路径之后(建议放在普通用户的根目录下)
解压
解压到当前压缩包位置可以忽略-C及后面内容
tar zxvf /文件所在路径/下载到的压缩包名称 -C /解压文件存放路径
参数配置
编辑配置文件1
写上自己对应的java路径
vim /home/hadoop/hadoop-*/etc/hadoop/hadoop-env.sh
编辑配置文件2
vim /home/hadoop/hadoop-*/etc/hadoop/yarn-env.sh
写上自己对应的java路径
编辑配置文件3
vim /home/hadoop/hadoop-*/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property><name>fs.default.name</name><!-- 这里填的是你自己的ip,端口默认,hdfs工作模式--><value>hdfs://192.168.1.109:9000</value>
</property>
<property><name>hadoop.tmp.dir</name><!-- 这里填的是你自定义的hadoop工作的目录,端口默认--><value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
编辑配置文件4
vim /home/hadoop/hadoop-*/etc/hadoop/hdfs-site.xml
<configuration>
<!-- 备份namenode节点访问位置 -->
<property><name>dfs.namenode.secondary.http-address</name><value>192.168.1.109:50090</value>
</property>
<!-- 主namenode节点访问位置 -->
<property><name>dfs.namenode.http-address</name><value>192.168.1.109:50070</value>
</property><!-- 这个参数设置为1,因为是单机版hadoop -->
<property><name>dfs.replication</name><value>1</value>
</property><!-- 设置hdfs的文件权限 -->
<property><name>dfs.permissions</name><value>false</value></property><!-- 指定namenode元数据存储位置 -->
<property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/data/namenode</value>
</property><!-- 指定namenode日志文件存储位置 -->
<property><name>dfs.namenode.edits.dir</name><value>file:/usr/local/hadoop/data/edits</value>
</property><!-- 指定datanode数据存储位置 -->
<property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/data/datanode</value>
</property><!-- 设置datanode切片大小 128M-->
<property><name>dfs.blocksize</name><value>134217728</value>
</property>
</configuration>
编辑配置文件5
vim /home/hadoop/hadoop-*/etc/hadoop/mapred-site.xml
<configuration>
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>
<property> <name>mapred.job.tracker</name> <value>192.168.1.109:9001</value>
</property>
<!-- 开启历史任务 -->
<property> <name>mapreduce.jobhistory.address</name> <value>192.168.1.109:9002</value>
</property>
<!-- 开启历史任务访问端口 -->
<property> <name>mapreduce.jobhistory.webapp.address</name> <value>192.168.1.109:9003</value>
</property>
<!-- 开启mapreduce小任务模式 -->
<property> <name>mapreduce.job.ubertask.enable</name> <value>ture</value>
</property>
</configuration>
编辑配置文件6
vim /home/hadoop/hadoop-*/etc/hadoop/yarn-site.xml
<configuration><!-- Site specific YARN configuration properties -->
<!--配置yarn主节点位置,默认端口8088 -->
<property><name>yarn.resourcemanager.hostname</name><value>192.168.1.109</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>
</configuration>
配置环境变量
vim ~/.bash_profile
追加以下内容
#HADOOP
export HADOOP_HOME=/home/hadoop/hadoop-2.5.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
保存并推出文件后使用,使配置生效
source ~/.bash_profile
在完成安装后可能会出现需要反复配置的问题。可以执行以下命令
注意:此处应该以超级用户下执行
编辑~/.bashrc
vim ~/.bashrc
在行末添加
source /home/hadoop/.bash_profile
然后
source ~/.bashrc
3.1.3测试一下(普通用户)
找到自己版本的hadoop的样例jar包的位置。
一般是在hadoop-2.5.2/share/hadoop/mapreduce/里,里面会有有个example包格式类似下面。
计算圆周率pi
hadoop jar /home/hadoop/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar pi 10 10
如果运行成功说明hadoop安装成功(如果后续有什么问题也也不应该是前面的配置问题 )
ps:一个题外话,我在装好python,jdk,hadoop之后,跑jar包没有问题。用python运行自己写的代码失败,最后发现是python依赖未装完整,如果发现问题可以尝试把我前面说的依赖都装一遍,然后删除再编译一次python。
3.1.4设置免密登录(对应的用户)
需要使用两台机器ssh可以互相免密登录
1.master生成 ssh公钥;
2.复制本机公钥到远程服务器.ssh/authorized_keys中,authorized_keys文件不存在则创建;
3.slave1生成公钥,把公钥追加到master的远程服务器.ssh/authorized_keys中;
4.把master的远程服务器.ssh/authorized_keys发送到slave1;
5.设置authorized_keys权限,.ssh和authorized_keys都应只有用户自己有写权限
6.结束。
需要使用机器ssh可以免密登录
1.生成 ssh公钥;
2.复制本机公钥到远程服务器.ssh/authorized_keys中,authorized_keys文件不存在则创建;
3.设置authorized_keys权限,.ssh和authorized_keys都应只有用户自己有写权限
4.结束。
具体操作
网上教程各种各样的说法,实际上只是密钥写错地方了。
超级用户免密
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa #生成密钥,-t 指定dsa加密方式,-P ''为不提供密码,-f 指定文件路径
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys #追加密钥内容到authorized_keys
chmod 600 ~/.ssh/authorized_keys #设置authorized_keys权限
普通用户免密
ssh-keygen -t dsa -P '' -f /home/hadoop/.ssh/id_dsa #生成密钥,-t 指定dsa加密方式,-P ''为不提供密码,-f 指定文件路径
cat /home/hadoop/.ssh/id_dsa.pub >> /home/hadoop/.ssh/authorized_keys #追加密钥内容到authorized_keys
chmod 600 ~/.ssh/authorized_keys #设置authorized_keys权限
3.3参考网址
(1)Linux Centos安装JDK1.8教程
(2)CentOS6.5下搭建Hadoop环境详细步骤
(3)Hadoop的jobhistoryserver配置
(4)hadoop进行免密登录详解
(5)Hadoop伪分布模式下启动需要密码登录,求解决SSH免密码登录
(6)Hadoop用户配置免密登陆
(7)mr-jobhistory-daemon.sh 启动和关闭脚本
(8)Linux解决每次进入命令要重新 source /etc/profile 的问题
(9)centos 6.5 解压 tar
(10)hadoop slaves文件_Hadoop 系列(四)—— Hadoop单机伪集群环境搭建
(11)搭建Hadoop+Python的大数据开发环境
(12)Hadoop2.5.2伪分布安装
4.使用hadoop
4.1hadoop常用命令
4.1.1 上传文件
hadoop dfs –put [文件目录]
hdfs dfs -put [文件目录]
4.1.2 查看文件内容
hadoop dfs –ls [文件目录]
hdfs dfs -ls [文件目录]
4.1.3 查看指定路径下的文件
hadoop dfs -cat [文件目录]
hdfs dfs -cat [文件目录]
4.1.4 删除文件
hadoop fs -rm -r -f [文件目录]
hdfs dfs -rm -r -f [文件目录]
4.1.5下载文件
hadoop fs -get [文件目录] [本地目录]
hdfs dfs -get [文件目录] [本地目录]
4.1.6 创建目录或文件
hadoop fs -mkdir [文件目录]
hdfs dfs -mkdir [文件目录]
4.1.7 重命名文件
hadoop fs -mv [文件目录] [本地目录]
hdfs dfs -mv [文件目录] [本地目录]
4.1.8 终止作业
hadoop job –kill [job-id]
4.3python中的mrjob库的运用
4.2参考网址
(1)Hadoop上传文件到hdfs中
(2)【hdfs 常用命令】数据put到hdfs
(3)解决 Unable to load native-hadoop library for your platform
(4)MRJob 十分钟入门: 用 Python 轻松运行 MapReduce
(5)Hadoop之MRjob入门
(6)Hadoop常用命令汇总
#大数据技术#基于python的hadoop(单机)环境搭建及使用相关推荐
- python2 json大数据_大数据技术之python 操作json
本篇文章探讨了大数据技术之python 操作json,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. #!/usr/bin/env python import json s = ...
- 大数据技术和python开发工程师
一:大数据技术 简单来说,从大数据的生命周期来看,无外乎四个方面:大数据采集.大数据预处理.大数据存储.大数据分析,共同组成了大数据生命周期里最核心的技术,下面分开来说: 一.大数据采集 大数据采集, ...
- 大数据开发和python的区别_大数据技术和python开发工程师
容易来说,从大数据的生命周期来看,无外乎四个方面:大数据采集.大数据预处理.大数据存储.大数据分析,共同组成了大数据生命周期里最核心的技术,下面分开来说: 一.大数据采集 大数据采集,即对各种来源的结 ...
- 大数据第一天 Hadoop01-入门集群环境搭建
Hadoop01-入门&集群环境搭建 今日内容 Hadoop的介绍 集群环境搭建准备工作 Linux命令和Shell脚本增强 集群环境搭建 大数据概述 大数据: 就是对海量 ...
- 【Spark+Hadoop+Hive+MySQL+Presto+SpringBoot+Echarts】基于大数据技术的用户日志数据分析及可视化平台搭建项目
目录 1.项目概述 1.1.项目背景 1.2.项目流程 2.功能需求描述 2.1.系统功能组成 2.2.数据描述 2.3.功能描述 2.3.1.流量概况分析 2.3.2.日新日活分析 2.3.3.交互 ...
- 数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
分析师:Enno 案例数据集是在线零售业务的交易数据,采用Python为编程语言,采用Hadoop存储数据,采用Spark对数据进行处理分析,并使用Echarts做数据可视化.由于案例公司商业模式类似 ...
- 【大数据实战】Docker中Hadoop集群搭建
目录 Docker中Hadoop集群搭建 环境 网络设置 安装docker 安装OpenSSH免密登录 Ansible安装 软件环境配置 配置hadoop运行所需配置文件 Hadoop 启动 问题 D ...
- -i 可以编译添加多个_大咖说 | 基于 NXP i.MX8 eIQ 环境搭建和编译
一.前言 NXP 针对 Machine Learning ( ML ) 创建了 eIQ 工具,以方便开发者在 i.MX 系列设备上开发 ML 相关应用. 本篇将会分两个章节,一章节介绍 eIQ 软件, ...
- 大数据技术----HBase Python编程
Thrift 服务 Hbase分布式数据库,使用Java语言编写,除了提供原生的Java接口外,还可以使用其他语言连接,但是需要使用Thrift服务,进行跨语言转换!!! Thrift是一种C/S模式 ...
最新文章
- Qemu之Network Device全虚拟方案
- NPM:Cannot read property 'pause' of undefined
- 【译】Go语言声明语法
- 白盒测试——简单分支函数测试
- 数据结构Java03【(时间、空间复杂度),排序(冒泡、快速、插入、希尔、选择、归并、基数、队列基数)】
- java ltpa_SystemOut频繁输出SECJ0369E: 使用 LTPA 时认证失败
- CSS从大图中抠取小图完整教程(background-position应用)
- 我给非洲医药基金会捐的款和感谢信
- Sparklens:Spark应用程序优化工具
- php iis session 超时设置,如何配置IIS Session超时时间
- 表主键自增长Mybatis插入数据报错
- Sobel边缘检测算法及OpenCV函数实现
- C#中奇怪的Queue T 行为!
- 我的汉字输入法编码方案
- python百万邮件群发软件_python如何群发邮件
- Android多点触控之——MotionEvent(触控事件)
- 香的很,整理了20份可视化大屏模板
- [笔记]Class.forName 时static代码的运行
- 自用型监控系统方案设计
- 2021-05-10 关于vant按钮小程序点击后出现灰色背景去除方式