前言:
今天兄弟们对“pythonlxmlxpath”大约比较珍视,同学们都需要知道一些“pythonlxmlxpath”的相关内容。那么小编在网摘上收集了一些对于“pythonlxmlxpath””的相关文章,希望各位老铁们能喜欢,各位老铁们快快来了解一下吧!本篇基于 Hadoop 3.x 版本进行安装,安装前可以查看之前的文章《「大数据」万字图文详解 Hadoop 1.0 2.0 3.0 架构的异同!》 ,了解 3.x 版本有哪些部分组成。欢迎阅读~
Hadoop的安装其实不难,但对于新手小白来说是一道不低的门槛,尤其是对于Linux环境不熟悉的小白,而且我发现网上几乎没有特别详细的教程,坑太多,会让新手走很多弯路,甚至折腾好几天都装不好,非常打击学习热情。
因此我想出一个尽量详细的Hadoop安装教程,希望能帮助新手小白顺利安装并运行Hadoop。本教程使用CentOS 7.0 64位操作系统,请自行下载安装VMware虚拟机和CentOS操作系统。
一、创建hadoop用户
打开终端,输入su root,按回车,输入root密码以root用户身份登录。登录成功后,输入useradd -m hadoop -s /bin/bash,创建用户名为hadoop的新用户,使用/bin/bash作为shell。
输入passwd hadoop,修改hadoop用户的密码,按照提示输入两次。
为了避免一些比较棘手的权限问题,方便我们后续的操作,这里需要为hadoop用户增加管理员权限,输入visudo,会打开一个文本文件,找到root ALL=(ALL) ALL这一行,大概是在第100行上下,我们可以按esc键,再按冒号,输入100,即按了esc后输入:100,再按回车,让光标跳转至文本的第100行,然后按a键进入insert插入模式,在root ALL=(ALL) ALL下面加一行hadoop ALL=(ALL) ALL,如图所示。
添加完成后,按一下esc键,然后输入:wq,回车,保存当前文本内容并退出。
最后重启当前系统,用刚创建hadoop用户进行登录。(我这里当前已经是hadoop用户,且登录了root用户,这里直接执行exit推出root用户状态即可。)
二、安装SSH、配置SSH免密登录
一般来说CentOS是默认安装了SSH client和SSH server的,可以输入如下命令查看:
rpm -qa | grep ssh
如果返回的结果包含了SSH client和SSH server,如下图所示,则不需要再安装了。
若需要安装则输入如下两条命令:
sudo yum install openssh-clientssudo yum install openssh-server
注意在安装过程中会提示你输入[y/n],我们输入y即可。
然后执行如下命令检测SSH是否可用:
ssh localhost
如图所示,SSH首次登录会有如此提示,输入yes,然后按照提示输入刚才设置的hadoop用户的密码。
确定可以正常登录后,输入exit退出。接下来要配置ssh免密登录,这样我们每次登录的时候就不用重复输入密码,方便后续操作。
这里需要输入四条命令,我们看下面这张图。
输入cd ~/.ssh/,进入hadoop用户的ssh目录。
输入ssh-keygen -t rsa生成密钥,会出现一些提示,这里我们要连续按四次回车,直到它出现一个如下图所示的框框。
输入cat id_rsa.pub >> authorized_keys加入授权。
输入chmod 600 ./authorized_keys修改文件权限。
完成以上四步以后,我们再输入ssh localhost命令验证一下,可以看到现在无需密码就可以直接登录了。
三、安装Java环境
CentOS系统中是有自带JDK的,我们可以输入rpm -qa | grep java查看。
输入命令java –version查看当前Java版本。
如果没有输出JDK版本号,而是说没有这个命令,那么就说明没有JDK。但是就算出现了上图的版本号输出,这个系统自带的JDK在后面安装Hadoop的时候是不可用的,Hadoop会显示说无法识别,所以我们要重新安装一个JDK。
这里选择1.7版本或1.8版本都可以,你喜欢咯,Hadoop在1.7下运行是没有问题的。
输入sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel安装JDK。
在安装过程中可能会有提示让你输入密码的,或者让你输入y/n的,输入y即可。
看到Complete就完成了。
接着需要配置环境变量。
输入vim ~/.bashrc,我们在.bashrc中进行环境变量设置。
进入文本后,在 # User specific aliases and functions下面加上如下一行:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk,这里的JAVA_HOME的值是当前JDK的安装位置。添加上后就:wq保存退出。
输入source ~/.bashrc,让刚才的变量设置生效。
完成以上操作后,我们输入如下两个命令:
java -version
$JAVA_HOME/bin/java –version
如下图所示,两个命令的输出结果一样,就没有问题。
如上,Java运行环境就安装好了。
四、安装Hadoop3
这是Hadoop的下载地址,本教程选择了最新的3.3.4版本,在网页中选择hadoop-3.3.4.tar.gz,这个是编译好的文件,hadoop-3.3.4-src.tar.gz这个是Hadoop源代码,用不了的。如果你用的不是3.3.4版本,则将所有命令中出现的3.3.4更改为你所使用的版本。
我这里是通过浏览器下载的,系统会默认保存在Downloads目录下。
当前是在root下,所以先用su hadoop命令切换到hadoop下,输入如下命令:
sudo tar -zxf ~/Downloads/hadoop-3.3.4.tar.gz -C /usr/local
这条命令是把Hadoop解压到/usr/local/目录下,可以输入cd /usr/local/跳转到/usr/local目录下,再输入ls命令查看当前目录下的所有文件,如下图所示,可以在目录下看到我们的Hadoop。
输入命令sudo mv ./hadoop-3.3.4/ ./hadoop,为方便后续操作,我们把hadoop文件夹名改得简洁一点。
输入命令sudo chown -R hadoop:hadoop ./hadoop,修改文件权限。
输入cd /usr/local/hadoop进入hadoop目录。
输入./bin/Hadoop version,查看Hadoop版本信息,如果版本信息能正常输出,如下图所示,说明Hadoop可以使用了。
五、Hadoop单机配置(非分布式)
Hadoop默认模式就是非分布式模式,无需进行任何配置操作就能运行。下面我运行一个例子来玩一下。
在/usr/local/hadoop/目录下输入./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar,这个命令可以查看Hadoop附带的所有的例子。
下面我们演示一个grep例子。
输入cd /usr/local/hadoop进入这个目录。
输入mkdir ./input创建input文件夹。
创建文件夹后可以输入ls命令查看文件夹是否创建成功。如下图所示。
如上图所示,查看/etc/hadoop/目录下的文件。
回到/usr/local/hadoop目录,输入cp ./etc/hadoop/*.xml ./input,将刚才/etc/hadoop/目录下的所有xml文件全部拷贝到input文件夹里,作为待会运行案例的输入。
输入命令./bin/hadoopjar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jargrep ./input ./output 'dfs[a-z.]+'
这个是把input文件夹里的所有文件作为输入,筛选文件当中符合正则表达式dfs[a-z.]+的单词并统计它的出现次数,把最终结果输出到output文件夹中。
按回车后Hadoop就开始运行了,这里它会输出很多与当前作业相关的信息,最后出现如下图所示的结果。然后输入cat ./output/*查看运行结果,如下图所示。
注意,Hadoop 默认不会覆盖结果文件,运行程序时输出目录是不能存在的,因此再次运行上面实例会提示出错,需要先将 ./output 删除。
输入rm –r ./output命令将ouput文件夹删除。
六、Hadoop伪分布式配置
首先要设置Hadoop环境变量,输入vim ~/.bashrc进入文本,添加如下代码。
# Hadoop Environment Variablesexport HADOOP_HOME=/usr/local/hadoopexport HADOOP_INSTALL=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport YARN_HOME=$HADOOP_HOMEexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
代码片段:可切换语言,无法单独设置文字格式
wq退出后输入source ~/.bashrc让配置生效。
#输入vim ./etc/Hadoop/core-site.xml。在<configuration></configuration>中添加如下代码。<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property></configuration>
#输入vim ./etc/Hadoop/hdfs-site.xml,在<configuration></configuration>中添加如下代码。<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property></configuration>
代码片段:可切换语言,无法单独设置文字格式
输入./bin/hdfs namenode –format,执行namenode的格式化。
又会输出一大堆东西,只要找到successfully formatted就说明格式化成功了。
接着输入./sbin/start-dfs.sh启动主角色NameNode、从角色DataNode和主角色辅助角色SecondaryNameNode。
注意,这里可能会显示权限问题报错,导致你的Hadoop启动失败,这个就是前面ssh免密没配置好,回去重新做一遍就好了。
3个线程开启后,我们输入jps命令查看当前的进程,可以看到NameNode、DataNode和SecondaryNameNode,说明启动成功了。
再输入./sbin/start-yarn.sh,启动YARN的主角色ResourceManager和从角色NodeManager。
输入jps命令查看,如下图有这六个就没有问题了。
成功启动后,我们打开系统自带的浏览器访问,这里可以查看各个工作节点的信息,查看HDFS文件,注意端口号不一定是9870,有些教程写的就不是9870,可能跟版本有关系,这里如果出了问题自行百度。
七、运行Hadoop伪分布式实例
上面那个实例我们搞的是单机模式,现在伪分布配置好了我们来玩一下。
输入./bin/hdfs dfs -mkdir -p /user/hadoop,先创建一个用户名目录。
输入./bin/hdfs dfs -mkdir input,创建input目录待会存放输入文件。
输入./bin/hdfs dfs -put ./etc/hadoop/*.xml /user/hadoop/input,把./etc/hadoop/中的xml文件复制到分布式文件系统的input中。
上面这三个命令会出现警告,不用管它。
输入./bin/hdfs dfs -ls input,查看一下刚才拷过来的文件。
输入./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+',这个是把input文件夹里的所有文件作为输入,筛选文件当中符合正则表达式dfs[a-z.]+的单词并统计它的出现次数,把最终结果输出到output文件夹中。
和刚才玩单机模式时一样会输出一堆东西,都是与当前运行的作业程序相关的信息。
等作业执行完后,输入./bin/hdfs dfs -cat output/*,查看运行结果。
单机模式与伪分布式的不同在于,单机模式是从本地读取文件的,而伪分布式是通过HDFS分布式文件管理系统读取文件。
八、YARN配置
Yarn是负责资源管理与任务调度的,刚才我们已经启动了,这里还需要修改一些配置。
输入cd /usr/local/hadoop/etc/hadoop,跳转目录。
输入vim mapred-site.xml,编辑这个文件,插入如下代码。
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property></configuration>
代码片段:可切换语言,无法单独设置文字格式
输入vim yarn-site.xml,编辑这个文件,插入如下代码。
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property></configuration>
代码片段:可切换语言,无法单独设置文字格式
输入./sbin/mr-jobhistory-daemon.sh start historyserver,开启历史服务器,方便后续在Web中查看任务运行情况。
打开浏览器,访问,在这里可以查看作业运行情况。
可以输入./bin/hdfs dfs -rm -r output,把刚才运行输出结果文件夹output删掉,然后再跑一边看看网页上的变化。
像现在这样在单机上开启yarn其实没啥意义,反而会让程序更慢,不启动yarn是完全没问题。如果不想启动yarn,可以把mapred-site.xml 文件重命名为mapred-site.xml.template,命令为 mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml。
关闭yarn的命令如下:
./sbin/stop-yarn.sh./sbin/mr-jobhistory-daemon.sh stop historyserver九、环境变量
上面的教程中,我们都是先进入到 /usr/local/hadoop 目录中,再执行 ./sbin/hadoop,实际上等同于运行 /usr/local/hadoop/sbin/hadoop。
其实在前面我们设置 HADOOP 环境变量时,我们已经顺便设置了 PATH 变量(即 "export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin"),那么以后我们在任意目录中都可以直接通过执行 start-dfs.sh 来启动 Hadoop 或者执行 hdfs dfs -ls input 查看 HDFS 文件了,这样后续操作起来会更方便。
文章来源:×tamp=1693574301&ver=4748&signature=TCLZvUAEAAyzb7dobrEIemqLqnBaxmJpVZLXjH5KMSXnwzMMPQaJ5jFVgYtP1gL3*q3hwH9AM4EGbzBZ4dy5pUfDNPsgPoeNJ*AYctwTyMvcAlqgZddMLxEtN6XVQMdQ&new=1
标签: #pythonlxmlxpath