Index of /dist/hadoop/common
https://archive.apache.org/dist/hadoop/common
集群规划:
注意:
| 机器 | ip | 分配节点 |
| node01 | 192.168.56.201 | NameNode、DataNode、NodeManager |
| node02 | 192.168.56.202 | ResourceManager、DataNode、NodeManager |
| node03 | 192.168.56.203 | SecondaryNameNode、DataNode、NodeManager |
#!/bin/bash
export JAVA_HOME=/data/soft/jdk1.8.0_201
export HADOOP_HOME=/data/soft/hadoop-3.3.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
[root@local-node01 hadoop]# cd /data/soft/hadoop-3.3.5/etc/hadoop/
[root@local-node01 hadoop]# ll
total 176
-rw-r--r-- 1 2002 2002 9213 Mar 15 12:36 capacity-scheduler.xml
-rw-r--r-- 1 2002 2002 1335 Mar 15 12:38 configuration.xsl
-rw-r--r-- 1 2002 2002 2567 Mar 15 12:36 container-executor.cfg
-rw-r--r-- 1 2002 2002 774 Mar 15 11:57 core-site.xml
-rw-r--r-- 1 2002 2002 3999 Mar 15 11:57 hadoop-env.cmd
-rw-r--r-- 1 2002 2002 16803 Apr 4 20:27 hadoop-env.sh
-rw-r--r-- 1 2002 2002 3321 Mar 15 11:57 hadoop-metrics2.properties
-rw-r--r-- 1 2002 2002 11765 Mar 15 11:57 hadoop-policy.xml
-rw-r--r-- 1 2002 2002 3414 Mar 15 11:57 hadoop-user-functions.sh.example
-rw-r--r-- 1 2002 2002 683 Mar 15 12:07 hdfs-rbf-site.xml
-rw-r--r-- 1 2002 2002 775 Mar 15 12:02 hdfs-site.xml
-rw-r--r-- 1 2002 2002 1484 Mar 15 12:06 httpfs-env.sh
-rw-r--r-- 1 2002 2002 1657 Mar 15 12:06 httpfs-log4j.properties
-rw-r--r-- 1 2002 2002 620 Mar 15 12:06 httpfs-site.xml
-rw-r--r-- 1 2002 2002 3518 Mar 15 11:58 kms-acls.xml
-rw-r--r-- 1 2002 2002 1351 Mar 15 11:58 kms-env.sh
-rw-r--r-- 1 2002 2002 1860 Mar 15 11:58 kms-log4j.properties
-rw-r--r-- 1 2002 2002 682 Mar 15 11:58 kms-site.xml
-rw-r--r-- 1 2002 2002 13700 Mar 15 11:57 log4j.properties
-rw-r--r-- 1 2002 2002 951 Mar 15 12:38 mapred-env.cmd
-rw-r--r-- 1 2002 2002 1764 Mar 15 12:38 mapred-env.sh
-rw-r--r-- 1 2002 2002 4113 Mar 15 12:38 mapred-queues.xml.template
-rw-r--r-- 1 2002 2002 758 Mar 15 12:38 mapred-site.xml
drwxr-xr-x 2 2002 2002 24 Mar 15 11:57 shellprofile.d
-rw-r--r-- 1 2002 2002 2316 Mar 15 11:57 ssl-client.xml.example
-rw-r--r-- 1 2002 2002 2697 Mar 15 11:57 ssl-server.xml.example
-rw-r--r-- 1 2002 2002 2681 Mar 15 12:02 user_ec_policies.xml.template
-rw-r--r-- 1 2002 2002 10 Mar 15 11:57 workers
-rw-r--r-- 1 2002 2002 2250 Mar 15 12:36 yarn-env.cmd
-rw-r--r-- 1 2002 2002 6329 Mar 15 12:36 yarn-env.sh
-rw-r--r-- 1 2002 2002 2591 Mar 15 12:36 yarnservice-log4j.properties
-rw-r--r-- 1 2002 2002 690 Mar 15 12:36 yarn-site.xml


(1)hadoop-env.sh,修改JAVA_HOME为具体的路径
export JAVA_HOME=/data/soft/jdk1.8.0_201
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

(2)core-site.xml
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/soft/hadoop-3.3.5/datas</value>
</property>
<!-- 在Web UI访问HDFS使用的用户名。-->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 整合hive 用户代理设置 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<!-- 文件系统垃圾桶保存时间 -->
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
(3)hdfs-site.xml
<!-- NN web端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>node01:9870</value>
</property>
<!-- 设定SNN运行主机和端口。-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node03:9868</value>
</property>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--如果为"true",则在HDFS中启用权限检查;如果为"false",则关闭权限检查;默认值为"true"。-->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
(4)mapred-site.xml
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR程序历史服务地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node01:10020</value>
</property>
<!-- MR程序历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node01:19888</value>
</property>
(5)yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node02</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 是否将对容器实施物理内存限制 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<!--开启日志聚合-->
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<!--日志聚合hdfs存储路径-->
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/data/soft/hadoop-3.3.5/nodemanager-remote-app-logs</value>
</property>
<!-- 历史日志保存的时间 7天 -->
<property>
<!--hdfs上的日志保留时间-->
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<!--应用执行时存储路径-->
<name>yarn.nodemanager.log-dirs</name>
<value>file:///data/soft/hadoop-3.3.5/nodemanager-logs</value>
</property>
<property>
<!--应用执行完日志保留的时间,默认0,即执行完立刻删除-->
<name>yarn.nodemanager.delete.debug-delay-sec</name>
<value>604800</value>
</property>
<!-- 设置yarn历史服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node01:19888/jobhistory/logs</value>
</property>
(6)配置workers
node01
node02
node03
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
(1)如果集群是第一次启动,需要在hadoop102节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)
hdfs namenode -format
(2)启动HDFS
start-dfs.sh
Hadoop集群启动关闭-手动逐个进程启停
每台机器上每次手动启动关闭一个角色进程
HDFS集群
hdfs --daemon start namenode|datanode|secondarynamenode
hdfs --daemon stop namenode|datanode|secondarynamenode
YARN集群
yarn --daemon start resourcemanager|nodemanager
yarn --daemon stop resourcemanager|nodemanager



修改hdfs的web端口和yarn的web端口的配置
hdfs-site.xml配置http:
<property>
<name>dfs.http.address</name>
<value>node01:9870</value>
</property>
yarn-site.yml配置如下:
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>node02:8088</value>
</property>

为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
(1)配置mapred-site.xml
增加如下配置:
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node01:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node01:19888</value>
</property>
分发配置文件到所有的主机!!!
mapred --daemon start historyserver

hadoop jar /data/soft/hadoop-3.3.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount /words.txt /out


日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryServer。
开启日志聚集功能具体步骤如下:
(1)配置yarn-site.xml
<property>
<!--开启日志聚合-->
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node01:19888/jobhistory/logs</value>
</property>
<property>
<!--日志聚合hdfs存储路径-->
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/data/soft/hadoop-3.3.5/nodemanager-remote-app-logs</value>
</property>
<property>
<!--hdfs上的日志保留时间-->
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<!--应用执行时存储路径-->
<name>yarn.nodemanager.log-dirs</name>
<value>file:///data/soft/hadoop-3.3.5/nodemanager-logs</value>
</property>
<property>
<!--应用执行完日志保留的时间,默认0,即执行完立刻删除-->
<name>yarn.nodemanager.delete.debug-delay-sec</name>
<value>604800</value>
</property>
分发配置文件到所有的主机!!!
先关闭NodeManager 、ResourceManager和HistoryServer
然后重启NodeManager 、ResourceManage和HistoryServer
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这