我正在尝试确定当一个对象有一些不会改变的特征时,最好的选择是什么,并且在整个函数中都需要它.
在我看来,静态成员的真正原因是拥有一个可以更改的变量,从而影响同一个类的所有其他对象.但是,我有人建议将类"不变量"作为静态const成员.我正在寻找有关建立类常量的推荐方法的一些见解,以及原因.
我有一个顶级lambda函数,然后在这个lambda中有几个嵌套的lambda函数.
将lambda嵌入其他lambda中是个好主意吗?是否有任何性能影响?
例如
auto Multiplier1 = []() -> int
{
auto Multiplier2 = [](int i) -> int
{
auto Multiplier3 = [](int i) -> int
{
return i * 2;
};
std::cout << "Calling another lambda 2\n";
return Multiplier3(i * 100);
};
int i = 10;
std::cout << "Calling another lambda 1\n";
int ret = Multiplier2(i);
return ret;
};
int ret = Multiplier1();
std::cout << ret << "\n";
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我可以将Multiplier2和Multiplier3重新分解为单独的函数.与此相比,这是一种更好的方法吗?
我正在修改已经在生产中的代码,因此,无论是将其重新分解为单独的函数还是使用lambda函数进行管理,我都处于两难境地.
我正在尝试使用MRunit来测试我的sortComparatorClass.似乎MRunit应该能够使用该setKeyOrderComparator方法执行此操作,但是当我运行mapReduceDriver它时,它不会调用类的compare()方法SortComparator.
很确定我在使用MRunit API做错了.
这是我的单元测试代码:
public class UnitTests {
private static transient Log log = LogFactory.getLog(UnitTests.class);
MapReduceDriver<Text, Text, Text, Text, Text, Text> mapReduceDriver;
MapDriver<Text, Text, Text, Text> mapDriver;
ReduceDriver<Text, Text, Text, Text> reduceDriver;
@Before
public void setUp() throws InterruptedException, IOException {
mapDriver = new MapDriver<Text, Text, Text, Text>();
mapDriver.setMapper(new TestMapper());
reduceDriver = new ReduceDriver<Text, Text, Text, Text>();
reduceDriver.setReducer(new TestReducer());
mapReduceDriver = new MapReduceDriver(new TestMapper(), new TestReducer());
mapReduceDriver.setKeyOrderComparator(new TestSortCompartor());
}
@Test
public …Run Code Online (Sandbox Code Playgroud) 当我使用Tez提交Hive SQL时,如下所示:
hive (default)> select count(*) from simple_data;
Run Code Online (Sandbox Code Playgroud)
在资源管理器UI中,作业名称显示类似于HIVE-9d1906a2-25dd-4a7c-9ea3-bf651036c7eb是否有办法将作业名称更改为my_job_nam?
如果我没有使用Tez并在MR中运行作业,我可以使用设置作业名称set mapred.job.name.
我需要设置任何Tez参数来更改作业名称吗?
任何输入都表示赞赏.
我是新手编译Hadoop代码并且知道这个问题已被多次回答.但是,我仍然发现很难找出正确的类路径来使WordCount.java代码进行编译.我正在运行CentOS版本7.
我的Hadoop版本是:
Hadoop 2.7.1 Subversion
https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657a
Compiled by jenkins on 2015-06-29T06:04Z
Compiled with protoc 2.5.0
From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.1.jar
Run Code Online (Sandbox Code Playgroud)
当我回复$ PATH时,我得到以下内容:
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/lib/jvm/jre-1.7.0-openjdk/:/usr/local /hadoop/bin:/usr/local/hadoop/sbin:/home/hduser/.local/bin:/home/hduser/bin:/usr/lib/jvm/jre-1.7.0-openjdk/:/usr/本地/ Hadoop的/ bin中:在/ usr /本地/ Hadoop的/ sbin目录
我正在运行的Java版本是:
java version "1.7.0_91"
OpenJDK Runtime Environment (rhel-2.6.2.1.el7_1-x86_64 u91-b00)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我确实在vi .bashrc中为Java和Hadoop设置了所有环境变量,如下所示,并且jps通过.Java也可以编译其他代码,但我认为我得到了Hadoop的类路径错误.
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk/
export PATH=$PATH:$JAVA_HOME
Run Code Online (Sandbox Code Playgroud)
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
Run Code Online (Sandbox Code Playgroud)
当我尝试在工作目录中编译WordCount.java时,我收到这些错误: …
我最近能够构建具有本机64位支持的Apache Hadoop 2.5.1。因此,我摆脱了恼人的“本地库警告”。
我正在尝试配置Apache Spark。当我启动spark-shell时,会出现相同的警告:
14/09/14 18:48:42 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Run Code Online (Sandbox Code Playgroud)
一些技巧:
我必须下载一个预先构建的2.4版本的Spark,因为仍然没有Maven的Hadoop 2.5的配置文件。
以下导出已添加到spark-env.sh:
export HADOOP_CONF_DIR=/opt/hadoop-2.5.1/etc/hadoop
export SPARK_LIBRARY_PATH=/opt/hadoop-2.5.1/lib/native
Run Code Online (Sandbox Code Playgroud)
不适用于spark-shell和spark-submit。我的Hadoop本地安装配置为伪分布式(ResourceManager + YARN支持)。
问题是我试图在ASCII之外打印一些字符,如德语变音字符,'ß'等.这些字符不适合普通的char变量,所以显然我试图将它们放在wchar_t中并用L"....."初始化字符串.但是每次这个字符串包含上面的字符时,我都会得到上面提到的错误,但是对于ASCII的所有其他字符它都没问题.这也发生在u"....",U"......",如果我使用u8"....."它不会产生错误但会打印垃圾.
那么问题:
请求示例:
#include <iostream>
#include <string>
using namespace std;
int main()
{
wstring x = L"öäüß" ;
wcout << x ;
return 0 ;
}
Run Code Online (Sandbox Code Playgroud)
这会打印错误.
#include <iostream>
#include <string>
#include <locale>
using namespace std;
int main(void)
{
setlocale(LC_ALL,""); // sets locale to german on my computer
string x = "äöüß" ;
cout << x ;
return 0 ;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常.但即使在更改语言环境后,如果我创建第一个代码,也会生成错误.
注意:我注意到在C++(而不是C)中,即使没有包含除iostream之外的任何文件,也会声明其他文件的所有内容,如字符串或语言环境或标准库中的任何其他文件,并且在std命名空间中.我暂时忽略了这一点,仍然包含文档文件,但为什么会发生这种情况.(我使用的是tdm-gcc 64bit)
hadoop job -list 似乎只显示 mapreduce 作业,但我的资源管理器 UI 显示了诸如“分配的 CPU VCores”和“分配的内存 MB”之类的内容,用于在 YARN 上运行的所有作业(包括 Spark 和 Tez 等)。
如何通过命令行而不是进入 UI 获取这些结果?
在一个小的 HBase 集群中,所有的从节点都重新启动了。当我启动 HBase 服务时,其中一个表(测试)变得不一致。
在 HDFS 中,一些块丢失(hbase 块)。所以它处于安全模式。我safemode -leave下令。
然后 HBase 表(测试)变得不一致。
我执行了以下提到的操作:
我多次执行“ hbase hbck ”。发现表“test”有 2 个不一致之处。
ERROR: Region { meta=>test,1m\x00\x03\x1B\x15,1393439284371.4c213a47bba83c47075f21fec7c6d862., hdfs => hdfs://master:9000/hbase/test/4c213a47bba83c47075f21fec7c6d862, deployed => } not deployed on any region server.
hbase hbck -fixMeta -fixAssignments HBaseFsckRepair:区域仍在转换中,等待它被分配:
{NAME => 'test,1m\x00\x03\x1B\x15,1393439284371.4c213a47bba83c47075f21fec7c6d862.', STARTKEY => '1m\x00\x03\x1B\x15', ENDKEY => '', ENCODED => 4c213a47bba83c47075f21fec7c6d862,}
hbase hbck -repair HBaseFsckRepair:区域仍在转换中,等待它被分配:
{NAME => 'test,1m\x00\x03\x1B\x15,1393439284371.4c213a47bba83c47075f21fec7c6d862.', STARTKEY => '1m\x00\x03\x1B\x15', ENDKEY => '', ENCODED => 4c213a47bba83c47075f21fec7c6d862,}
我并行检查了datanode日志。
日志:
org.apache.hadoop.hdfs.server.datanode.DataNode: opReadBlock BP-1015188871-192.168.1.11-1391187113543:blk_7616957984716737802_27846 …
我在Windows上安装了Hadoop 2.6作为一些依赖于Hadoop的软件的测试平台。据我所知,安装工作正常。我将 Hadoop 保存在 中C:\Hadoop,并将临时文件夹保存在C:\hadooptemp. 我按照本教程进行设置:
https://drive.google.com/file/d/0BweVwq32koypYm1QWHNvRTZWTm8/view
当我按照教程中提供的方式运行 pi 的 hadoop-mapreduce-examples-2.6.0.jar 时,我得到以下输出:
Number of Maps = 2
Samples per Map = 5
Wrote input for Map #0
Wrote input for Map #1
Starting Job
15/08/27 15:55:10 INFO client.RMProxy: Connecting to ResourceManager at /155.41.90.116:8032
15/08/27 15:55:12 INFO input.FileInputFormat: Total input paths to process : 2
15/08/27 15:55:12 INFO mapreduce.JobSubmitter: number of splits:2
15/08/27 15:55:13 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1440705227041_0001
15/08/27 15:55:14 INFO impl.YarnClientImpl: Submitted application …Run Code Online (Sandbox Code Playgroud) 当您将鼠标悬停在 iframe 属性上时,我无法禁用该元素的效果。有没有其他方法可以解决当前的问题?
这是我的代码和原始解决方案:
iframe id="clock1" src="http://free.timeanddate.com/clock/i52azneg/n2253/szw110/szh110/hbw0/hfc000/cf100/hgr0/fav0/fiv0/mqcfff/mql15/mqw4/mqd94/mhcfff/mhl15/mhw4/mhd94/mmv0/hhcbbb/hmcddd/hsceee" frameborder="0" width="110" height="110"></iframe>
script>
$("iframe#clock1").contents().find("#hov").hide();
/script>
Run Code Online (Sandbox Code Playgroud)