我的编程空间,编程开发者的网络收藏夹
学习永远不晚

关于python使用hadoop(使用p

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

关于python使用hadoop(使用p

最近想学习一下hadoop,但是本人对java不是很熟悉,所以决定用python来进行尝试,以下是整个环境部署及测试:

软件环境:VMware10.0,VMware10,ubuntu15.10桌面版(ubuntukylin-15.10-desktop-i386.iso),Apache hadoop(hadoop-1.2.1.tar.gz),JDK(jdk-8u11-linux-i586.tar.gz)


一 安装JDK(安装ubuntu对应的JDK,我这里是32位的ubuntu系统)
查看Linux多少位 命令file /bin/ls

创建文件夹 /usr/local/java

解压jdk,配置环境变量  vi /etc/profile

export JAVA_HOME=/usr/local/java/jdk1.8.0_11

export JAVA_BIN=/usr/local/java/jdk1.8.0_11/bin

export PATH=$PATH:$JAVA_HOME/bin

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

export JAVA_HOME JAVA_BIN PATH CLASSPATH

使用 .(空格)/etc/profile使环境变量生效
检测安装 java -version 出现  
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) Client VM (build 25.11-b03, mixed mode)
代表成功

二 安装ssh(hadoop主从指间通过ssh来连接)
        apt-get install openssh-server
        apt-get update     #更新系统
        apt-get upgrade   #更新软件包
       
        生成key:ssh-keygen -t rsa,一路回车,key在/root/.ssh 中
        将key追加到authorized_keys授权文件,实现无密码登录本机 cat id_rsa.pub>>authorized_keys
        检测是否成功 ssh localhost


三 修改机器名称
修改机器名称 vi /etc/hostname,改为Hadoop-namenode,重启后生效

四  配置固定IP,多台虚拟机
将虚拟机网络设置成NAT模式,然后将本机的本地连接共享给VMnet8,然后在虚拟机中创建一块网卡,手动添加IP地址192.168.137.11,子网255.255.255.0,网关和 DNS都为192.168.137.1
此时本机ip就固定为192.168.137.11
此时可以添加host了,vi /etc/hosts
127.0.0.1       localhost
192.168.137.11 Hadoop-namenode
192.168.137.12 Hadoop-datenode1
192.168.137.13 Hadoop-datenode2


克隆出2台datenod(如果是多台机器的集群,此步骤在配置好hadoop后进行最好)
一台修改机器名称 Hadoop-datenode1,修改ip为192.168.137.12
一台修改机器名称 Hadoop-datenode2,修改ip为192.168.137.13


五 安装hadoop
下载hadoop-1.2.1.tar.gz,解压到 /usr/local/hadoop中
修改配置文件 /usr/local/hadoop/hadoop-1.2.1/conf/hadoop-env.sh     export JAVA_HOME=/usr/local/java/jdk1.8.0_11  指向jdk所在目录
  export HADOOP_HOME_WARN_SUPPRESS=1 用于解决一个警告,具体什么警告忘记了
环境变量vi /etc/profile:
export HADOOP_HOME=/usr/local/hadoop/hadoop-1.2.1
export PATH=$HADOOP_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/lib:${HADOOP_HOME}/bin:${HADOOP_HOME}
export HADOOP_CLASSPATH=$CLASSPATH
使用 .(空格)/etc/profile使环境变量生效

单机版Hadoop(自己是主也是从)配置:
设置hadoop的HDFS的地址及端口号  core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改hadoop的hdfs配置,这里是改备份方式hdfs-site.xml这里设置1个备份:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
修改hadoop中MapReduce的配置,设置JobTracker的地址及端口mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://localhost:9001</value>
</property>
</configuration>
启动hadoop之前先格式化hadoop的HDFS进入/usr/local/hadoop/hadoop-1.2.1/bin:  ./hadoop namenode -format
启动hadoop:./start-all.sh
测试:浏览器打开 localhost:50030(MapReduce的页面)
                localhost:50070(HDFS的页面)
                
三台机器的小集群配置
1.三台机器拥有相同的用户
2.要求Hadoop-namenode能免密码ssh登录2台Hadoop-datenode(Hadoop-datenode1,Hadoop-datenode2)

设置hadoop的HDFS的地址及端口号  core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://Hadoop-namenode:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/cjy/hadoop_tmp</value>         #这里这么配置主要是为了不用每次重启机器就格式化一次hdfs
</property>
</configuration>
修改hadoop的hdfs配置,这里是改备份方式hdfs-site.xml这里设置2个备份:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

修改hadoop中MapReduce的配置,设置JobTracker的地址及端口mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://Hadoop-namenode:9001</value>
</property>
</configuration>
主masters:
Hadoop-namenode
从slaves:
Hadoop-datenode1
Hadoop-datenode2

启动hadoop之前先格式化hadoop的HDFS进入/usr/local/hadoop/hadoop-1.2.1/bin:  ./hadoop namenode -format
启动hadoop:./start-all.sh
测试:浏览器打开 Hadoop-namenode:50030(MapReduce的页面)
                Hadoop-namenode:50070(HDFS的页面)


六 测试hadoop是否能正常工作
hadoop fs -lsr   /                       查看HDFS的文件结构
hadoop fs -mkdir /tmp/test               在HDFS上新建文件夹
hadoop fs -put /home/cjy/VMwareTools-9.6.1-1378637.tar.gz /tmp/test   把本地文件传到HDFS的/tmp/test目录下
hadoop fs -get   /tmp/test/VMwareTools-9.6.1-1378637.tar.gz /home/   把HDFS文件拉到本地
hadoop fs -ls    /tmp                 列出HDFS的某目录
hadoop fs -cat   /tmp/test/VMwareTools-9.6.1-1378637.tar.gz             查看HDFS上的文件
hadoop fs -rm    /tmp/test/VMwareTools-9.6.1-1378637.tar.gz             删除HDFS上的文件
hadoop fs -rmr   /tmp/test                 删除HDFS上的目录
hadoop dfsadmin -report 查看HDFS状态,比如有哪些datanode,每个datanode的情况
hadoop dfsadmin -safemode leave   离开安全模式
hadoop dfsadmin -safemode enter   进入安全模式






关于python:

这里比较吐血,折腾了好久,看网上攻略都是相当简单,直接成功!!!!

        反正不外乎几种方式 pyhdfs,pydoop等等,看网上的一路坎坎坷坷的,最后几乎要用hadoop shell去完成了。

       最后在坚持了一下成功了:

       这里说一个成功的例子 pyhdfs的:

                      下载地址在这里,https://pypi.python.org/pypi/python-hdfs/0.4

       安装流程如下:

              apt-get install python-dev

                      apt-get install libhdf4-dev

                      下载 svn co http://libpyhdfs.googlecode.com/svn/trunk/ libpyhdfs并解压

                       进入libpyhdfs,cp /usr/local/hadoop/hadoop-1.2.1/c++/Linux-i386-32/lib/libhdfs.so lib/ 

                      vi setup.py 修改以下内容:
                 include_dirs = ['/usr/lib/jvm/java-6-sun/include/'] ->  include_dirs = ['/usr/local/java/jdk1.8.0_11/include']
                          runtime_library_dirs = ['/usr/local/lib/pyhdfs', '/usr/lib/jvm/java-6-sun/jre/lib/i386/server'] -> runtime_library_dirs = ['/usr/local/lib/pyhdfs',    '/usr/local/java/jdk1.8.0_11/jre/lib/i386/server']

                      修改/usr/local/java/jdk1.8.0_11/include/jni.h :
                 #include "jni_md.h" -> #include "linux/jni_md.h"

                      这时候安装pyhdfs:python setup.py install

                      安装成功,进去看看,然后会报一下错误:

                      

解决方法 编辑vi /etc/ld.so.conf:加入一行  include /usr/local/hadoop/hadoop-1.2.1/c++/Linux-i386-32/lib
执行/sbin/ldconfig -v

                       这时候在进去看看貌似离成功不远了,但是:

                        

                      又出错了,这里的问题是缺失了jar包,我们来添加环境变量,我对java不是很熟悉,所以就随便加加好了

                      添加环境变量 vi /etc/profile:

                                         export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/hadoop-client-1.2.1.jar
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/hadoop-core-1.2.1.jar
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/hadoop-ant-1.2.1.jar
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/hadoop-examples-1.2.1.jar
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/hadoop-minicluster-1.2.1.jar
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/hadoop-test-1.2.1.jar
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/hadoop-tools-1.2.1.jar
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/lib/commons-logging-1.1.1.jar
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/lib/commons-logging-api-1.0.4.jar
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/lib/commons-configuration-1.6.jar
export CLASSPATH=$CLASSPATH:${HADOOP_HOME}/lib/commons-lang-2.4.jar

                      同样执行.(空格)/etc/profile

                      我的环境变量如下:  

    

                       然后再来执行一次:

                        

                      成功!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

关于python使用hadoop(使用p

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

关于python使用hadoop(使用p

最近想学习一下hadoop,但是本人对java不是很熟悉,所以决定用python来进行尝试,以下是整个环境部署及测试:软件环境:VMware10.0,VMware10,ubuntu15.10桌面版(ubuntukylin-15.10-des
2023-01-31

Python 3 进阶 —— 使用 P

PyMySQL 是一个纯 Python 实现的 MySQL 客户端操作库,支持事务、存储过程、批量执行等。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。安装pip
2023-01-31

python学习-windows下使用p

有时候需要处理很多报表,将一个目录下的所有excel格式报表合并,手工操作费事费力如果能使用python,将多个.xlsx同时能够合并多个excel表的话,多么方便。1、windows上python配置windows上安装的是python2
2023-01-31

python中关于xmltodict的使用

这篇文章主要介绍了python中关于xmltodict的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-14

Python学习之使用Python生成P

在有些时候运维同事需要对一些数据收集后形成PDF报告的形式发送出去。利用python的reportlab库可以帮我们很快的实现自定义生成PDF报告。在CentOS 下通过sudo yum install python-reportlab -
2023-01-31

关于Python中Math库的使用

这篇文章主要介绍了关于Python中Math库的使用,math 库是 Python 提供的内置数学类函数库,因为复数类型常用于科学计算,需要的朋友可以参考下
2023-05-15

关于TransactionScope使用

TransactionScope 是一个用于管理事务的类,它提供了对事务的创建、提交和回滚的支持。通过 TransactionScope,可以在代码块内部定义一个事务,并确保在代码块执行完毕后事务被提交或回滚。以下是使用 Transacti
2023-09-23

关于Python中jieba库的使用

这篇文章主要介绍了关于Python中jieba库的使用,jieba(“结巴”)是Python中一个重要的第三方中文分词函数库,除了分词,jieba还提供增加自定义中文单词的功能,需要的朋友可以参考下
2023-05-15

再述:python中redis的使用(P

redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。redi
2023-01-31

Protocol Buffer的使用(p

1.需要安装Protocol Buffer直接:apt-get install protobuf-compiler安装完毕后,进入解压目录的python目录,执行python setup.py install;安装python的protob
2023-01-31

关于如何使用python的gradio库

这篇文章主要介绍了关于如何使用python的gradio库,Gradio是一个功能丰富的Python库,可以让您轻松创建和共享自己的交互式机器学习和深度学习模型,需要的朋友可以参考下
2023-05-17

关于python中map函数的使用

这篇文章主要介绍了关于python中map函数的使用,map函数也是python中的一个内置函数,用法同之前讲过的filter函数类似,需要的朋友可以参考下
2023-05-16

关于如何使用python的logging库

这篇文章主要介绍了关于如何使用python的logging库,logging是Python标准库中用于记录日志的模块。它提供了一种简单但灵活的方法来记录程序中的事件,以便稍后进行调试和分析,需要的朋友可以参考下
2023-05-17

python中关于CIFAR10数据集的使用

这篇文章主要介绍了python中关于CIFAR10数据集的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-01

C++使用boost.python编写P

很久没有写文章了,今天整理了一些东西,在这里分享一下。最近一直在想用C++封装一些在工作中常用的Python扩展模块,因为之前没有用C++写过类似的东西,因此一直在网上找一些文章,但是我发现好多文章都描述的不是很清晰,对于老鸟来说应该会很容
2023-01-31

Hadoop MapReduce怎么使用

本篇内容介绍了“Hadoop MapReduce怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Apache Hadoop : 是 A
2023-06-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录